humoto
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
etools::BlockMatrixSizeSpecificBase< t_MatrixType, MatrixBlockSizeType::DYNAMIC, t_block_cols_num > Class Template Reference

Detailed Description

template<typename t_MatrixType, int t_block_cols_num>
class etools::BlockMatrixSizeSpecificBase< t_MatrixType, MatrixBlockSizeType::DYNAMIC, t_block_cols_num >

Extra layer for handling of specific sizes of blocks using partial template specialization.

Template Parameters
t_MatrixTypetype of raw matrix
t_block_rows_numnumber of rows in one block
t_block_cols_numnumber of columns in one block

Definition at line 721 of file blockmatrix_base.h.

#include <blockmatrix_base.h>

Inheritance diagram for etools::BlockMatrixSizeSpecificBase< t_MatrixType, MatrixBlockSizeType::DYNAMIC, t_block_cols_num >:
Inheritance graph

Public Types

typedef EIGENTOOLS_PARENT_CLASS_SHORTHAND::ConstDynamicMatrixBlock ConstDynamicMatrixBlock
 
typedef EIGENTOOLS_PARENT_CLASS_SHORTHAND::DecayedRawMatrix DecayedRawMatrix
 
typedef EIGENTOOLS_PARENT_CLASS_SHORTHAND::DynamicMatrixBlock DynamicMatrixBlock
 
typedef DecayedRawMatrix::Scalar Scalar
 Scalar type of raw matrix (from Eigen) More...
 

Public Member Functions

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...
 
ConstDynamicMatrixBlock operator() (const std::ptrdiff_t index) const
 
DynamicMatrixBlock operator() (const std::ptrdiff_t index_row, const std::ptrdiff_t index_col)
 
ConstDynamicMatrixBlock operator() (const std::ptrdiff_t index_row, const std::ptrdiff_t index_col) const
 
DynamicMatrixBlock operator() (const std::ptrdiff_t index)
 
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

 ~BlockMatrixSizeSpecificBase ()
 
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_
 
t_MatrixType matrix_
 
std::ptrdiff_t num_blocks_hor_
 
std::ptrdiff_t num_blocks_vert_
 

Member Typedef Documentation

◆ ConstDynamicMatrixBlock

template<typename t_MatrixType , int t_block_cols_num>
typedef EIGENTOOLS_PARENT_CLASS_SHORTHAND::ConstDynamicMatrixBlock etools::BlockMatrixSizeSpecificBase< t_MatrixType, MatrixBlockSizeType::DYNAMIC, t_block_cols_num >::ConstDynamicMatrixBlock

Definition at line 726 of file blockmatrix_base.h.

◆ DecayedRawMatrix

template<typename t_MatrixType , int t_block_cols_num>
typedef EIGENTOOLS_PARENT_CLASS_SHORTHAND::DecayedRawMatrix etools::BlockMatrixSizeSpecificBase< t_MatrixType, MatrixBlockSizeType::DYNAMIC, t_block_cols_num >::DecayedRawMatrix

Definition at line 726 of file blockmatrix_base.h.

◆ DynamicMatrixBlock

template<typename t_MatrixType , int t_block_cols_num>
typedef EIGENTOOLS_PARENT_CLASS_SHORTHAND::DynamicMatrixBlock etools::BlockMatrixSizeSpecificBase< t_MatrixType, MatrixBlockSizeType::DYNAMIC, t_block_cols_num >::DynamicMatrixBlock

Definition at line 726 of file blockmatrix_base.h.

◆ Scalar

typedef DecayedRawMatrix::Scalar etools::BlockMatrixAccessBase< t_MatrixType, t_block_rows_num, t_block_cols_num >::Scalar
inherited

Scalar type of raw matrix (from Eigen)

Definition at line 114 of file blockmatrix_base.h.

Constructor & Destructor Documentation

◆ ~BlockMatrixSizeSpecificBase()

template<typename t_MatrixType , int t_block_cols_num>
etools::BlockMatrixSizeSpecificBase< t_MatrixType, MatrixBlockSizeType::DYNAMIC, t_block_cols_num >::~BlockMatrixSizeSpecificBase ( )
inlineprotected

Definition at line 726 of file blockmatrix_base.h.

Member Function Documentation

◆ column() [1/4]

DynamicMatrixBlock etools::BlockMatrixAccessBase< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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.

◆ operator()() [1/4]

template<typename t_MatrixType , int t_block_cols_num>
ConstDynamicMatrixBlock etools::BlockMatrixSizeSpecificBase< t_MatrixType, MatrixBlockSizeType::DYNAMIC, t_block_cols_num >::operator() ( const std::ptrdiff_t  index) const
inline

Definition at line 726 of file blockmatrix_base.h.

◆ operator()() [2/4]

template<typename t_MatrixType , int t_block_cols_num>
DynamicMatrixBlock etools::BlockMatrixSizeSpecificBase< t_MatrixType, MatrixBlockSizeType::DYNAMIC, t_block_cols_num >::operator() ( const std::ptrdiff_t  index_row,
const std::ptrdiff_t  index_col 
)
inline

Definition at line 726 of file blockmatrix_base.h.

◆ operator()() [3/4]

template<typename t_MatrixType , int t_block_cols_num>
ConstDynamicMatrixBlock etools::BlockMatrixSizeSpecificBase< t_MatrixType, MatrixBlockSizeType::DYNAMIC, t_block_cols_num >::operator() ( const std::ptrdiff_t  index_row,
const std::ptrdiff_t  index_col 
) const
inline

Definition at line 726 of file blockmatrix_base.h.

◆ operator()() [4/4]

template<typename t_MatrixType , int t_block_cols_num>
DynamicMatrixBlock etools::BlockMatrixSizeSpecificBase< t_MatrixType, MatrixBlockSizeType::DYNAMIC, t_block_cols_num >::operator() ( const std::ptrdiff_t  index)
inline

Definition at line 726 of file blockmatrix_base.h.

◆ resize() [1/2]

void etools::BlockMatrixAccessBase< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, t_block_rows_num, t_block_cols_num >::block_rows_num_
protectedinherited

Definition at line 413 of file blockmatrix_base.h.

◆ matrix_

t_MatrixType etools::BlockMatrixAccessBase< t_MatrixType, 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< t_MatrixType, 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< t_MatrixType, 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: