1 #ifndef _fei_CSRMat_hpp_
2 #define _fei_CSRMat_hpp_
12 #include "fei_macros.hpp"
13 #include "fei_FillableMat.hpp"
14 #include "fei_SparseRowGraph.hpp"
15 #include "fei_CSVec.hpp"
24 CSRMat(
const FillableMat& fmat);
27 SparseRowGraph& getGraph() {
return srg_;}
28 const SparseRowGraph& getGraph()
const {
return srg_;}
30 std::vector<double>& getPackedCoefs() {
return packedcoefs_;}
31 const std::vector<double>& getPackedCoefs()
const {
return packedcoefs_;}
33 unsigned getNumRows()
const {
return srg_.
rowNumbers.size();}
35 CSRMat& operator=(
const FillableMat& src);
37 CSRMat& operator+=(
const CSRMat& src);
39 bool operator==(
const CSRMat& rhs)
const;
41 bool operator!=(
const CSRMat& rhs)
const;
45 std::vector<double> packedcoefs_;
56 bool storeResultZeros=
false);
60 bool storeResultZeros=
false);
62 void add_CSRMat_to_FillableMat(
const CSRMat& csrm, FillableMat& fm);
void multiply_CSRMat_CSRMat(const CSRMat &A, const CSRMat &B, CSRMat &C, bool storeResultZeros)
std::vector< int > rowNumbers
void multiply_trans_CSRMat_CSVec(const CSRMat &A, const CSVec &x, CSVec &y)
void multiply_trans_CSRMat_CSRMat(const CSRMat &A, const CSRMat &B, CSRMat &C, bool storeResultZeros)
void multiply_CSRMat_CSVec(const CSRMat &A, const CSVec &x, CSVec &y)