eckit::linalg::LinearAlgebraDense class

Derived classes

struct LinearAlgebraArmadillo final
struct LinearAlgebraCUDA final
struct LinearAlgebraEigen final
struct LinearAlgebraGeneric final
struct LinearAlgebraLAPACK final
struct LinearAlgebraMKL final
struct LinearAlgebraViennaCL final

Public static functions

static auto backend(const std::string& name = "") -> const LinearAlgebraDense&
Get backend, re-setting default.
static auto getBackend(const std::string& name) -> const LinearAlgebraDense&
Get backend.
static auto hasBackend(const std::string& name) -> bool
Check if a backend is available.
static auto list(std::ostream&) -> std::ostream&
List all available backends.
static auto name() -> const std::string&
Return active backend name.

Public functions

auto dot(const Vector& x, const Vector& y) const -> Scalar pure virtual
Compute the inner product of vectors x and y.
void gemv(const Matrix& A, const Vector& x, Vector& y) const pure virtual
void gemm(const Matrix& A, const Matrix& X, Matrix& Y) const pure virtual

Private functions

~LinearAlgebraDense() private defaulted virtual
void print(std::ostream&) const pure virtual

Friends

auto operator<<(std::ostream& s, const LinearAlgebraDense& p) -> std::ostream&

Function documentation

void eckit::linalg::LinearAlgebraDense::gemv(const Matrix& A, const Vector& x, Vector& y) const pure virtual

Compute the product of a dense matrix A and vector x

void eckit::linalg::LinearAlgebraDense::gemm(const Matrix& A, const Matrix& X, Matrix& Y) const pure virtual

Compute the product of dense matrices A and X