FEI Package Browser (Single Doxygen Collection) Version of the Day
Loading...
Searching...
No Matches
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"
15#include "fei_CSVec.hpp"
16
17namespace fei {
18
21class 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
49void multiply_CSRMat_CSVec(const CSRMat& A, const CSVec& x, CSVec& y);
50
52void multiply_trans_CSRMat_CSVec(const CSRMat& A, const CSVec& x, CSVec& y);
53
55void multiply_CSRMat_CSRMat(const CSRMat& A, const CSRMat& B, CSRMat& C,
56 bool storeResultZeros=false);
57
59void multiply_trans_CSRMat_CSRMat(const CSRMat& A, const CSRMat& B, CSRMat& C,
60 bool storeResultZeros=false);
61
62void add_CSRMat_to_FillableMat(const CSRMat& csrm, FillableMat& fm);
63
64}//namespace fei
65
66#endif
67
virtual ~CSRMat()
std::vector< double > & getPackedCoefs()
const std::vector< double > & getPackedCoefs() const
bool operator==(const CSRMat &rhs) const
bool operator!=(const CSRMat &rhs) const
unsigned getNumRows() const
SparseRowGraph srg_
SparseRowGraph & getGraph()
const SparseRowGraph & getGraph() const
std::vector< double > packedcoefs_
CSRMat & operator=(const FillableMat &src)
CSRMat & operator+=(const CSRMat &src)
std::vector< int > rowNumbers
void multiply_CSRMat_CSRMat(const CSRMat &A, const CSRMat &B, CSRMat &C, bool storeResultZeros)
void multiply_trans_CSRMat_CSRMat(const CSRMat &A, const CSRMat &B, CSRMat &C, bool storeResultZeros)
void add_CSRMat_to_FillableMat(const CSRMat &csrm, FillableMat &fm)
void multiply_trans_CSRMat_CSVec(const CSRMat &A, const CSVec &x, CSVec &y)
void multiply_CSRMat_CSVec(const CSRMat &A, const CSVec &x, CSVec &y)