class
#include <eckit/linalg/LinearAlgebraSparse.h>
LinearAlgebraSparse
Derived classes
- struct LinearAlgebraCUDA final
- struct LinearAlgebraEigen final
- struct LinearAlgebraGeneric final
- struct LinearAlgebraMKL final
- struct LinearAlgebraViennaCL final
Public static functions
-
static auto backend(const std::
string& name = "") -> const LinearAlgebraSparse& - Get backend, re-setting default.
-
static auto getBackend(const std::
string& name) -> const LinearAlgebraSparse& - 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
- void spmv(const SparseMatrix& A, const Vector& x, Vector& y) const pure virtual
- void spmm(const SparseMatrix& A, const Matrix& X, Matrix& Y) const pure virtual
- void dsptd(const Vector& x, const SparseMatrix& A, const Vector& y, SparseMatrix& B) const pure virtual
Private functions
- ~LinearAlgebraSparse() private defaulted virtual
-
void print(std::
ostream&) const pure virtual
Friends
-
auto operator<<(std::
ostream& s, const LinearAlgebraSparse& p) -> std:: ostream&
Function documentation
void eckit:: linalg:: LinearAlgebraSparse:: spmv(const SparseMatrix& A,
const Vector& x,
Vector& y) const pure virtual
Compute the product of a sparse matrix A and vector x
void eckit:: linalg:: LinearAlgebraSparse:: spmm(const SparseMatrix& A,
const Matrix& X,
Matrix& Y) const pure virtual
Compute the product of sparse matrix A and dense matrix X
void eckit:: linalg:: LinearAlgebraSparse:: dsptd(const Vector& x,
const SparseMatrix& A,
const Vector& y,
SparseMatrix& B) const pure virtual
Compute the product x A' y with x and y diagonal matrices stored as vectors and A a sparse matrix