humoto
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
etools::ConstBlockMatrixInterface< t_block_rows_num, t_block_cols_num, t_sparsity_type > Class Template Reference

Detailed Description

template<int t_block_rows_num, int t_block_cols_num, MatrixSparsityType::Type t_sparsity_type>
class etools::ConstBlockMatrixInterface< t_block_rows_num, t_block_cols_num, t_sparsity_type >

Provides block interface for arbitrary Matrix without copying it.

Template Parameters
t_block_rows_numnumber of rows in one block
t_block_cols_numnumber of columns in one block
t_sparsity_typesparsity type

Definition at line 46 of file blockmatrix.h.

#include <blockmatrix.h>

Inheritance diagram for etools::ConstBlockMatrixInterface< t_block_rows_num, t_block_cols_num, t_sparsity_type >:
Inheritance graph

Public Types

typedef const Eigen::Block< const EIGENTOOLS_DYNAMIC_MATRIX(Scalar) > ConstDynamicMatrixBlock
 Shorthand for Eigen block. More...
 
typedef const Eigen::Block< const EIGENTOOLS_DYNAMIC_MATRIX(Scalar), t_block_rows_num, t_block_cols_num > ConstStaticMatrixBlock
 Shorthand for Eigen block. More...
 
typedef BlockMatrixSizeSpecificBase< const DefaultDynamicMatrix &, t_block_rows_num, t_block_cols_num >::DecayedRawMatrix DecayedRawMatrix
 
typedef Eigen::Block< EIGENTOOLS_DYNAMIC_MATRIX(Scalar) > DynamicMatrixBlock
 Shorthand for Eigen block. More...
 
typedef BlockMatrixAccessBase< const DefaultDynamicMatrix &, t_block_rows_num, t_block_cols_num >::Scalar Scalar
 
typedef Eigen::Block< EIGENTOOLS_DYNAMIC_MATRIX(Scalar), t_block_rows_num, t_block_cols_num > StaticMatrixBlock
 Shorthand for Eigen block. More...
 

Public Member Functions

 ConstBlockMatrixInterface (const DefaultDynamicMatrix &matrix, const std::ptrdiff_t block_rows_num=MatrixBlockSizeType::UNDEFINED, const std::ptrdiff_t block_cols_num=MatrixBlockSizeType::UNDEFINED)
 
DynamicMatrixBlock column (const std::ptrdiff_t index_col, const std::ptrdiff_t index_row_first, const std::ptrdiff_t index_num_rows)
 Access column of a matrix. More...
 
DynamicMatrixBlock column (const std::ptrdiff_t index_col, const std::ptrdiff_t index_row_first=0)
 Access column of a matrix. More...
 
ConstDynamicMatrixBlock column (const std::ptrdiff_t index_col, const std::ptrdiff_t index_row_first, const std::ptrdiff_t index_num_rows) const
 Access column of a matrix. More...
 
ConstDynamicMatrixBlock column (const std::ptrdiff_t index_col, const std::ptrdiff_t index_row_first=0) const
 Access column of a matrix. More...
 
std::ptrdiff_t getBlockColsNum () const
 Returns dimension of the matrix block. More...
 
std::ptrdiff_t getBlockRowsNum () const
 Returns dimension of the matrix block. More...
 
std::ptrdiff_t getNumberOfBlocksHorizontal () const
 Get number of blocks (horizontal/vertical) More...
 
std::ptrdiff_t getNumberOfBlocksVertical () const
 Get number of blocks (horizontal/vertical) More...
 
std::ptrdiff_t getNumberOfColumns () const
 Get total number of rows / columns. More...
 
std::ptrdiff_t getNumberOfRows () const
 Get total number of rows / columns. More...
 
const DecayedRawMatrixgetRaw () const
 Get raw matrix. More...
 
void multiplyRight (Eigen::PlainObjectBase< t_DerivedOutput > &result, const Eigen::MatrixBase< t_DerivedInput > &matrix) const
 this * Matrix More...
 
StaticMatrixBlock operator() (const std::ptrdiff_t index_row, const std::ptrdiff_t index_col)
 Block access operator. More...
 
ConstStaticMatrixBlock operator() (const std::ptrdiff_t index_row, const std::ptrdiff_t index_col) const
 Block access operator. More...
 
StaticMatrixBlock operator() (const std::ptrdiff_t index)
 Block access operator for diagonal blocks. More...
 
ConstStaticMatrixBlock operator() (const std::ptrdiff_t index) const
 Block access operator for diagonal blocks. More...
 
void resize (const std::ptrdiff_t num_blocks_vert, const std::ptrdiff_t num_blocks_hor)
 Resize matrix. More...
 
void resize (const std::ptrdiff_t num_blocks)
 Resize square matrix. More...
 
DynamicMatrixBlock row (const std::ptrdiff_t index_row, const std::ptrdiff_t index_col_first, const std::ptrdiff_t index_num_cols)
 Access row of a matrix. More...
 
DynamicMatrixBlock row (const std::ptrdiff_t index_row, const std::ptrdiff_t index_col_first=0)
 Access row of a matrix. More...
 
ConstDynamicMatrixBlock row (const std::ptrdiff_t index_row, const std::ptrdiff_t index_col_first, const std::ptrdiff_t index_num_cols) const
 Access row of a matrix. More...
 
ConstDynamicMatrixBlock row (const std::ptrdiff_t index_row, const std::ptrdiff_t index_col_first=0) const
 Access row of a matrix. More...
 
DecayedRawMatrix selectRowInBlocksAsMatrix (const std::ptrdiff_t row_in_a_block)
 Selects rows from the matrix. More...
 
void set (const Eigen::DenseBase< t_Derived > &matrix)
 Set raw matrix. More...
 
void setBlockSize (const std::ptrdiff_t block_rows_num, const std::ptrdiff_t block_cols_num)
 Returns dimension of the matrix block. More...
 
void setZero (const std::ptrdiff_t num_blocks_vert, const std::ptrdiff_t num_blocks_hor)
 Resize matrix and initialize it with zeros. More...
 
void setZero (const std::ptrdiff_t num_blocks)
 Resize square matrix and set it to zero. More...
 

Protected Member Functions

void finalize ()
 Compute humber of blocks in matrix and check size consistency. More...
 
void initializeBlockSize (const std::ptrdiff_t block_rows_num, const std::ptrdiff_t block_cols_num)
 Compute humber of blocks in matrix and check size consistency. More...
 

Protected Attributes

std::ptrdiff_t block_cols_num_
 
std::ptrdiff_t block_rows_num_
 
const DefaultDynamicMatrixmatrix_
 
std::ptrdiff_t num_blocks_hor_
 
std::ptrdiff_t num_blocks_vert_
 

Member Typedef Documentation

◆ ConstDynamicMatrixBlock

typedef const Eigen::Block< const EIGENTOOLS_DYNAMIC_MATRIX( Scalar ) > etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::ConstDynamicMatrixBlock
inherited

Shorthand for Eigen block.

Definition at line 120 of file blockmatrix_base.h.

◆ ConstStaticMatrixBlock

typedef const Eigen::Block< const EIGENTOOLS_DYNAMIC_MATRIX( Scalar ), t_block_rows_num, t_block_cols_num> etools::BlockMatrixSizeSpecificBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::ConstStaticMatrixBlock
inherited

Shorthand for Eigen block.

Definition at line 560 of file blockmatrix_base.h.

◆ DecayedRawMatrix

typedef BlockMatrixSizeSpecificBase<const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num>::DecayedRawMatrix etools::BlockMatrixBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num, t_sparsity_type >::DecayedRawMatrix
inherited

Definition at line 855 of file blockmatrix_base.h.

◆ DynamicMatrixBlock

typedef Eigen::Block< EIGENTOOLS_DYNAMIC_MATRIX( Scalar ) > etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::DynamicMatrixBlock
inherited

Shorthand for Eigen block.

Definition at line 117 of file blockmatrix_base.h.

◆ Scalar

typedef BlockMatrixAccessBase<const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num>::Scalar etools::BlockMatrixSizeSpecificBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::Scalar
inherited

Definition at line 549 of file blockmatrix_base.h.

◆ StaticMatrixBlock

typedef Eigen::Block< EIGENTOOLS_DYNAMIC_MATRIX( Scalar ), t_block_rows_num, t_block_cols_num> etools::BlockMatrixSizeSpecificBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::StaticMatrixBlock
inherited

Shorthand for Eigen block.

Definition at line 555 of file blockmatrix_base.h.

Constructor & Destructor Documentation

◆ ConstBlockMatrixInterface()

template<int t_block_rows_num, int t_block_cols_num, MatrixSparsityType::Type t_sparsity_type>
etools::ConstBlockMatrixInterface< t_block_rows_num, t_block_cols_num, t_sparsity_type >::ConstBlockMatrixInterface ( const DefaultDynamicMatrix matrix,
const std::ptrdiff_t  block_rows_num = MatrixBlockSizeType::UNDEFINED,
const std::ptrdiff_t  block_cols_num = MatrixBlockSizeType::UNDEFINED 
)
inline

Definition at line 46 of file blockmatrix.h.

Member Function Documentation

◆ column() [1/4]

DynamicMatrixBlock etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::column ( const std::ptrdiff_t  index_col,
const std::ptrdiff_t  index_row_first,
const std::ptrdiff_t  index_num_rows 
)
inlineinherited

Access column of a matrix.

Parameters
[in]index_colindex of the column
[in]index_row_firstsegment of the column starts at this row
[in]index_num_rowsnumber of blocks
Returns
column or a part of it

Definition at line 238 of file blockmatrix_base.h.

◆ column() [2/4]

DynamicMatrixBlock etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::column ( const std::ptrdiff_t  index_col,
const std::ptrdiff_t  index_row_first = 0 
)
inlineinherited

Access column of a matrix.

Parameters
[in]index_colindex of the column
[in]index_row_firstsegment of the column starts at this row if index_row_first is not specified => return the whole column
Returns
column or a part of it

Definition at line 260 of file blockmatrix_base.h.

◆ column() [3/4]

ConstDynamicMatrixBlock etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::column ( const std::ptrdiff_t  index_col,
const std::ptrdiff_t  index_row_first,
const std::ptrdiff_t  index_num_rows 
) const
inlineinherited

Access column of a matrix.

Parameters
[in]index_colindex of the column
[in]index_row_firstsegment of the column starts at this row
[in]index_num_rowsnumber of blocks
Returns
column or a part of it

Definition at line 268 of file blockmatrix_base.h.

◆ column() [4/4]

ConstDynamicMatrixBlock etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::column ( const std::ptrdiff_t  index_col,
const std::ptrdiff_t  index_row_first = 0 
) const
inlineinherited

Access column of a matrix.

Parameters
[in]index_colindex of the column
[in]index_row_firstsegment of the column starts at this row if index_row_first is not specified => return the whole column
Returns
column or a part of it

Definition at line 281 of file blockmatrix_base.h.

◆ finalize()

void etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::finalize ( )
inlineprotectedinherited

Compute humber of blocks in matrix and check size consistency.

Definition at line 504 of file blockmatrix_base.h.

◆ getBlockColsNum()

std::ptrdiff_t etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::getBlockColsNum ( ) const
inlineinherited

Returns dimension of the matrix block.

Returns
number of rows / columns

Definition at line 384 of file blockmatrix_base.h.

◆ getBlockRowsNum()

std::ptrdiff_t etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::getBlockRowsNum ( ) const
inlineinherited

Returns dimension of the matrix block.

Returns
number of rows / columns

Definition at line 377 of file blockmatrix_base.h.

◆ getNumberOfBlocksHorizontal()

std::ptrdiff_t etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::getNumberOfBlocksHorizontal ( ) const
inlineinherited

Get number of blocks (horizontal/vertical)

Returns
number of blocks

Definition at line 136 of file blockmatrix_base.h.

◆ getNumberOfBlocksVertical()

std::ptrdiff_t etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::getNumberOfBlocksVertical ( ) const
inlineinherited

Get number of blocks (horizontal/vertical)

Returns
number of blocks

Definition at line 129 of file blockmatrix_base.h.

◆ getNumberOfColumns()

std::ptrdiff_t etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::getNumberOfColumns ( ) const
inlineinherited

Get total number of rows / columns.

Returns
number of rows / columns

Definition at line 155 of file blockmatrix_base.h.

◆ getNumberOfRows()

std::ptrdiff_t etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::getNumberOfRows ( ) const
inlineinherited

Get total number of rows / columns.

Returns
number of rows / columns

Definition at line 148 of file blockmatrix_base.h.

◆ getRaw()

const DecayedRawMatrix& etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::getRaw ( ) const
inlineinherited

Get raw matrix.

Returns
matrix

Definition at line 353 of file blockmatrix_base.h.

◆ initializeBlockSize()

void etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::initializeBlockSize ( const std::ptrdiff_t  block_rows_num,
const std::ptrdiff_t  block_cols_num 
)
inlineprotectedinherited

Compute humber of blocks in matrix and check size consistency.

Definition at line 474 of file blockmatrix_base.h.

◆ multiplyRight()

void etools::BlockMatrixBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num, t_sparsity_type >::multiplyRight ( Eigen::PlainObjectBase< t_DerivedOutput > &  result,
const Eigen::MatrixBase< t_DerivedInput > &  matrix 
) const
inlineinherited

this * Matrix

Template Parameters
t_DerivedOutputEigen parameter
t_DerivedInputEigen parameter
Parameters
[out]resultresult of multiplication
[in]matrix

Definition at line 870 of file blockmatrix_base.h.

◆ operator()() [1/4]

StaticMatrixBlock etools::BlockMatrixSizeSpecificBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::operator() ( const std::ptrdiff_t  index_row,
const std::ptrdiff_t  index_col 
)
inlineinherited

Block access operator.

Parameters
[in]index_row
[in]index_col
Returns
matrix block

Definition at line 570 of file blockmatrix_base.h.

◆ operator()() [2/4]

ConstStaticMatrixBlock etools::BlockMatrixSizeSpecificBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::operator() ( const std::ptrdiff_t  index_row,
const std::ptrdiff_t  index_col 
) const
inlineinherited

Block access operator.

Parameters
[in]index_row
[in]index_col
Returns
matrix block

Definition at line 580 of file blockmatrix_base.h.

◆ operator()() [3/4]

StaticMatrixBlock etools::BlockMatrixSizeSpecificBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::operator() ( const std::ptrdiff_t  index)
inlineinherited

Block access operator for diagonal blocks.

Parameters
[in]indexrow and column index
Returns
matrix block

Definition at line 596 of file blockmatrix_base.h.

◆ operator()() [4/4]

ConstStaticMatrixBlock etools::BlockMatrixSizeSpecificBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::operator() ( const std::ptrdiff_t  index) const
inlineinherited

Block access operator for diagonal blocks.

Parameters
[in]indexrow and column index
Returns
matrix block

Definition at line 603 of file blockmatrix_base.h.

◆ resize() [1/2]

void etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::resize ( const std::ptrdiff_t  num_blocks_vert,
const std::ptrdiff_t  num_blocks_hor 
)
inlineinherited

Resize matrix.

Parameters
[in]num_blocks_vert
[in]num_blocks_hor

Definition at line 182 of file blockmatrix_base.h.

◆ resize() [2/2]

void etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::resize ( const std::ptrdiff_t  num_blocks)
inlineinherited

Resize square matrix.

Parameters
[in]num_blocksnumber of diagonal blocks

Definition at line 211 of file blockmatrix_base.h.

◆ row() [1/4]

DynamicMatrixBlock etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::row ( const std::ptrdiff_t  index_row,
const std::ptrdiff_t  index_col_first,
const std::ptrdiff_t  index_num_cols 
)
inlineinherited

Access row of a matrix.

Parameters
[in]index_rowindex of the row
[in]index_col_firstsegment of the row starts at this column
[in]index_num_colsnumber of blocks
Returns
row or a part of it

Definition at line 297 of file blockmatrix_base.h.

◆ row() [2/4]

DynamicMatrixBlock etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::row ( const std::ptrdiff_t  index_row,
const std::ptrdiff_t  index_col_first = 0 
)
inlineinherited

Access row of a matrix.

Parameters
[in]index_rowindex of the row
[in]index_col_firstsegment of the row starts at this column if index_col_first is not specified => return the whole row
Returns
row or a part of it

Definition at line 319 of file blockmatrix_base.h.

◆ row() [3/4]

ConstDynamicMatrixBlock etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::row ( const std::ptrdiff_t  index_row,
const std::ptrdiff_t  index_col_first,
const std::ptrdiff_t  index_num_cols 
) const
inlineinherited

Access row of a matrix.

Parameters
[in]index_rowindex of the row
[in]index_col_firstsegment of the row starts at this column
[in]index_num_colsnumber of blocks
Returns
row or a part of it

Definition at line 327 of file blockmatrix_base.h.

◆ row() [4/4]

ConstDynamicMatrixBlock etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::row ( const std::ptrdiff_t  index_row,
const std::ptrdiff_t  index_col_first = 0 
) const
inlineinherited

Access row of a matrix.

Parameters
[in]index_rowindex of the row
[in]index_col_firstsegment of the row starts at this column if index_col_first is not specified => return the whole row
Returns
row or a part of it

Definition at line 340 of file blockmatrix_base.h.

◆ selectRowInBlocksAsMatrix()

DecayedRawMatrix etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::selectRowInBlocksAsMatrix ( const std::ptrdiff_t  row_in_a_block)
inlineinherited

Selects rows from the matrix.

Parameters
[in]row_in_a_blockrow number in a block
Returns
selected rows

Definition at line 366 of file blockmatrix_base.h.

◆ set()

void etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::set ( const Eigen::DenseBase< t_Derived > &  matrix)
inlineinherited

Set raw matrix.

Template Parameters
t_DerivedEigen parameter
Parameters
[in]matrix

Definition at line 169 of file blockmatrix_base.h.

◆ setBlockSize()

void etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::setBlockSize ( const std::ptrdiff_t  block_rows_num,
const std::ptrdiff_t  block_cols_num 
)
inlineinherited

Returns dimension of the matrix block.

Returns
number of rows / columns

Definition at line 395 of file blockmatrix_base.h.

◆ setZero() [1/2]

void etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::setZero ( const std::ptrdiff_t  num_blocks_vert,
const std::ptrdiff_t  num_blocks_hor 
)
inlineinherited

Resize matrix and initialize it with zeros.

Parameters
[in]num_blocks_vert
[in]num_blocks_hor

Definition at line 197 of file blockmatrix_base.h.

◆ setZero() [2/2]

void etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::setZero ( const std::ptrdiff_t  num_blocks)
inlineinherited

Resize square matrix and set it to zero.

Parameters
[in]num_blocksnumber of diagonal blocks

Definition at line 222 of file blockmatrix_base.h.

Member Data Documentation

◆ block_cols_num_

std::ptrdiff_t etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::block_cols_num_
protectedinherited

Definition at line 414 of file blockmatrix_base.h.

◆ block_rows_num_

std::ptrdiff_t etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::block_rows_num_
protectedinherited

Definition at line 413 of file blockmatrix_base.h.

◆ matrix_

const DefaultDynamicMatrix & etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::matrix_
protectedinherited

Definition at line 408 of file blockmatrix_base.h.

◆ num_blocks_hor_

std::ptrdiff_t etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::num_blocks_hor_
protectedinherited

Definition at line 411 of file blockmatrix_base.h.

◆ num_blocks_vert_

std::ptrdiff_t etools::BlockMatrixAccessBase< const DefaultDynamicMatrix & , t_block_rows_num, t_block_cols_num >::num_blocks_vert_
protectedinherited

Definition at line 410 of file blockmatrix_base.h.


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