numerics 0.1.0
Loading...
Searching...
No Matches
dense.cpp File Reference

Implementations for num::kernel::dense (seq_t, par_t, and no-policy ops). More...

#include "kernel/dense.hpp"
#include "kernel/raw.hpp"
#include <stdexcept>

Go to the source code of this file.

Namespaces

namespace  num
 
namespace  num::kernel
 
namespace  num::kernel::dense
 

Functions

void num::kernel::dense::ger (real alpha, const Vector &x, const Vector &y, Matrix &A, seq_t) noexcept
 Sequential rank-1 update: calls raw::ger (routes to cblas_dger when BLAS available; otherwise vectorizable row-update loop).
 
void num::kernel::dense::ger (real alpha, const Vector &x, const Vector &y, Matrix &A, par_t)
 Parallel rank-1 update: OMP parallel-for over rows. Each row update A[i,:] += alpha*x[i]*y is independent.
 
void num::kernel::dense::trsv_lower (const Matrix &L, const Vector &b, Vector &x)
 Forward substitution: solve Lx = b.
 
void num::kernel::dense::trsv_upper (const Matrix &U, const Vector &b, Vector &x)
 Back substitution: solve Ux = b.
 

Detailed Description

Implementations for num::kernel::dense (seq_t, par_t, and no-policy ops).

ger seq_t: calls raw::ger (routes to cblas_dger when NUMERICS_HAS_BLAS). ger par_t: OMP parallel-for over rows (each row is independent).

trsv: no policy; calls raw::trsv which routes to cblas_dtrsv when NUMERICS_HAS_BLAS, otherwise sequential forward/back substitution.

Definition in file dense.cpp.