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 |
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 >.