24 #ifndef COPASI_CSparseMatrix
25 #define COPASI_CSparseMatrix
32 template <
typename ValueType >
class CMatrix;
42 const size_t & rowIndex,
43 const size_t & colIndex,
51 const size_t &
row()
const;
52 const size_t &
col()
const;
72 const size_t & cols = 0);
75 bool resize(
const size_t & rows,
const size_t & columns);
80 const std::vector< std::vector< CSparseMatrixElement *> > &
getColumns()
const;
81 std::vector< std::vector< CSparseMatrixElement *> > &
getColumns();
82 const std::vector< std::vector< CSparseMatrixElement *> > &
getRows()
const;
83 std::vector< std::vector< CSparseMatrixElement *> > &
getRows();
96 const size_t & col)
const;
98 bool insert(
const size_t & row,
101 bool remove(
const size_t & row,
120 std::vector< std::vector< CSparseMatrixElement *> >
mRows;
121 std::vector< std::vector< CSparseMatrixElement *> >
mCols;
144 #if (defined __GNUC__ && __GNUC__ < 3)
148 public std::iterator< std::forward_iterator_tag, C_FLOAT64, ptrdiff_t >
220 const size_t & columns,
221 const size_t & nonZeros);
241 bool SparseMatrixTest(
const size_t & size,
243 const unsigned C_INT32 & seed = 0,
244 const bool & RMP =
true,
245 const bool & DGEMM =
true,
246 const bool & SMP =
true,
247 const bool & CCMP =
true);
250 #endif // COPASI_CSparseMatrix
const size_t & col() const
const C_FLOAT64 & operator=(const C_FLOAT64 &value)
bool resize(const size_t &rows, const size_t &columns)
CSparseMatrix & operator=(const CCompressedColumnFormat &ccf)
const C_FLOAT64 & getTreshold() const
const size_t & numCols() const
static bool compareRow(const CSparseMatrixElement *pLhs, const CSparseMatrixElement *pRhs)
friend std::ostream & operator<<(std::ostream &os, const CSparseMatrix &A)
const size_t & numRows() const
std::vector< std::vector< CSparseMatrixElement * > > mRows
static bool compareCol(const CSparseMatrixElement *pLhs, const CSparseMatrixElement *pRhs)
const std::vector< std::vector< CSparseMatrixElement * > > & getColumns() const
const std::vector< std::vector< CSparseMatrixElement * > > & getRows() const
CSparseMatrix(const size_t &rows=0, const size_t &cols=0)
const size_t & row() const
std::vector< size_t > mColIndex
std::vector< size_t > mRowIndex
bool insert(const size_t &row, const size_t &col, const C_FLOAT64 &value)
std::vector< std::vector< CSparseMatrixElement * > > mCols
bool setTreshold(const C_FLOAT64 &threshold)
CSparseMatrixElement & operator()(const size_t &row, const size_t &col)
CSparseMatrixElement mElement
size_t numNonZeros() const