FEI Package Browser (Single Doxygen Collection)  Version of the Day
fei_CSRMat.hpp
Go to the documentation of this file.
1 #ifndef _fei_CSRMat_hpp_
2 #define _fei_CSRMat_hpp_
3 
4 /*--------------------------------------------------------------------*/
5 /* Copyright 2005 Sandia Corporation. */
6 /* Under the terms of Contract DE-AC04-94AL85000, there is a */
7 /* non-exclusive license for use of this work by or on behalf */
8 /* of the U.S. Government. Export of this program may require */
9 /* a license from the United States Government. */
10 /*--------------------------------------------------------------------*/
11 
12 #include "fei_macros.hpp"
13 #include "fei_FillableMat.hpp"
14 #include "fei_SparseRowGraph.hpp"
15 #include "fei_CSVec.hpp"
16 
17 namespace fei {
18 
21 class CSRMat {
22  public:
23  CSRMat();
24  CSRMat(const FillableMat& fmat);
25  virtual ~CSRMat();
26 
28  const SparseRowGraph& getGraph() const {return srg_;}
29 
30  std::vector<double>& getPackedCoefs() {return packedcoefs_;}
31  const std::vector<double>& getPackedCoefs() const {return packedcoefs_;}
32 
33  unsigned getNumRows() const {return srg_.rowNumbers.size();}
34 
35  CSRMat& operator=(const FillableMat& src);
36 
37  CSRMat& operator+=(const CSRMat& src);
38 
39  bool operator==(const CSRMat& rhs) const;
40 
41  bool operator!=(const CSRMat& rhs) const;
42 
43  private:
45  std::vector<double> packedcoefs_;
46 };//class CSRMat
47 
49 void multiply_CSRMat_CSVec(const CSRMat& A, const CSVec& x, CSVec& y);
50 
52 void multiply_trans_CSRMat_CSVec(const CSRMat& A, const CSVec& x, CSVec& y);
53 
55 void multiply_CSRMat_CSRMat(const CSRMat& A, const CSRMat& B, CSRMat& C,
56  bool storeResultZeros=false);
57 
59 void multiply_trans_CSRMat_CSRMat(const CSRMat& A, const CSRMat& B, CSRMat& C,
60  bool storeResultZeros=false);
61 
62 void add_CSRMat_to_FillableMat(const CSRMat& csrm, FillableMat& fm);
63 
64 }//namespace fei
65 
66 #endif
67 
fei::multiply_CSRMat_CSRMat
void multiply_CSRMat_CSRMat(const CSRMat &A, const CSRMat &B, CSRMat &C, bool storeResultZeros)
Definition: fei_CSRMat.cpp:189
fei::CSRMat::operator!=
bool operator!=(const CSRMat &rhs) const
Definition: fei_CSRMat.cpp:97
fei::CSRMat::srg_
SparseRowGraph srg_
Definition: fei_CSRMat.hpp:44
fei::FillableMat
Definition: fei_FillableMat.hpp:20
fei::CSRMat::getGraph
SparseRowGraph & getGraph()
Definition: fei_CSRMat.hpp:27
fei::SparseRowGraph::rowNumbers
std::vector< int > rowNumbers
Definition: fei_SparseRowGraph.hpp:46
fei_CSVec.hpp
fei::CSRMat::getNumRows
unsigned getNumRows() const
Definition: fei_CSRMat.hpp:33
fei::multiply_trans_CSRMat_CSVec
void multiply_trans_CSRMat_CSVec(const CSRMat &A, const CSVec &x, CSVec &y)
Definition: fei_CSRMat.cpp:148
fei_macros.hpp
fei::add_CSRMat_to_FillableMat
void add_CSRMat_to_FillableMat(const CSRMat &csrm, FillableMat &fm)
Definition: fei_CSRMat.cpp:334
fei::CSRMat::getGraph
const SparseRowGraph & getGraph() const
Definition: fei_CSRMat.hpp:28
fei::CSRMat::operator=
CSRMat & operator=(const FillableMat &src)
Definition: fei_CSRMat.cpp:36
fei::CSRMat::operator+=
CSRMat & operator+=(const CSRMat &src)
Definition: fei_CSRMat.cpp:80
fei::CSRMat::~CSRMat
virtual ~CSRMat()
Definition: fei_CSRMat.cpp:31
fei::CSRMat::getPackedCoefs
std::vector< double > & getPackedCoefs()
Definition: fei_CSRMat.hpp:30
fei::CSRMat::packedcoefs_
std::vector< double > packedcoefs_
Definition: fei_CSRMat.hpp:45
fei::CSRMat::CSRMat
CSRMat()
Definition: fei_CSRMat.cpp:18
fei::multiply_CSRMat_CSVec
void multiply_CSRMat_CSVec(const CSRMat &A, const CSVec &x, CSVec &y)
Definition: fei_CSRMat.cpp:102
fei::CSRMat::operator==
bool operator==(const CSRMat &rhs) const
Definition: fei_CSRMat.cpp:90
fei::multiply_trans_CSRMat_CSRMat
void multiply_trans_CSRMat_CSRMat(const CSRMat &A, const CSRMat &B, CSRMat &C, bool storeResultZeros)
Definition: fei_CSRMat.cpp:268
fei::SparseRowGraph
Definition: fei_SparseRowGraph.hpp:23
fei::CSRMat::getPackedCoefs
const std::vector< double > & getPackedCoefs() const
Definition: fei_CSRMat.hpp:31
fei
Definition: fei_ArrayUtils.hpp:16
C
A
fei_SparseRowGraph.hpp
fei::CSVec
Definition: fei_CSVec.hpp:24
fei::CSRMat
Definition: fei_CSRMat.hpp:21
B
fei_FillableMat.hpp