humoto
Classes | Typedefs | Functions
etools Namespace Reference

Detailed Description

This namespace contains various functions operating on Eigen matrices and vectors.

Classes

class  BlockKroneckerProductBase
 Represents block kronecker product "Identity(size) [X] Matrix". More...
 
class  BlockKroneckerProductBase< t_MatrixType, 1, 1, MatrixSparsityType::LEFT_LOWER_TRIANGULAR >
 Represents block kronecker product "Identity(size) [X] Matrix", without computing it explicitly. More...
 
class  BlockKroneckerProductBase< t_MatrixType, 1, 1, t_sparsity_type >
 Represents block kronecker product "Identity(size) [X] Matrix", without computing it explicitly. More...
 
class  BlockKroneckerProductBase< t_MatrixType, t_block_rows_num, t_block_cols_num, MatrixSparsityType::LEFT_LOWER_TRIANGULAR >
 Represents block kronecker product "Identity(size) [X] Matrix", without computing it explicitly. More...
 
class  BlockMatrix
 Block matrix, the raw matrix is stored inside (not a reference). More...
 
class  BlockMatrixAccessBase
 Block matrix basic functions. More...
 
class  BlockMatrixBase
 Base class of a block matrix. More...
 
class  BlockMatrixBase< t_MatrixType, 1, 1, MatrixSparsityType::LEFT_LOWER_TRIANGULAR >
 Base class of a block matrix. More...
 
class  BlockMatrixBase< t_MatrixType, t_block_rows_num, t_block_cols_num, MatrixSparsityType::DIAGONAL >
 Base class of a block matrix. More...
 
class  BlockMatrixBase< t_MatrixType, t_block_rows_num, t_block_cols_num, MatrixSparsityType::LEFT_LOWER_TRIANGULAR >
 Base class of a block matrix. More...
 
class  BlockMatrixInterface
 Provides block interface for arbitrary Matrix without copying it. More...
 
class  BlockMatrixMap
 Blocked access to an Eigen::Map. Quick hack – use with care. More...
 
class  BlockMatrixSizeSpecificBase
 Extra layer for handling of specific sizes of blocks using partial template specialization. More...
 
class  BlockMatrixSizeSpecificBase< t_MatrixType, 1, 1 >
 Extra layer for handling of specific sizes of blocks using partial template specialization. More...
 
class  BlockMatrixSizeSpecificBase< t_MatrixType, MatrixBlockSizeType::DYNAMIC, MatrixBlockSizeType::DYNAMIC >
 Extra layer for handling of specific sizes of blocks using partial template specialization. More...
 
class  BlockMatrixSizeSpecificBase< t_MatrixType, MatrixBlockSizeType::DYNAMIC, t_block_cols_num >
 Extra layer for handling of specific sizes of blocks using partial template specialization. More...
 
class  BlockMatrixSizeSpecificBase< t_MatrixType, t_block_rows_num, MatrixBlockSizeType::DYNAMIC >
 Extra layer for handling of specific sizes of blocks using partial template specialization. More...
 
class  ConstBlockMatrixInterface
 Provides block interface for arbitrary Matrix without copying it. More...
 
class  CrossProductMatrix
 Skew-symmetric cross product matrix. More...
 
class  DiagonalBlockKroneckerProduct
 A shorthand class for a specific sparsity type. More...
 
class  DiagonalBlockMatrix
 A shorthand class for a specific sparsity type. More...
 
class  GenericBlockKroneckerProduct
 A shorthand class for a specific sparsity type. More...
 
class  GenericBlockMatrix
 A shorthand class for a specific sparsity type. More...
 
class  LeftLowerTriangularBlockKroneckerProduct
 A shorthand class for a specific sparsity type. More...
 
class  LeftLowerTriangularBlockMatrix
 A shorthand class for a specific sparsity type. More...
 
class  MatrixBlockSizeType
 Matrix block size type. More...
 
class  MatrixSparsityType
 Sparsity type of a matrix. More...
 
class  SelectionMatrix
 Selection matrix. More...
 
struct  TypeDecayed
 Type modifier (drop reference and 'const') More...
 
struct  TypeWithoutConst
 Type modifier (drop reference 'const') More...
 
struct  TypeWithoutConst< const T >
 Type modifier (drop 'const') More...
 
struct  TypeWithoutReference
 Type modifier (drop reference &) More...
 
struct  TypeWithoutReference< T & >
 Type modifier (drop reference &) More...
 

Typedefs

typedef Eigen::Matrix< etools::DefaultScalar, Eigen::Dynamic, Eigen::Dynamic > DefaultDynamicMatrix
 
typedef double DefaultScalar
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix10
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix10x2
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix10x3
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix10x4
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix10x5
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix10x6
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix10x7
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix10x8
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix10x9
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix1x10
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix1x2
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix1x3
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix1x4
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix1x5
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix1x6
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix1x7
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix1x8
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix1x9
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix2
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix2x10
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix2x3
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix2x4
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix2x5
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix2x6
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix2x7
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix2x8
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix2x9
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix3
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix3x10
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix3x2
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix3x4
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix3x5
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix3x6
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix3x7
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix3x8
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix3x9
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix4
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix4x10
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix4x2
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix4x3
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix4x5
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix4x6
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix4x7
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix4x8
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix4x9
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix5
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix5x10
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix5x2
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix5x3
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix5x4
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix5x6
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix5x7
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix5x8
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix5x9
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix6
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix6x10
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix6x2
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix6x3
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix6x4
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix6x5
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix6x7
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix6x8
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix6x9
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix7
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix7x10
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix7x2
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix7x3
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix7x4
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix7x5
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix7x6
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix7x8
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix7x9
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix8
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix8x10
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix8x2
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix8x3
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix8x4
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix8x5
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix8x6
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix8x7
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix8x9
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix9
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix9x10
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix9x2
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix9x3
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix9x4
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix9x5
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix9x6
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix9x7
 
typedef EIGENTOOLS_CONSTANT_SIZE_MATRIX Matrix9x8
 

Functions

template<class t_DerivedOutput , class t_DerivedInput >
void EIGENTOOLS_VISIBILITY_ATTRIBUTE addATA (Eigen::DenseBase< t_DerivedOutput > &result, const Eigen::DenseBase< t_DerivedInput > &A)
 result += A^T * A More...
 
template<class t_DerivedOutput , class t_DerivedInput >
void EIGENTOOLS_VISIBILITY_ATTRIBUTE addATA (Eigen::DenseBase< t_DerivedOutput > &result, const Eigen::DenseBase< t_DerivedInput > &A, const std::ptrdiff_t offset)
 result.diagonalBlock() += A^T * A More...
 
template<class t_DerivedOutput , class t_DerivedInput1 , class t_DerivedInput2 >
void EIGENTOOLS_VISIBILITY_ATTRIBUTE concatenateMatricesHorizontally (Eigen::PlainObjectBase< t_DerivedOutput > &result, const Eigen::DenseBase< t_DerivedInput1 > &matrix1, const Eigen::DenseBase< t_DerivedInput2 > &matrix2)
 Concatenate matrices horizontally, [A B C ...]. More...
 
template<class t_DerivedOutput , class t_DerivedInput1 , class t_DerivedInput2 , class t_DerivedInput3 >
void EIGENTOOLS_VISIBILITY_ATTRIBUTE concatenateMatricesHorizontally (Eigen::PlainObjectBase< t_DerivedOutput > &result, const Eigen::DenseBase< t_DerivedInput1 > &matrix1, const Eigen::DenseBase< t_DerivedInput2 > &matrix2, const Eigen::DenseBase< t_DerivedInput3 > &matrix3)
 Concatenate matrices horizontally, [A B C ...]. More...
 
template<class t_DerivedOutput , typename t_Scalar , int t_rows, int t_cols, int t_flags>
void EIGENTOOLS_VISIBILITY_ATTRIBUTE concatenateMatricesVertically (Eigen::PlainObjectBase< t_DerivedOutput > &result, const std::vector< Eigen::Matrix< t_Scalar, t_rows, t_cols, t_flags > > &matrices)
 Concatenate matrices vertically, [A;B;C; ...]. More...
 
template<class t_Derived >
void EIGENTOOLS_VISIBILITY_ATTRIBUTE convertLLTtoSymmetric (Eigen::PlainObjectBase< t_Derived > &matrix)
 Converts left lower triangular matrix to a symmetric matrix. More...
 
typedef EIGENTOOLS_CONSTANT_SIZE_VECTOR (2) Vector2
 
typedef EIGENTOOLS_CONSTANT_SIZE_VECTOR (3) Vector3
 
typedef EIGENTOOLS_CONSTANT_SIZE_VECTOR (4) Vector4
 
typedef EIGENTOOLS_CONSTANT_SIZE_VECTOR (5) Vector5
 
typedef EIGENTOOLS_CONSTANT_SIZE_VECTOR (6) Vector6
 
typedef EIGENTOOLS_CONSTANT_SIZE_VECTOR (7) Vector7
 
typedef EIGENTOOLS_CONSTANT_SIZE_VECTOR (8) Vector8
 
typedef EIGENTOOLS_CONSTANT_SIZE_VECTOR (9) Vector9
 
typedef EIGENTOOLS_CONSTANT_SIZE_VECTOR (10) Vector10
 
template<class t_DerivedOutput , class t_DerivedInput >
void EIGENTOOLS_VISIBILITY_ATTRIBUTE getATA (Eigen::PlainObjectBase< t_DerivedOutput > &result, const Eigen::DenseBase< t_DerivedInput > &A)
 result = A^T * A More...
 
template<class t_DerivedOutput , class t_DerivedInput >
void EIGENTOOLS_VISIBILITY_ATTRIBUTE getATA (Eigen::PlainObjectBase< t_DerivedOutput > &result, const Eigen::DenseBase< t_DerivedInput > &A, const std::ptrdiff_t offset, const std::ptrdiff_t num_el)
 result.diagonalBlock() = A^T * A More...
 
template<typename t_Scalar , int t_rows, int t_cols, int t_flags>
Eigen::Matrix< t_Scalar, Eigen::Dynamic, Eigen::Dynamic > EIGENTOOLS_VISIBILITY_ATTRIBUTE makeBlockDiagonal (const std::vector< Eigen::Matrix< t_Scalar, t_rows, t_cols, t_flags > > &input_matrices)
 Create a diagonal matrix consisting of the input matrices. More...
 
template<class t_DerivedInput >
Eigen::Matrix< typename Eigen::DenseBase< t_DerivedInput >::Scalar, Eigen::Dynamic, Eigen::Dynamic > EIGENTOOLS_VISIBILITY_ATTRIBUTE makeBlockDiagonal (const Eigen::DenseBase< t_DerivedInput > &input_matrix, const std::ptrdiff_t num_copies)
 Create a diagonal matrix replicating the input matrix. More...
 
template<class t_Derived >
Eigen::Matrix< typename Eigen::DenseBase< t_Derived >::Scalar, Eigen::Dynamic, Eigen::Dynamic > EIGENTOOLS_VISIBILITY_ATTRIBUTE multiplyBlockKroneckerIdentity (const Eigen::DenseBase< t_Derived > &input, const std::size_t input_block_rows, const std::size_t input_block_cols, const std::size_t identity_size)
 Custom Kronecker product: blocks of the input matrix are treated as single elements. More...
 
template<class t_Derived >
Eigen::Matrix< etools::DefaultScalar, Eigen::DenseBase< t_Derived >::RowsAtCompileTime, 3 > EIGENTOOLS_VISIBILITY_ATTRIBUTE operator* (const Eigen::MatrixBase< t_Derived > &left, const CrossProductMatrix &right)
 Multiplication operator. More...
 
template<class t_Derived >
Eigen::Matrix< etools::DefaultScalar, 3, Eigen::DenseBase< t_Derived >::ColsAtCompileTime > EIGENTOOLS_VISIBILITY_ATTRIBUTE operator* (const CrossProductMatrix &left, const Eigen::MatrixBase< t_Derived > &right)
 Multiplication operator. More...
 
template<class t_Derived >
Eigen::Map< const Eigen::Matrix< typename Eigen::PlainObjectBase< t_Derived >::Scalar, Eigen::Dynamic, Eigen::Dynamic >, Eigen::Unaligned, Eigen::Stride< Eigen::Dynamic, Eigen::Dynamic > > EIGENTOOLS_VISIBILITY_ATTRIBUTE operator* (const SelectionMatrix &selector, const Eigen::PlainObjectBase< t_Derived > &matrix)
 Multiply selection matrix by a generic Eigen matrix (select rows) More...
 
template<class t_MatrixType , int t_block_rows_num, int t_block_cols_num, MatrixSparsityType::Type t_sparsity_type, typename t_Scalar , int t_vector_size, int t_vector_options>
EIGENTOOLS_VISIBILITY_ATTRIBUTE operator* (const BlockKroneckerProductBase< t_MatrixType, t_block_rows_num, t_block_cols_num, t_sparsity_type > &bm, const Eigen::Matrix< t_Scalar, t_vector_size, 1, t_vector_options > &vector)
 BlockKroneckerProduct * Vector. More...
 
template<typename t_left_MatrixType , int t_left_block_rows_num, int t_left_block_cols_num, MatrixSparsityType::Type t_left_sparsity_type, typename t_right_MatrixType , int t_right_block_rows_num, int t_right_block_cols_num, MatrixSparsityType::Type t_right_sparsity_type>
EIGENTOOLS_VISIBILITY_ATTRIBUTE operator* (const BlockKroneckerProductBase< t_left_MatrixType, t_left_block_rows_num, t_left_block_cols_num, t_left_sparsity_type > &left, const BlockMatrixBase< t_right_MatrixType, t_right_block_rows_num, t_right_block_cols_num, t_right_sparsity_type > &right)
 BlockKroneckerProduct * BlockMatrix. More...
 
template<typename t_left_MatrixType , int t_left_block_rows_num, int t_left_block_cols_num, MatrixSparsityType::Type t_left_sparsity_type, typename t_right_MatrixType , int t_right_block_rows_num, int t_right_block_cols_num, MatrixSparsityType::Type t_right_sparsity_type>
EIGENTOOLS_VISIBILITY_ATTRIBUTE operator* (const BlockMatrixBase< t_left_MatrixType, t_left_block_rows_num, t_left_block_cols_num, t_left_sparsity_type > &left, const BlockKroneckerProductBase< t_right_MatrixType, t_right_block_rows_num, t_right_block_cols_num, t_right_sparsity_type > &right)
 BlockKroneckerProduct * BlockMatrix. More...
 
template<typename t_MatrixType , int t_block_rows_num, int t_block_cols_num, MatrixSparsityType::Type t_sparsity_type, class t_Derived >
EIGENTOOLS_VISIBILITY_ATTRIBUTE operator* (const BlockMatrixBase< t_MatrixType, t_block_rows_num, t_block_cols_num, t_sparsity_type > &bm, const Eigen::MatrixBase< t_Derived > &matrix)
 'BlockMatrixBase * Eigen::Matrix' operator More...
 
template<class t_Derived , typename t_MatrixType , int t_block_rows_num, int t_block_cols_num, MatrixSparsityType::Type t_sparsity_type, int t_rows_in, int t_cols_in>
EIGENTOOLS_VISIBILITY_ATTRIBUTE operator* (const Eigen::MatrixBase< t_Derived > &eigen_matrix, const BlockMatrixBase< t_MatrixType, t_block_rows_num, t_block_cols_num, t_sparsity_type > &bm)
 Computes 'Eigen::Matrix * BlockMatrixBase'. More...
 
template<typename t_left_MatrixType , int t_left_block_rows_num, int t_left_block_cols_num, MatrixSparsityType::Type t_left_sparsity_type, typename t_right_MatrixType , int t_right_block_cols_num>
EIGENTOOLS_VISIBILITY_ATTRIBUTE operator* (const BlockMatrixBase< t_left_MatrixType, t_left_block_rows_num, t_left_block_cols_num, t_left_sparsity_type > &left, const BlockMatrixBase< t_right_MatrixType, t_left_block_cols_num, t_right_block_cols_num, MatrixSparsityType::DIAGONAL > &right)
 BlockMatrix * BlockMatrix (left * right) More...
 
template<typename t_left_MatrixType , int t_left_block_rows_num, int t_left_block_cols_num, MatrixSparsityType::Type t_left_sparsity_type, typename t_right_MatrixType , int t_right_block_cols_num, MatrixSparsityType::Type t_right_sparsity_type>
EIGENTOOLS_VISIBILITY_ATTRIBUTE operator* (const BlockMatrixBase< t_left_MatrixType, t_left_block_rows_num, t_left_block_cols_num, t_left_sparsity_type > &left, const BlockMatrixBase< t_right_MatrixType, t_left_block_cols_num, t_right_block_cols_num, t_right_sparsity_type > &right)
 BlockMatrix * BlockMatrix (left * right) More...
 
template<class t_Derived >
void EIGENTOOLS_VISIBILITY_ATTRIBUTE removeColumn (Eigen::PlainObjectBase< t_Derived > &matrix, const std::ptrdiff_t column_to_remove)
 Remove a column with the specified index. More...
 
template<class t_Derived >
void EIGENTOOLS_VISIBILITY_ATTRIBUTE removeRow (Eigen::PlainObjectBase< t_Derived > &matrix, const std::ptrdiff_t row_to_remove)
 Remove a row with the specified index. More...
 
template<class t_Derived >
Eigen::Map< const Eigen::Matrix< typename Eigen::PlainObjectBase< t_Derived >::Scalar, Eigen::Dynamic, Eigen::Dynamic >, Eigen::Unaligned, Eigen::Stride< Eigen::Dynamic, Eigen::Dynamic > > EIGENTOOLS_VISIBILITY_ATTRIBUTE selectRows (const Eigen::PlainObjectBase< t_Derived > &matrix, const std::size_t row_step, const std::size_t first_row=0)
 Select rows from a matrix, in Matlab notation the result is M(first:step:end, :). More...
 
template<class t_DerivedMatrix , class t_DerivedRotation , class t_DerivedTranslation >
Eigen::Matrix< typename Eigen::MatrixBase< t_DerivedMatrix >::Scalar, Eigen::MatrixBase< t_DerivedMatrix >::RowsAtCompileTime, Eigen::MatrixBase< t_DerivedMatrix >::ColsAtCompileTime > EIGENTOOLS_VISIBILITY_ATTRIBUTE transform (const Eigen::MatrixBase< t_DerivedMatrix > &matrix, const Eigen::MatrixBase< t_DerivedRotation > &rotation, const Eigen::MatrixBase< t_DerivedTranslation > &translation)
 Transform the input positions given as a concatenated set of 2d/3d vectors, given M = [v1, v2, ...], returns M_new = [R*v1 + t, R*v2 + t, ...]. More...
 
template<typename t_Derived >
void unsetMatrix (Eigen::DenseBase< t_Derived > &matrix)
 Unset matrix (initialize to NaN) More...
 

Typedef Documentation

◆ DefaultDynamicMatrix

typedef Eigen::Matrix<etools::DefaultScalar, Eigen::Dynamic, Eigen::Dynamic> etools::DefaultDynamicMatrix

Definition at line 42 of file eigentools.h.

◆ DefaultScalar

Definition at line 38 of file eigentools.h.

◆ Matrix10

Definition at line 84 of file eigentools.h.

◆ Matrix10x2

Definition at line 159 of file eigentools.h.

◆ Matrix10x3

Definition at line 160 of file eigentools.h.

◆ Matrix10x4

Definition at line 161 of file eigentools.h.

◆ Matrix10x5

Definition at line 162 of file eigentools.h.

◆ Matrix10x6

Definition at line 163 of file eigentools.h.

◆ Matrix10x7

Definition at line 164 of file eigentools.h.

◆ Matrix10x8

Definition at line 165 of file eigentools.h.

◆ Matrix10x9

Definition at line 166 of file eigentools.h.

◆ Matrix1x10

Definition at line 94 of file eigentools.h.

◆ Matrix1x2

Definition at line 86 of file eigentools.h.

◆ Matrix1x3

Definition at line 87 of file eigentools.h.

◆ Matrix1x4

Definition at line 88 of file eigentools.h.

◆ Matrix1x5

Definition at line 89 of file eigentools.h.

◆ Matrix1x6

Definition at line 90 of file eigentools.h.

◆ Matrix1x7

Definition at line 91 of file eigentools.h.

◆ Matrix1x8

Definition at line 92 of file eigentools.h.

◆ Matrix1x9

Definition at line 93 of file eigentools.h.

◆ Matrix2

Definition at line 76 of file eigentools.h.

◆ Matrix2x10

Definition at line 102 of file eigentools.h.

◆ Matrix2x3

Definition at line 95 of file eigentools.h.

◆ Matrix2x4

Definition at line 96 of file eigentools.h.

◆ Matrix2x5

Definition at line 97 of file eigentools.h.

◆ Matrix2x6

Definition at line 98 of file eigentools.h.

◆ Matrix2x7

Definition at line 99 of file eigentools.h.

◆ Matrix2x8

Definition at line 100 of file eigentools.h.

◆ Matrix2x9

Definition at line 101 of file eigentools.h.

◆ Matrix3

Definition at line 77 of file eigentools.h.

◆ Matrix3x10

Definition at line 110 of file eigentools.h.

◆ Matrix3x2

Definition at line 103 of file eigentools.h.

◆ Matrix3x4

Definition at line 104 of file eigentools.h.

◆ Matrix3x5

Definition at line 105 of file eigentools.h.

◆ Matrix3x6

Definition at line 106 of file eigentools.h.

◆ Matrix3x7

Definition at line 107 of file eigentools.h.

◆ Matrix3x8

Definition at line 108 of file eigentools.h.

◆ Matrix3x9

Definition at line 109 of file eigentools.h.

◆ Matrix4

Definition at line 78 of file eigentools.h.

◆ Matrix4x10

Definition at line 118 of file eigentools.h.

◆ Matrix4x2

Definition at line 111 of file eigentools.h.

◆ Matrix4x3

Definition at line 112 of file eigentools.h.

◆ Matrix4x5

Definition at line 113 of file eigentools.h.

◆ Matrix4x6

Definition at line 114 of file eigentools.h.

◆ Matrix4x7

Definition at line 115 of file eigentools.h.

◆ Matrix4x8

Definition at line 116 of file eigentools.h.

◆ Matrix4x9

Definition at line 117 of file eigentools.h.

◆ Matrix5

Definition at line 79 of file eigentools.h.

◆ Matrix5x10

Definition at line 126 of file eigentools.h.

◆ Matrix5x2

Definition at line 119 of file eigentools.h.

◆ Matrix5x3

Definition at line 120 of file eigentools.h.

◆ Matrix5x4

Definition at line 121 of file eigentools.h.

◆ Matrix5x6

Definition at line 122 of file eigentools.h.

◆ Matrix5x7

Definition at line 123 of file eigentools.h.

◆ Matrix5x8

Definition at line 124 of file eigentools.h.

◆ Matrix5x9

Definition at line 125 of file eigentools.h.

◆ Matrix6

Definition at line 80 of file eigentools.h.

◆ Matrix6x10

Definition at line 134 of file eigentools.h.

◆ Matrix6x2

Definition at line 127 of file eigentools.h.

◆ Matrix6x3

Definition at line 128 of file eigentools.h.

◆ Matrix6x4

Definition at line 129 of file eigentools.h.

◆ Matrix6x5

Definition at line 130 of file eigentools.h.

◆ Matrix6x7

Definition at line 131 of file eigentools.h.

◆ Matrix6x8

Definition at line 132 of file eigentools.h.

◆ Matrix6x9

Definition at line 133 of file eigentools.h.

◆ Matrix7

Definition at line 81 of file eigentools.h.

◆ Matrix7x10

Definition at line 142 of file eigentools.h.

◆ Matrix7x2

Definition at line 135 of file eigentools.h.

◆ Matrix7x3

Definition at line 136 of file eigentools.h.

◆ Matrix7x4

Definition at line 137 of file eigentools.h.

◆ Matrix7x5

Definition at line 138 of file eigentools.h.

◆ Matrix7x6

Definition at line 139 of file eigentools.h.

◆ Matrix7x8

Definition at line 140 of file eigentools.h.

◆ Matrix7x9

Definition at line 141 of file eigentools.h.

◆ Matrix8

Definition at line 82 of file eigentools.h.

◆ Matrix8x10

Definition at line 150 of file eigentools.h.

◆ Matrix8x2

Definition at line 143 of file eigentools.h.

◆ Matrix8x3

Definition at line 144 of file eigentools.h.

◆ Matrix8x4

Definition at line 145 of file eigentools.h.

◆ Matrix8x5

Definition at line 146 of file eigentools.h.

◆ Matrix8x6

Definition at line 147 of file eigentools.h.

◆ Matrix8x7

Definition at line 148 of file eigentools.h.

◆ Matrix8x9

Definition at line 149 of file eigentools.h.

◆ Matrix9

Definition at line 83 of file eigentools.h.

◆ Matrix9x10

Definition at line 158 of file eigentools.h.

◆ Matrix9x2

Definition at line 151 of file eigentools.h.

◆ Matrix9x3

Definition at line 152 of file eigentools.h.

◆ Matrix9x4

Definition at line 153 of file eigentools.h.

◆ Matrix9x5

Definition at line 154 of file eigentools.h.

◆ Matrix9x6

Definition at line 155 of file eigentools.h.

◆ Matrix9x7

Definition at line 156 of file eigentools.h.

◆ Matrix9x8

Definition at line 157 of file eigentools.h.

Function Documentation

◆ addATA() [1/2]

template<class t_DerivedOutput , class t_DerivedInput >
void EIGENTOOLS_VISIBILITY_ATTRIBUTE etools::addATA ( Eigen::DenseBase< t_DerivedOutput > &  result,
const Eigen::DenseBase< t_DerivedInput > &  A 
)

result += A^T * A

Template Parameters
t_DerivedOutputEigen parameter
t_DerivedInputEigen parameter
Parameters
[in,out]result
[in]A
Attention
Only the left lower triangular part of the result is initialized.

Definition at line 262 of file eigentools.h.

◆ addATA() [2/2]

template<class t_DerivedOutput , class t_DerivedInput >
void EIGENTOOLS_VISIBILITY_ATTRIBUTE etools::addATA ( Eigen::DenseBase< t_DerivedOutput > &  result,
const Eigen::DenseBase< t_DerivedInput > &  A,
const std::ptrdiff_t  offset 
)

result.diagonalBlock() += A^T * A

Template Parameters
t_DerivedOutputEigen parameter
t_DerivedInputEigen parameter
Parameters
[in,out]result
[in]A
[in]offsetoffset of A in result
Attention
Only the left lower triangular part of the result is initialized.

Definition at line 287 of file eigentools.h.

◆ concatenateMatricesHorizontally() [1/2]

template<class t_DerivedOutput , class t_DerivedInput1 , class t_DerivedInput2 >
void EIGENTOOLS_VISIBILITY_ATTRIBUTE etools::concatenateMatricesHorizontally ( Eigen::PlainObjectBase< t_DerivedOutput > &  result,
const Eigen::DenseBase< t_DerivedInput1 > &  matrix1,
const Eigen::DenseBase< t_DerivedInput2 > &  matrix2 
)

Concatenate matrices horizontally, [A B C ...].

Template Parameters
t_DerivedOutputEigen parameter
t_DerivedInput1Eigen parameter
t_DerivedInput2Eigen parameter
Parameters
[out]resultresult of concatenation
[in]matrix1
[in]matrix2

Definition at line 536 of file eigentools.h.

◆ concatenateMatricesHorizontally() [2/2]

template<class t_DerivedOutput , class t_DerivedInput1 , class t_DerivedInput2 , class t_DerivedInput3 >
void EIGENTOOLS_VISIBILITY_ATTRIBUTE etools::concatenateMatricesHorizontally ( Eigen::PlainObjectBase< t_DerivedOutput > &  result,
const Eigen::DenseBase< t_DerivedInput1 > &  matrix1,
const Eigen::DenseBase< t_DerivedInput2 > &  matrix2,
const Eigen::DenseBase< t_DerivedInput3 > &  matrix3 
)

Concatenate matrices horizontally, [A B C ...].

Template Parameters
t_DerivedOutputEigen parameter
t_DerivedInput1Eigen parameter
t_DerivedInput2Eigen parameter
t_DerivedInput3Eigen parameter
Parameters
[out]resultresult of concatenation
[in]matrix1
[in]matrix2
[in]matrix3

Definition at line 584 of file eigentools.h.

◆ concatenateMatricesVertically()

template<class t_DerivedOutput , typename t_Scalar , int t_rows, int t_cols, int t_flags>
void EIGENTOOLS_VISIBILITY_ATTRIBUTE etools::concatenateMatricesVertically ( Eigen::PlainObjectBase< t_DerivedOutput > &  result,
const std::vector< Eigen::Matrix< t_Scalar, t_rows, t_cols, t_flags > > &  matrices 
)

Concatenate matrices vertically, [A;B;C; ...].

Template Parameters
t_DerivedOutputEigen parameter
t_ScalarEigen parameter (input)
t_rowsEigen parameter (input)
t_colsEigen parameter (input)
t_flagsEigen parameter (input)
Parameters
[out]resultresult of concatenation
[in]matricesmatrices

Definition at line 472 of file eigentools.h.

◆ convertLLTtoSymmetric()

template<class t_Derived >
void EIGENTOOLS_VISIBILITY_ATTRIBUTE etools::convertLLTtoSymmetric ( Eigen::PlainObjectBase< t_Derived > &  matrix)

Converts left lower triangular matrix to a symmetric matrix.

Template Parameters
t_DerivedEigen parameter
Parameters
[in,out]matrix

Definition at line 312 of file eigentools.h.

◆ EIGENTOOLS_CONSTANT_SIZE_VECTOR() [1/9]

typedef etools::EIGENTOOLS_CONSTANT_SIZE_VECTOR ( )

◆ EIGENTOOLS_CONSTANT_SIZE_VECTOR() [2/9]

typedef etools::EIGENTOOLS_CONSTANT_SIZE_VECTOR ( )

◆ EIGENTOOLS_CONSTANT_SIZE_VECTOR() [3/9]

typedef etools::EIGENTOOLS_CONSTANT_SIZE_VECTOR ( )

◆ EIGENTOOLS_CONSTANT_SIZE_VECTOR() [4/9]

typedef etools::EIGENTOOLS_CONSTANT_SIZE_VECTOR ( )

◆ EIGENTOOLS_CONSTANT_SIZE_VECTOR() [5/9]

typedef etools::EIGENTOOLS_CONSTANT_SIZE_VECTOR ( )

◆ EIGENTOOLS_CONSTANT_SIZE_VECTOR() [6/9]

typedef etools::EIGENTOOLS_CONSTANT_SIZE_VECTOR ( )

◆ EIGENTOOLS_CONSTANT_SIZE_VECTOR() [7/9]

typedef etools::EIGENTOOLS_CONSTANT_SIZE_VECTOR ( )

◆ EIGENTOOLS_CONSTANT_SIZE_VECTOR() [8/9]

typedef etools::EIGENTOOLS_CONSTANT_SIZE_VECTOR ( )

◆ EIGENTOOLS_CONSTANT_SIZE_VECTOR() [9/9]

typedef etools::EIGENTOOLS_CONSTANT_SIZE_VECTOR ( 10  )

◆ getATA() [1/2]

template<class t_DerivedOutput , class t_DerivedInput >
void EIGENTOOLS_VISIBILITY_ATTRIBUTE etools::getATA ( Eigen::PlainObjectBase< t_DerivedOutput > &  result,
const Eigen::DenseBase< t_DerivedInput > &  A 
)

result = A^T * A

Template Parameters
t_DerivedOutputEigen parameter
t_DerivedInputEigen parameter
Parameters
[out]result
[in]A
Attention
Only the left lower triangular part of the result is initialized.

Definition at line 204 of file eigentools.h.

◆ getATA() [2/2]

template<class t_DerivedOutput , class t_DerivedInput >
void EIGENTOOLS_VISIBILITY_ATTRIBUTE etools::getATA ( Eigen::PlainObjectBase< t_DerivedOutput > &  result,
const Eigen::DenseBase< t_DerivedInput > &  A,
const std::ptrdiff_t  offset,
const std::ptrdiff_t  num_el 
)

result.diagonalBlock() = A^T * A

Template Parameters
t_DerivedOutputEigen parameter
t_DerivedInputEigen parameter
Parameters
[out]result
[in]A
[in]offsetoffset of A in result
[in]num_elsize of result
Attention
Only the left lower triangular part of the result is initialized.

Definition at line 231 of file eigentools.h.

◆ makeBlockDiagonal() [1/2]

template<typename t_Scalar , int t_rows, int t_cols, int t_flags>
Eigen::Matrix< t_Scalar , Eigen::Dynamic, Eigen::Dynamic> EIGENTOOLS_VISIBILITY_ATTRIBUTE etools::makeBlockDiagonal ( const std::vector< Eigen::Matrix< t_Scalar, t_rows, t_cols, t_flags > > &  input_matrices)

Create a diagonal matrix consisting of the input matrices.

Template Parameters
t_ScalarEigen parameter (input)
t_rowsEigen parameter (input)
t_colsEigen parameter (input)
t_flagsEigen parameter (input)
Parameters
[in]input_matricesvector of smaller matrices to be placed into a large block diagonal matrix
Returns
matrix with each input element as a block in the diagonal

Definition at line 368 of file eigentools.h.

◆ makeBlockDiagonal() [2/2]

template<class t_DerivedInput >
Eigen::Matrix< typename Eigen::DenseBase<t_DerivedInput>::Scalar , Eigen::Dynamic, Eigen::Dynamic> EIGENTOOLS_VISIBILITY_ATTRIBUTE etools::makeBlockDiagonal ( const Eigen::DenseBase< t_DerivedInput > &  input_matrix,
const std::ptrdiff_t  num_copies 
)

Create a diagonal matrix replicating the input matrix.

Template Parameters
t_DerivedInputEigen parameter (input)
Parameters
[in]input_matrixmatrix to be replicated into block diagonal
[in]num_copiesdetermines the output size
Returns
matrix with each input element as a block in the diagonal

Definition at line 424 of file eigentools.h.

◆ multiplyBlockKroneckerIdentity()

template<class t_Derived >
Eigen::Matrix< typename Eigen::DenseBase<t_Derived>::Scalar , Eigen::Dynamic, Eigen::Dynamic> EIGENTOOLS_VISIBILITY_ATTRIBUTE etools::multiplyBlockKroneckerIdentity ( const Eigen::DenseBase< t_Derived > &  input,
const std::size_t  input_block_rows,
const std::size_t  input_block_cols,
const std::size_t  identity_size 
)

Custom Kronecker product: blocks of the input matrix are treated as single elements.

Template Parameters
t_DerivedEigen parameter
Parameters
[in]inputinput matrix
[in]input_block_rowsrows in a block
[in]input_block_colscols in a block
[in]identity_sizesize of the identity matrix used in the product
Returns
result of the product

Definition at line 703 of file eigentools.h.

◆ operator*() [1/3]

template<class t_Derived >
Eigen::Matrix< etools::DefaultScalar, Eigen::DenseBase<t_Derived>::RowsAtCompileTime, 3> EIGENTOOLS_VISIBILITY_ATTRIBUTE etools::operator* ( const Eigen::MatrixBase< t_Derived > &  left,
const CrossProductMatrix right 
)

Multiplication operator.

Template Parameters
t_DerivedEigen parameter
Parameters
[in]left
[in]right
Returns
result of multiplication

Definition at line 114 of file cross_product.h.

◆ operator*() [2/3]

template<class t_Derived >
Eigen::Matrix< etools::DefaultScalar, 3, Eigen::DenseBase<t_Derived>::ColsAtCompileTime> EIGENTOOLS_VISIBILITY_ATTRIBUTE etools::operator* ( const CrossProductMatrix left,
const Eigen::MatrixBase< t_Derived > &  right 
)

Multiplication operator.

Template Parameters
t_DerivedEigen parameter
Parameters
[in]left
[in]right
Returns
result of multiplication

Definition at line 141 of file cross_product.h.

◆ operator*() [3/3]

template<class t_Derived >
Eigen::Map< const Eigen::Matrix< typename Eigen::PlainObjectBase<t_Derived>::Scalar , Eigen::Dynamic, Eigen::Dynamic>, Eigen::Unaligned, Eigen::Stride<Eigen::Dynamic, Eigen::Dynamic> > EIGENTOOLS_VISIBILITY_ATTRIBUTE etools::operator* ( const SelectionMatrix selector,
const Eigen::PlainObjectBase< t_Derived > &  matrix 
)
inline

Multiply selection matrix by a generic Eigen matrix (select rows)

Template Parameters
t_DerivedEigen parameter
Parameters
[in]selector
[in]matrix
Returns
selected rows

Definition at line 823 of file eigentools.h.

◆ removeColumn()

template<class t_Derived >
void EIGENTOOLS_VISIBILITY_ATTRIBUTE etools::removeColumn ( Eigen::PlainObjectBase< t_Derived > &  matrix,
const std::ptrdiff_t  column_to_remove 
)

Remove a column with the specified index.

Template Parameters
t_DerivedEigen parameter
Parameters
[in,out]matrixmatrix
[in]column_to_removeindex of a column

Based on http://stackoverflow.com/questions/13290395/how-to-remove-a-certain-row-or-column-while-using-eigen-library-c

Definition at line 669 of file eigentools.h.

◆ removeRow()

template<class t_Derived >
void EIGENTOOLS_VISIBILITY_ATTRIBUTE etools::removeRow ( Eigen::PlainObjectBase< t_Derived > &  matrix,
const std::ptrdiff_t  row_to_remove 
)

Remove a row with the specified index.

Template Parameters
t_DerivedEigen parameter
Parameters
[in,out]matrixmatrix
[in]row_to_removeindex of a row

Based on http://stackoverflow.com/questions/13290395/how-to-remove-a-certain-row-or-column-while-using-eigen-library-c

Definition at line 637 of file eigentools.h.

◆ selectRows()

template<class t_Derived >
Eigen::Map< const Eigen::Matrix< typename Eigen::PlainObjectBase<t_Derived>::Scalar , Eigen::Dynamic, Eigen::Dynamic>, Eigen::Unaligned, Eigen::Stride<Eigen::Dynamic, Eigen::Dynamic> > EIGENTOOLS_VISIBILITY_ATTRIBUTE etools::selectRows ( const Eigen::PlainObjectBase< t_Derived > &  matrix,
const std::size_t  row_step,
const std::size_t  first_row = 0 
)
inline

Select rows from a matrix, in Matlab notation the result is M(first:step:end, :).

Template Parameters
t_DerivedEigen parameter
Parameters
[in]matrixinput matrix
[in]row_stepeach 'row_step' is selected from the input matrix
[in]first_rowstarting from 'first_row'
Returns
Matrix consisting of selected rows.

Definition at line 763 of file eigentools.h.

◆ transform()

template<class t_DerivedMatrix , class t_DerivedRotation , class t_DerivedTranslation >
Eigen::Matrix< typename Eigen::MatrixBase<t_DerivedMatrix>::Scalar, Eigen::MatrixBase<t_DerivedMatrix>::RowsAtCompileTime, Eigen::MatrixBase<t_DerivedMatrix>::ColsAtCompileTime> EIGENTOOLS_VISIBILITY_ATTRIBUTE etools::transform ( const Eigen::MatrixBase< t_DerivedMatrix > &  matrix,
const Eigen::MatrixBase< t_DerivedRotation > &  rotation,
const Eigen::MatrixBase< t_DerivedTranslation > &  translation 
)
inline

Transform the input positions given as a concatenated set of 2d/3d vectors, given M = [v1, v2, ...], returns M_new = [R*v1 + t, R*v2 + t, ...].

Template Parameters
t_DerivedMatrixEigen parameter
t_DerivedRotationEigen parameter
t_DerivedTranslationEigen parameter
Parameters
[in]matrixmatrix containing vectors (M)
[in]rotationrotation matrix (R)
[in]translationtranslation vector (t)
Returns
matrix of transformed vectors

Definition at line 341 of file eigentools.h.

◆ unsetMatrix()

template<typename t_Derived >
void etools::unsetMatrix ( Eigen::DenseBase< t_Derived > &  matrix)

Unset matrix (initialize to NaN)

Template Parameters
t_Derivedmatrix data type
Parameters
[in,out]matrix

Definition at line 178 of file eigentools.h.