|
| static constexpr Index | s_invalidIndex = std::is_signed_v<Index> ? std::numeric_limits<Index>::lowest() : std::numeric_limits<Index>::max() |
| |
| static constexpr sofa::Index | NL = CRSMatrix::NL |
| | Number of rows of a block. More...
|
| |
| static constexpr sofa::Index | NC = CRSMatrix::NC |
| | Number of columns of a block. More...
|
| |
| static constexpr sofa::Index | NL |
| | Number of rows of a block. More...
|
| |
| static constexpr sofa::Index | NC |
| | Number of columns of a block. More...
|
| |
| static constexpr Index | s_invalidIndex |
| |
| static constexpr bool | AutoSize = true |
| |
| static constexpr bool | AutoCompress = true |
| |
| static constexpr bool | CompressZeros = false |
| |
| static constexpr bool | ClearByZeros = false |
| |
| static constexpr bool | OrderedInsertion = false |
| |
| static constexpr int | matrixType = 2 |
| |
| static constexpr bool | IsAlwaysSquare = false |
| | Set to true if this matrix is always square (must be true for symmetric) More...
|
| |
| static constexpr bool | IsAlwaysSymmetric = false |
| | Set to true if this matrix is always symmetric (IsAlwaysSquare should be true) More...
|
| |
| static constexpr bool | AutoSize = false |
| | Set to true if the size of the matrix should be automatically increased when new blocks are added. More...
|
| |
| static constexpr bool | AutoCompress = true |
| | Set to true if the matrix should be automatically compressed (easier to use, but might cause issues in multithreading) More...
|
| |
| static constexpr bool | CompressZeros = true |
| | Set to true if the blocks that are all zeros should be removed from the matrix when compressing (expensive) More...
|
| |
| static constexpr bool | ClearByZeros = true |
| | Set to true if clear methods will put all concerned value to zero instead of clearing vectors (CompressZeros should be true) More...
|
| |
| static constexpr bool | OrderedInsertion = false |
| | Set to true if insertion in matrix are in most case at last line index or last col index. More...
|
| |
| static constexpr bool | StoreLowerTriangularBlock = true |
| | Set to false to disable storage of blocks on the lower triangular part (IsAlwaysSymmetric must be true) More...
|
| |
| static constexpr int | matrixType = 0 |
| | Do not change this value, has to be overrided for all derivated class. More...
|
| |
|
| | CompressedRowSparseMatrixConstraint () |
| |
| | CompressedRowSparseMatrixConstraint (Index nbRow, Index nbCol) |
| |
| bool | empty () const |
| |
| RowConstIterator | begin () const |
| | Get the iterator corresponding to the beginning of the rows of blocks. More...
|
| |
| RowConstIterator | end () const |
| | Get the iterator corresponding to the end of the rows of blocks. More...
|
| |
| RowConstIterator | cbegin () const |
| | Get the iterator corresponding to the beginning of the rows of blocks. More...
|
| |
| RowConstIterator | cend () const |
| | Get the iterator corresponding to the end of the rows of blocks. More...
|
| |
| size_t | size () const |
| | Get the number of constraint. More...
|
| |
| RowConstIterator | readLine (Index lIndex) const |
| |
| RowWriteAccessor | writeLine (Index lIndex) |
| |
| void | setLine (Index lIndex, RowType row) |
| |
| void | addLine (Index lIndex, RowType row) |
| |
| template<class VecDeriv > |
| void | multTransposeBaseVector (VecDeriv &res, const sofa::linearalgebra::BaseVector *lambda) const |
| |
| void | prettyPrint (std::ostream &out=std::cout) const |
| | write into output stream (default is standard output) More...
|
| |
| | CompressedRowSparseMatrixGeneric () |
| |
| | CompressedRowSparseMatrixGeneric (Index nbBlockRow, Index nbBlockCol) |
| |
| virtual | ~CompressedRowSparseMatrixGeneric ()=default |
| |
| Index | rowBSize () const |
| |
| Index | colBSize () const |
| |
| const VecIndex & | getRowIndex () const |
| |
| const VecIndex & | getRowBegin () const |
| |
| Range | getRowRange (Index id) const |
| | Returns the range of indices from the column indices corresponding to the id-th row. More...
|
| |
| const VecIndex & | getColsIndex () const |
| |
| const VecBlock & | getColsValue () const |
| |
| virtual void | resizeBlock (Index nbBRow, Index nbBCol) |
| |
| void | compress () |
| |
| void | swap (Matrix &m) |
| |
| void | fullRows () |
| | Make sure all rows have an entry even if they are empty. More...
|
| |
| void | shiftIndices (Index base) |
| |
| const Block & | block (Index i, Index j) const |
| | Get block method. More...
|
| |
| Block * | wblock (Index i, Index j, bool create=false) |
| | Write block method. More...
|
| |
| Block * | wblock (Index i, Index j, Index &rowId, Index &colId, bool create=false) |
| | Write block method when rowId and colId are known, this is an optimized wblock specification. More...
|
| |
| const Block & | getBlock (Index i, Index j) const |
| |
| const BlockTranspose | getSymBlock (Index i, Index j) const |
| |
| void | setBlock (Index i, Index j, const Block &v) |
| |
| void | setBlock (Index i, Index j, Index &rowId, Index &colId, const Block &v) |
| |
| void | addBlock (Index i, Index j, const Block &v) |
| |
| void | addBlock (Index i, Index j, Index &rowId, Index &colId, const Block &v) |
| |
| Block * | getWBlock (Index i, Index j, bool create=false) |
| |
| void | clearRowBlock (Index i) |
| | Clear row block method. Clear all col of this line. More...
|
| |
| void | clearColBlock (Index j) |
| | Clear col block method. Clear this col in all row of matrix. More...
|
| |
| std::size_t | countEmptyBlocks () const |
| |
| void | clearRowColBlock (Index i) |
| | Clear both row i and column i in a square matrix. More...
|
| |
| void | clear () |
| | Completely clear the matrix. More...
|
| |
| bool | check_matrix () |
| |
| std::ostream & | write (std::ostream &os) const |
| |
| std::istream & | read (std::istream &is) |
| |
| void | add (unsigned int bi, unsigned int bj, const Block &b) |
| |
| void | add (unsigned int bi, unsigned int bj, int &rowId, int &colId, const Block &b) |
| |
| void | addDBlock (unsigned int bi, unsigned int bj, const DBlock &b) |
| |
| void | addDValue (unsigned int bi, unsigned int bj, const Real b) |
| |
| void | addDValue (unsigned int bi, unsigned int bj, int &rowId, int &colId, const Real b) |
| |
| void | addDiag (unsigned int bi, const Block &b) |
| |
| void | addDiag (unsigned int bi, int &rowId, int &colId, const Block &b) |
| |
| void | addDiagDBlock (unsigned int bi, const DBlock &b) |
| |
| void | addDiagDValue (unsigned int bi, const Real b) |
| |
| void | addDiagDValue (unsigned int bi, int &rowId, int &colId, const Real b) |
| |
| void | addSym (unsigned int bi, unsigned int bj, const Block &b) |
| |
| void | addSym (unsigned int bi, unsigned int bj, int &rowId, int &colId, int &rowIdT, int &colIdT, const Block &b) |
| |
| void | addSymDBlock (unsigned int bi, unsigned int bj, const DBlock &b) |
| |
| void | addSymDValue (unsigned int bi, unsigned int bj, const Real b) |
| |
| void | addSymDValue (unsigned int bi, unsigned int bj, int &rowId, int &colId, int &rowIdT, int &colIdT, Real b) |
| |
| void | transposeFullRows (CompressedRowSparseMatrixGeneric< TBlock2, TPolicy2 > &res) const |
| | Transpose the matrix into res, works only for 3 array variant ("full rows") matrices, ie which can be expressed using the rowBegin, colsIndex and colsValue arrays solely. More...
|
| |
| void | mul (CompressedRowSparseMatrixGeneric< RB, RP > &res, const CompressedRowSparseMatrixGeneric< MB, MP > &m) const |
| |
| void | mulTranspose (CompressedRowSparseMatrixGeneric< RB, RP > &res, const CompressedRowSparseMatrixGeneric< MB, MP > &m) const |
| |
|
| Index | nBlockRow |
| | Size. More...
|
| |
| Index | nBlockCol |
| | Mathematical size of the matrix, in blocks. More...
|
| |
| VecIndex | rowIndex |
| | Compressed sparse data structure. More...
|
| |
| VecIndex | rowBegin |
| | column indices of non-empty blocks in each row. The column indices of the non-empty block within the i-th non-empty row are all the colsIndex[j], j in [rowBegin[i],rowBegin[i+1]) More...
|
| |
| VecIndex | colsIndex |
| | column indices of all the non-empty blocks, sorted by increasing row index and column index More...
|
| |
| VecBlock | colsValue |
| | values of the non-empty blocks, in the same order as in colsIndex More...
|
| |
| VecFlag | touchedBlock |
| | boolean vector, i-th value is true if block has been touched since last compression. More...
|
| |
| VecIndexedBlock | btemp |
| | Additional storage to make block insertion more efficient. More...
|
| |
| bool | skipCompressZero |
| |
| VecIndex | oldRowIndex |
| | Temporary vectors used during compression. More...
|
| |
| VecIndex | oldRowBegin |
| |
| VecIndex | oldColsIndex |
| |
| VecBlock | oldColsValue |
| |
| bool | registerNewCol (Index &colId, TBlock &bvalue) |
| | Add a new col into matrix. More...
|
| |
| std::pair< Index, Index > | registerBtempLine (typename VecIndexedBlock::const_iterator &itbtemp) |
| | Add a complete new line from btemp into matrix. More...
|
| |
| void | fullyCompressBtemp () |
| | Clear matrix and just add btemp array. More...
|
| |
| Block * | insertBtemp (const Index i, const Index j) |
| | Method to easy insert new block into btemp. More...
|
| |
| Index | getMaxColIndex () |
| | Method to easy have the max colIndex. Could only be used if AutoSize policy is activated. More...
|
| |
| void | deleteRow (Index rowId) |
| | Method to easy delete row given position in rowIndex. More...
|
| |
| void | compressBtemp () |
| | Clear matrix and compute new triplet's arrays by combining old ones and btemp(VecIndexedBlock) array. More...
|
| |
| void | compressCSR () |
| |
| void | writeVector (const TVec &vec, std::ostream &os) |
| |
| void | readVector (TVec &vec, std::istream &in) |
| |