#include <iDynTree/SparseMatrix.h>
template<iDynTree::MatrixStorageOrdering ordering>
SparseMatrix class
Sparse Matrix class.
This class uses the Compressed Column (Row) Storage scheme (see https://en.wikipedia.org/wiki/Sparse_
Public types
- class ConstIterator
- class Iterator
- using iterator = Iterator
- using const_iterator = ConstIterator
Public static functions
-
static auto sparseMatrixFromTriplets(std::size_t rows,
std::size_t cols,
const iDynTree::
Triplets& nonZeroElements) -> SparseMatrix
Constructors, destructors, conversion operators
- SparseMatrix()
- Creates an empty sparse matrix.
- SparseMatrix(std::size_t rows, std::size_t cols)
- Creates a zero sparse matrix with the specified dimensions.
-
SparseMatrix(std::size_t rows,
std::size_t cols,
const iDynTree::
VectorDynSize& memoryReserveDescription) -
template<iDynTree::MatrixStorageOrdering otherOrdering>SparseMatrix(const SparseMatrix<otherOrdering>&)
- ~SparseMatrix()
- Default destructor.
Public functions
-
template<iDynTree::MatrixStorageOrdering otherOrdering>auto operator=(const SparseMatrix<otherOrdering>&) -> SparseMatrix&
- auto numberOfNonZeros() const -> std::size_t
- Returns the number of nonzero elements in this sparse matrix.
- void resize(std::size_t rows, std::size_t columns)
- Resize the matrix to the specified new dimensions.
-
void resize(std::size_t rows,
std::size_t columns,
const iDynTree::
VectorDynSize& innerIndicesInformation) - Resize the matrix to the specified new dimensions.
- void reserve(std::size_t nonZeroElements)
- void zero()
- Set the sparse matrix to be zero.
-
void setFromConstTriplets(const iDynTree::
Triplets& triplets) - Sets the content of this sparse matrix to the content of triplets.
-
void setFromTriplets(iDynTree::
Triplets& triplets) - Sets the content of this sparse matrix to the content of triplets.
- auto operator()(std::size_t row, std::size_t col) const -> double
- Access operation to the element of the matrix identified by row-col.
- auto operator()(std::size_t row, std::size_t col) -> double&
- Access operation to the element of the matrix identified by row-col.
- auto getValue(std::size_t row, std::size_t col) const -> double
- void setValue(std::size_t row, std::size_t col, double newValue)
- auto rows() const -> std::size_t
- Returns the number of rows of the matrix.
- auto columns() const -> std::size_t
- Returns the number of columns of the matrix.
- auto valuesBuffer() -> double*
- auto valuesBuffer() const -> double const *
- auto innerIndicesBuffer() -> int*
- auto innerIndicesBuffer() const -> int const *
- auto outerIndicesBuffer() -> int*
- auto outerIndicesBuffer() const -> int const *
- auto description(bool fullMatrix = false) const -> std::string
- Returns a textual description of the matrix.
- auto internalDescription() const -> std::string
- auto begin() -> iterator
-
auto begin() const -> const_
iterator - auto end() -> iterator
-
auto end() const -> const_
iterator
Function documentation
template<iDynTree::MatrixStorageOrdering ordering>
std::size_t iDynTree:: SparseMatrix<ordering>:: numberOfNonZeros() const
Returns the number of nonzero elements in this sparse matrix.
Returns | the number of non zero elements |
---|
template<iDynTree::MatrixStorageOrdering ordering>
void iDynTree:: SparseMatrix<ordering>:: resize(std::size_t rows,
std::size_t columns)
Resize the matrix to the specified new dimensions.
Parameters | |
---|---|
rows | the new number of rows of this matrix |
columns | the new number of columns of this matrix |
template<iDynTree::MatrixStorageOrdering ordering>
void iDynTree:: SparseMatrix<ordering>:: resize(std::size_t rows,
std::size_t columns,
const iDynTree:: VectorDynSize& innerIndicesInformation)
Resize the matrix to the specified new dimensions.
Parameters | |
---|---|
rows | the new number of rows of this matrix |
columns | the new number of columns of this matrix |
innerIndicesInformation | information on the NNZ for each column (row), used to reserve memory in advance. It depends on the storage ordering |
template<iDynTree::MatrixStorageOrdering ordering>
void iDynTree:: SparseMatrix<ordering>:: zero()
Set the sparse matrix to be zero.
template<iDynTree::MatrixStorageOrdering ordering>
void iDynTree:: SparseMatrix<ordering>:: setFromConstTriplets(const iDynTree:: Triplets& triplets)
Sets the content of this sparse matrix to the content of triplets.
Parameters | |
---|---|
triplets | triplets containing the non zero elements |
This function does not set the dimensions of the matrix which must be set beforehand. If the dimensions are wrong the behaviour is undefined.
template<iDynTree::MatrixStorageOrdering ordering>
void iDynTree:: SparseMatrix<ordering>:: setFromTriplets(iDynTree:: Triplets& triplets)
Sets the content of this sparse matrix to the content of triplets.
Parameters | |
---|---|
triplets | triplets containing the non zero elements |
This function does not set the dimensions of the matrix which must be set beforehand. If the dimensions are wrong the behaviour is undefined.
template<iDynTree::MatrixStorageOrdering ordering>
double iDynTree:: SparseMatrix<ordering>:: operator()(std::size_t row,
std::size_t col) const
Access operation to the element of the matrix identified by row-col.
Parameters | |
---|---|
row | row index |
col | column index |
Returns | the value at the specified row and column |
template<iDynTree::MatrixStorageOrdering ordering>
double& iDynTree:: SparseMatrix<ordering>:: operator()(std::size_t row,
std::size_t col)
Access operation to the element of the matrix identified by row-col.
Parameters | |
---|---|
row | row index |
col | column index |
Returns | reference to the value at the specified row and column |
template<iDynTree::MatrixStorageOrdering ordering>
std::size_t iDynTree:: SparseMatrix<ordering>:: rows() const
Returns the number of rows of the matrix.
Returns | the number of rows |
---|
template<iDynTree::MatrixStorageOrdering ordering>
std::size_t iDynTree:: SparseMatrix<ordering>:: columns() const
Returns the number of columns of the matrix.
Returns | the number of columns |
---|
template<iDynTree::MatrixStorageOrdering ordering>
std::string iDynTree:: SparseMatrix<ordering>:: description(bool fullMatrix = false) const
Returns a textual description of the matrix.
Parameters | |
---|---|
fullMatrix | true to return the full matrix, false for only the non zero elements. Default to false |
Returns | a textual representation of the matrix |
If true is passed, the whole matrix (with also zero elements) is printed Default to false