num::spmat¶
Defined in header <linear/sparse/sparse.hpp>
class spmat;
Sparse matrix in Compressed Sparse Row (CSR) format
Non-zero values for row i are stored in vals_[row_ptr_[i] .. row_ptr_[i+1]). Corresponding column indices are in col_idx_[row_ptr_[i] .. row_ptr_[i+1]).
Members¶
| member | description |
|---|---|
spmat(idx n_rows, idx n_cols, array<real> vals, array<idx> col_idx, array<idx> row_ptr) |
Construct from raw CSR arrays (takes ownership) |
static spmat from_triplets(idx n_rows, idx n_cols, const array<idx> &rows, const array<idx> &cols, const array<real> &vals) |
Build from coordinate (COO / triplet) lists Duplicate (row, col) entries are summed. Entries need not be sorted. |
static spmat from_csc(idx n_rows, idx n_cols, const array<real> &vals, const array<idx> &row_indices, const array<idx> &col_ptrs) |
Build from zero-based compressed-column (CSC) arrays. The returned matrix is stored in Numerics' native CSR format. The payload arrays may contain a trailing unused entry, as produced by the Armadillo sparse serializer; only the first col_ptrs.back() entries are consumed. All indices and pointers are zero-based. |
idx n_rows() const |
|
idx n_cols() const |
|
idx rows() const noexcept |
|
idx cols() const noexcept |
|
idx nnz() const |
|
real operator()(idx i, idx j) const |
Element access A(i,j); returns 0 if outside stored pattern -- O(nnz/n) |
const real *values() const |
|
const idx *col_idx() const |
|
const idx *row_ptr() const |
|
template <class X = vec<real>, class Y = vec<real>> void apply(const X &x, Y &y) const |
Operator protocol application: y <- A * x |