Class for storing a compressed sparse row matrix (single node). More...
#include <CSRMatrix.hpp>


| Public Member Functions | |
| CSRMatrix (integer_t n, integer_t nnz) | |
| CSRMatrix (integer_t n, const integer_t *ptr, const integer_t *ind, const scalar_t *values, bool symm_sparsity=false) | |
| real_t | norm1 () const override | 
| void | spmv (const DenseM_t &x, DenseM_t &y) const override | 
| void | spmv (const scalar_t *x, scalar_t *y) const override | 
| void | spmv (Trans op, const DenseM_t &x, DenseM_t &y) const | 
| Equil_t | equilibration () const override | 
| void | equilibrate (const Equil_t &eq) override | 
| void | permute_columns (const std::vector< integer_t > &perm) override | 
| real_t | max_scaled_residual (const scalar_t *x, const scalar_t *b) const override | 
| real_t | max_scaled_residual (const DenseM_t &x, const DenseM_t &b) const override | 
| std::unique_ptr< CSRMatrix< scalar_t, integer_t > > | add_missing_diagonal (const scalar_t &s) const | 
| int | read_matrix_market (const std::string &filename) override | 
| int | read_binary (const std::string &filename) | 
| void | print_dense (const std::string &name) const override | 
| void | print_matrix_market (const std::string &filename) const override | 
| void | print_binary (const std::string &filename) const | 
| CSRGraph< integer_t > | extract_graph (int ordering_level, integer_t lo, integer_t hi) const override | 
| CSRGraph< integer_t > | extract_graph_sep_CB (int ordering_level, integer_t lo, integer_t hi, const std::vector< integer_t > &upd) const override | 
| CSRGraph< integer_t > | extract_graph_CB_sep (int ordering_level, integer_t lo, integer_t hi, const std::vector< integer_t > &upd) const override | 
| CSRGraph< integer_t > | extract_graph_CB (int ordering_level, const std::vector< integer_t > &upd) const override | 
|  Public Member Functions inherited from strumpack::CompressedSparseMatrix< scalar_t, integer_t > | |
| virtual | ~CompressedSparseMatrix () | 
| integer_t | size () const | 
| integer_t | nnz () const | 
| const integer_t * | ptr () const | 
| const integer_t * | ind () const | 
| const scalar_t * | val () const | 
| integer_t * | ptr () | 
| integer_t * | ind () | 
| scalar_t * | val () | 
| const integer_t & | ptr (integer_t i) const | 
| const integer_t & | ind (integer_t i) const | 
| const scalar_t & | val (integer_t i) const | 
| integer_t & | ptr (integer_t i) | 
| integer_t & | ind (integer_t i) | 
| scalar_t & | val (integer_t i) | 
| bool | symm_sparse () const | 
| void | set_symm_sparse (bool symm_sparse=true) | 
| virtual void | permute (const integer_t *iorder, const integer_t *order) | 
| virtual void | permute (const std::vector< integer_t > &iorder, const std::vector< integer_t > &order) | 
| virtual Match_t | matching (MatchingJob, bool apply=true) | 
| virtual void | apply_matching (const Match_t &) | 
| virtual void | symmetrize_sparsity () | 
| virtual void | print () const | 
Class for storing a compressed sparse row matrix (single node).
| scalar_t | |
| integer_t | 
| 
 | overridevirtual | 
Sparse matrix times dense vector/matrix product y = this * x x and y can have multiple columns. y should be pre-allocated!
TODO make the public interface non-virtual
| x | input right hand-side vector/matrix, should satisfy x.size() == this->size() | 
| y | output, result of y = this * x, should satisfy y.size() == this->size() | 
Implements strumpack::CompressedSparseMatrix< scalar_t, integer_t >.
| 
 | overridevirtual | 
Sparse matrix times dense vector product y = this * x x and y can have multiple columns. y should be pre-allocated.
TODO make the public interface non-virtual
| x | input right hand-side vector/matrix, should be a pointer to an array of size size() | 
| y | output, result of y = this * x, should be a pointer to an array of size size(), already allocated | 
Implements strumpack::CompressedSparseMatrix< scalar_t, integer_t >.