namespace
linalg
Namespaces
- namespace dense
- namespace introspection
- namespace sparse
- namespace view
Classes
- class EckitSparseMatrixNonOwningAllocator
- class MatrixMultiply
- class SparseMatrixMultiply
- class SparseMatrixStorage
- SparseMatrixStorage Storage class based on atlas::
array:: Array with GPU offload capability This class contains only the data and no operators, iterators, or special sparse matrix construction from triplets etc. -
template<typename Value, typename Index = eckit::linalg::Index>class SparseMatrixView
Enums
- enum class Indexing { layout_left, layout_right }
Typedefs
-
using Matrix = eckit::
linalg:: Matrix -
using Configuration = eckit::
Configuration -
template<typename Value, int Rank>using View = array::
LocalView<Value, Rank> -
template<typename View>using view_type = typename view::
ConvertView<View>::type
Functions
-
template<typename Matrix>void matrix_multiply(const Matrix& A, const Matrix& B, Matrix& C)
-
template<typename Matrix>void matrix_multiply(const Matrix& A, const Matrix& B, Matrix& C, const eckit::
Configuration&) -
auto make_non_owning_eckit_sparse_matrix(const SparseMatrixView<eckit::linalg::Scalar, eckit::linalg::Index>& view) -> eckit::
linalg:: SparseMatrix -
auto make_non_owning_eckit_sparse_matrix(const SparseMatrixStorage& m) -> eckit::
linalg:: SparseMatrix -
auto make_eckit_sparse_matrix(const SparseMatrixView<eckit::linalg::Scalar, eckit::linalg::Index>& view) -> eckit::
linalg:: SparseMatrix -
auto make_eckit_sparse_matrix(const SparseMatrixStorage& m) -> eckit::
linalg:: SparseMatrix -
template<typename OutputT, typename InputT>void host_copy_eckit(const InputT* input_data, array::
Array& output) -
auto make_sparse_matrix_storage(eckit::
linalg:: SparseMatrix&& m) -> SparseMatrixStorage -
template<typename value_type, typename index_type = eckit::linalg::Index>auto make_sparse_matrix_storage(eckit::
linalg:: SparseMatrix&& m) -> SparseMatrixStorage -
auto make_sparse_matrix_storage(const eckit::
linalg:: SparseMatrix& m) -> SparseMatrixStorage -
template<typename value_type, typename index_type = eckit::linalg::Index>auto make_sparse_matrix_storage(const eckit::
linalg:: SparseMatrix& m) -> SparseMatrixStorage -
template<typename Matrix, typename SourceView, typename TargetView>void sparse_matrix_multiply(const Matrix& matrix, const SourceView& src, TargetView& tgt)
-
template<typename Matrix, typename SourceView, typename TargetView>void sparse_matrix_multiply(const Matrix& matrix, const SourceView& src, TargetView& tgt, const Configuration& config)
-
template<typename Matrix, typename SourceView, typename TargetView>void sparse_matrix_multiply(const Matrix& matrix, const SourceView& src, TargetView& tgt, Indexing)
-
template<typename Matrix, typename SourceView, typename TargetView>void sparse_matrix_multiply(const Matrix& matrix, const SourceView& src, TargetView& tgt, Indexing, const Configuration& config)
-
template<typename Matrix, typename SourceView, typename TargetView>void sparse_matrix_multiply_add(const Matrix& matrix, const SourceView& src, TargetView& tgt)
-
template<typename Matrix, typename SourceView, typename TargetView>void sparse_matrix_multiply_add(const Matrix& matrix, const SourceView& src, TargetView& tgt, const Configuration& config)
-
template<typename Matrix, typename SourceView, typename TargetView>void sparse_matrix_multiply_add(const Matrix& matrix, const SourceView& src, TargetView& tgt, Indexing)
-
template<typename Matrix, typename SourceView, typename TargetView>void sparse_matrix_multiply_add(const Matrix& matrix, const SourceView& src, TargetView& tgt, Indexing, const Configuration& config)
-
template<typename value_type, typename index_type = eckit::linalg::Index>auto make_sparse_matrix_storage(const SparseMatrixStorage& other) -> SparseMatrixStorage
-
template<typename value_type, typename index_type = eckit::linalg::Index>auto make_sparse_matrix_storage(SparseMatrixStorage&& other) -> SparseMatrixStorage
-
template<typename Value, typename Index = eckit::linalg::Index>auto make_host_view(const SparseMatrixStorage& m) -> SparseMatrixView<Value, Index>
-
template<typename Value, typename Index = eckit::linalg::Index>auto make_device_view(const SparseMatrixStorage& m) -> SparseMatrixView<Value, Index>
-
template<typename ViewIndex, typename ViewValue, typename Index, typename Value>void sparse_matrix_to_rows_columns_values(const linalg::
SparseMatrixView<ViewValue, ViewIndex>& mat, Index rows[], Index columns[], Value values[]) -
template<typename ViewIndex, typename ViewValue, typename Index, typename Value>void sparse_matrix_to_rows_columns_values(const linalg::
SparseMatrixView<ViewValue, ViewIndex>& mat, std:: vector<Index>& rows, std:: vector<Index>& columns, std:: vector<Value>& values) -
template<typename Index, typename Value>void sparse_matrix_to_rows_columns_values(const SparseMatrixStorage& mat, std::
vector<Index>& rows, std:: vector<Index>& columns, std:: vector<Value>& values) -
template<typename SparseMatrixValue = eckit::auto make_sparse_matrix_storage_from_rows_columns_values(std::
linalg:: Scalar, typename SparseMatrixIndex = eckit::linalg::Index, typename Value, typename Index, typename IndexBase> size_t nr, std:: size_t nc, std:: size_t nnz, const Index rows[], const Index cols[], const Value vals[], const IndexBase index_base = 0, bool is_sorted = true) -> SparseMatrixStorage -
template<typename SparseMatrixValue = eckit::auto make_sparse_matrix_storage_from_rows_columns_values(std::
linalg:: Scalar, typename SparseMatrixIndex = eckit::linalg::Index, typename Value, typename Index, typename IndexBase> size_t nr, std:: size_t nc, const std:: vector<Index>& rows, const std:: vector<Index>& cols, const std:: vector<Value>& vals, const IndexBase index_base = 0, bool is_sorted = true) -> SparseMatrixStorage -
template<typename T>auto make_view(T& view) -> view_type<T>