Skip to content

num::repr::csr

Defined in header <container/concepts.hpp>

template <class M>
concept csr = requires(const M &m) {
  { m.n_rows() } -> std::convertible_to<idx>;
  { m.n_cols() } -> std::convertible_to<idx>;
  { m.nnz() } -> std::convertible_to<idx>;
  { m.row_ptr() } -> std::convertible_to<const idx *>;
  { m.col_idx() } -> std::convertible_to<const idx *>;
  { m.values() };
};

Compressed sparse row (CSR) storage format: row offsets, column indices, and nonzero values.

Enables matrix-vector multiplication in \(\mathcal{O}(\text{nnz})\) time. Models include num::spmat.

Template parameters

  • M: Sparse matrix type.