eckit::linalg::LinearAlgebraDense class

Derived classes

struct LinearAlgebraCUDA final
struct LinearAlgebraEigen final
struct LinearAlgebraGeneric final
struct LinearAlgebraLAPACK final
struct LinearAlgebraMKL final
struct LinearAlgebraTorch 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