eckit::linalg::sparse::LinearAlgebraViennaCL struct final

Base classes

class eckit::linalg::LinearAlgebraSparse

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.

Constructors, destructors, conversion operators

LinearAlgebraViennaCL()
LinearAlgebraViennaCL(const std::string& name)

Public functions

void spmv(const SparseMatrix& A, const Vector& x, Vector& y) const override
void spmm(const SparseMatrix& A, const Matrix& X, Matrix& Y) const override
void dsptd(const Vector& x, const SparseMatrix& A, const Vector& y, SparseMatrix& B) const override
void print(std::ostream&) const override

Function documentation

static const LinearAlgebraSparse& eckit::linalg::sparse::LinearAlgebraViennaCL::backend(const std::string& name = "")

Get backend, re-setting default.

static const LinearAlgebraSparse& eckit::linalg::sparse::LinearAlgebraViennaCL::getBackend(const std::string& name)

Get backend.

static bool eckit::linalg::sparse::LinearAlgebraViennaCL::hasBackend(const std::string& name)

Check if a backend is available.

static std::ostream& eckit::linalg::sparse::LinearAlgebraViennaCL::list(std::ostream&)

List all available backends.

static const std::string& eckit::linalg::sparse::LinearAlgebraViennaCL::name()

Return active backend name.

void eckit::linalg::sparse::LinearAlgebraViennaCL::spmv(const SparseMatrix& A, const Vector& x, Vector& y) const override

Compute the product of a sparse matrix A and vector x

void eckit::linalg::sparse::LinearAlgebraViennaCL::spmm(const SparseMatrix& A, const Matrix& X, Matrix& Y) const override

Compute the product of sparse matrix A and dense matrix X

void eckit::linalg::sparse::LinearAlgebraViennaCL::dsptd(const Vector& x, const SparseMatrix& A, const Vector& y, SparseMatrix& B) const override

Compute the product x A' y with x and y diagonal matrices stored as vectors and A a sparse matrix