g2o
Loading...
Searching...
No Matches
g2o::SparseBlockMatrixCCS< MatrixType > Class Template Reference

Sparse matrix which uses blocks. More...

#include <sparse_block_matrix_ccs.h>

Classes

struct  RowBlock
 A block within a column. More...

Public Types

typedef MatrixType SparseMatrixBlock
 this is the type of the elementary block, it is an Eigen::Matrix.
typedef std::vector< RowBlock > SparseColumn

Public Member Functions

int cols () const
 columns of the matrix
int rows () const
 rows of the matrix
 SparseBlockMatrixCCS (const std::vector< int > &rowIndices, const std::vector< int > &colIndices)
int rowsOfBlock (int r) const
 how many rows does the block at block-row r has?
int colsOfBlock (int c) const
 how many cols does the block at block-col c has?
int rowBaseOfBlock (int r) const
 where does the row at block-row r start?
int colBaseOfBlock (int c) const
 where does the col at block-col r start?
const std::vector< SparseColumn > & blockCols () const
 the block matrices per block-column
std::vector< SparseColumn > & blockCols ()
const std::vector< int > & rowBlockIndices () const
 indices of the row blocks
const std::vector< int > & colBlockIndices () const
 indices of the column blocks
void rightMultiply (double *&dest, const double *src) const
void sortColumns ()
int fillCCS (int *Cp, int *Ci, double *Cx, bool upperTriangle=false) const
int fillCCS (double *Cx, bool upperTriangle=false) const

Protected Attributes

const std::vector< int > & _rowBlockIndices
const std::vector< int > & _colBlockIndices
 vector of the indices of the blocks along the cols
std::vector< SparseColumn > _blockCols
 the matrices stored in CCS order

Detailed Description

template<class MatrixType>
class g2o::SparseBlockMatrixCCS< MatrixType >

Sparse matrix which uses blocks.

This class is used as a const view on a SparseBlockMatrix which allows a faster iteration over the elements of the matrix.

Definition at line 48 of file sparse_block_matrix_ccs.h.

Member Typedef Documentation

◆ SparseColumn

template<class MatrixType>
typedef std::vector<RowBlock> g2o::SparseBlockMatrixCCS< MatrixType >::SparseColumn

Definition at line 72 of file sparse_block_matrix_ccs.h.

◆ SparseMatrixBlock

template<class MatrixType>
typedef MatrixType g2o::SparseBlockMatrixCCS< MatrixType >::SparseMatrixBlock

this is the type of the elementary block, it is an Eigen::Matrix.

Definition at line 51 of file sparse_block_matrix_ccs.h.

Constructor & Destructor Documentation

◆ SparseBlockMatrixCCS()

template<class MatrixType>
g2o::SparseBlockMatrixCCS< MatrixType >::SparseBlockMatrixCCS ( const std::vector< int > & rowIndices,
const std::vector< int > & colIndices )
inline

Definition at line 74 of file sparse_block_matrix_ccs.h.

References _colBlockIndices, and _rowBlockIndices.

Member Function Documentation

◆ blockCols() [1/2]

template<class MatrixType>
std::vector< SparseColumn > & g2o::SparseBlockMatrixCCS< MatrixType >::blockCols ( )
inline

Definition at line 98 of file sparse_block_matrix_ccs.h.

References _blockCols.

◆ blockCols() [2/2]

template<class MatrixType>
const std::vector< SparseColumn > & g2o::SparseBlockMatrixCCS< MatrixType >::blockCols ( ) const
inline

◆ colBaseOfBlock()

template<class MatrixType>
int g2o::SparseBlockMatrixCCS< MatrixType >::colBaseOfBlock ( int c) const
inline

where does the col at block-col r start?

Definition at line 94 of file sparse_block_matrix_ccs.h.

References _colBlockIndices.

Referenced by rightMultiply().

◆ colBlockIndices()

template<class MatrixType>
const std::vector< int > & g2o::SparseBlockMatrixCCS< MatrixType >::colBlockIndices ( ) const
inline

indices of the column blocks

Definition at line 104 of file sparse_block_matrix_ccs.h.

References _colBlockIndices.

◆ cols()

template<class MatrixType>
int g2o::SparseBlockMatrixCCS< MatrixType >::cols ( ) const
inline

columns of the matrix

Definition at line 54 of file sparse_block_matrix_ccs.h.

References _colBlockIndices.

Referenced by rightMultiply().

◆ colsOfBlock()

template<class MatrixType>
int g2o::SparseBlockMatrixCCS< MatrixType >::colsOfBlock ( int c) const
inline

how many cols does the block at block-col c has?

Definition at line 85 of file sparse_block_matrix_ccs.h.

References _colBlockIndices.

Referenced by fillCCS().

◆ fillCCS() [1/2]

template<class MatrixType>
int g2o::SparseBlockMatrixCCS< MatrixType >::fillCCS ( double * Cx,
bool upperTriangle = false ) const
inline

fill the CCS arrays of a matrix, arrays have to be allocated beforehand. This function only writes the values and assumes that column and row structures have already been written.

Definition at line 180 of file sparse_block_matrix_ccs.h.

References _blockCols, _colBlockIndices, and _rowBlockIndices.

◆ fillCCS() [2/2]

template<class MatrixType>
int g2o::SparseBlockMatrixCCS< MatrixType >::fillCCS ( int * Cp,
int * Ci,
double * Cx,
bool upperTriangle = false ) const
inline

fill the CCS arrays of a matrix, arrays have to be allocated beforehand

Definition at line 147 of file sparse_block_matrix_ccs.h.

References _blockCols, _colBlockIndices, _rowBlockIndices, and colsOfBlock().

◆ rightMultiply()

template<class MatrixType>
void g2o::SparseBlockMatrixCCS< MatrixType >::rightMultiply ( double *& dest,
const double * src ) const
inline

Definition at line 106 of file sparse_block_matrix_ccs.h.

References _blockCols, colBaseOfBlock(), cols(), rowBaseOfBlock(), and rows().

◆ rowBaseOfBlock()

template<class MatrixType>
int g2o::SparseBlockMatrixCCS< MatrixType >::rowBaseOfBlock ( int r) const
inline

where does the row at block-row r start?

Definition at line 91 of file sparse_block_matrix_ccs.h.

References _rowBlockIndices.

Referenced by rightMultiply().

◆ rowBlockIndices()

template<class MatrixType>
const std::vector< int > & g2o::SparseBlockMatrixCCS< MatrixType >::rowBlockIndices ( ) const
inline

indices of the row blocks

Definition at line 101 of file sparse_block_matrix_ccs.h.

References _rowBlockIndices.

◆ rows()

template<class MatrixType>
int g2o::SparseBlockMatrixCCS< MatrixType >::rows ( ) const
inline

rows of the matrix

Definition at line 58 of file sparse_block_matrix_ccs.h.

References _rowBlockIndices.

Referenced by rightMultiply().

◆ rowsOfBlock()

template<class MatrixType>
int g2o::SparseBlockMatrixCCS< MatrixType >::rowsOfBlock ( int r) const
inline

how many rows does the block at block-row r has?

Definition at line 79 of file sparse_block_matrix_ccs.h.

References _rowBlockIndices.

◆ sortColumns()

template<class MatrixType>
void g2o::SparseBlockMatrixCCS< MatrixType >::sortColumns ( )
inline

sort the blocks in each column

Definition at line 138 of file sparse_block_matrix_ccs.h.

References _blockCols.

Member Data Documentation

◆ _blockCols

template<class MatrixType>
std::vector<SparseColumn> g2o::SparseBlockMatrixCCS< MatrixType >::_blockCols
protected

the matrices stored in CCS order

Definition at line 208 of file sparse_block_matrix_ccs.h.

Referenced by blockCols(), blockCols(), fillCCS(), fillCCS(), rightMultiply(), and sortColumns().

◆ _colBlockIndices

template<class MatrixType>
const std::vector<int>& g2o::SparseBlockMatrixCCS< MatrixType >::_colBlockIndices
protected

vector of the indices of the blocks along the cols

Definition at line 207 of file sparse_block_matrix_ccs.h.

Referenced by colBaseOfBlock(), colBlockIndices(), cols(), colsOfBlock(), fillCCS(), fillCCS(), and SparseBlockMatrixCCS().

◆ _rowBlockIndices

template<class MatrixType>
const std::vector<int>& g2o::SparseBlockMatrixCCS< MatrixType >::_rowBlockIndices
protected

vector of the indices of the blocks along the rows.

Definition at line 204 of file sparse_block_matrix_ccs.h.

Referenced by fillCCS(), fillCCS(), rowBaseOfBlock(), rowBlockIndices(), rows(), rowsOfBlock(), and SparseBlockMatrixCCS().


The documentation for this class was generated from the following file: