21 #define EIGENTOOLS_CODE_GENERATOR(ClassName, MatrixType) \ 22 template< int t_block_rows_num, \ 23 int t_block_cols_num, \ 24 MatrixSparsityType::Type t_sparsity_type> \ 25 class EIGENTOOLS_VISIBILITY_ATTRIBUTE ClassName : \ 26 public BlockMatrixBase<MatrixType, t_block_rows_num, t_block_cols_num, t_sparsity_type> \ 29 ClassName( MatrixType matrix,\ 30 const std::ptrdiff_t block_rows_num = MatrixBlockSizeType::UNDEFINED,\ 31 const std::ptrdiff_t block_cols_num = MatrixBlockSizeType::UNDEFINED)\ 32 : BlockMatrixBase< MatrixType, \ 35 t_sparsity_type>(matrix, block_rows_num, block_cols_num) {} \ 50 #undef EIGENTOOLS_CODE_GENERATOR 58 #define EIGENTOOLS_CODE_GENERATOR(class_name, sparsity_type) \ 59 template< int t_block_rows_num,\ 60 int t_block_cols_num>\ 61 class EIGENTOOLS_VISIBILITY_ATTRIBUTE class_name \ 62 : public BlockKroneckerProductBase< const DefaultDynamicMatrix &, \ 68 class_name( const DefaultDynamicMatrix & matrix, \ 69 const std::ptrdiff_t identity_size = 1, \ 70 const std::ptrdiff_t block_rows_num = MatrixBlockSizeType::UNDEFINED, \ 71 const std::ptrdiff_t block_cols_num = MatrixBlockSizeType::UNDEFINED) \ 72 : BlockKroneckerProductBase<const DefaultDynamicMatrix &, \ 75 sparsity_type>( matrix, \ 91 #undef EIGENTOOLS_CODE_GENERATOR 99 #define EIGENTOOLS_PARENT_CLASS_SHORTHAND BlockMatrixBase< const Eigen::Map< const EIGENTOOLS_DYNAMIC_MATRIX(t_Scalar),\ 102 t_block_rows_num, t_block_cols_num, t_sparsity_type> 110 template<
typename t_Scalar,
113 int t_block_rows_num,
114 int t_block_cols_num,
119 using EIGENTOOLS_PARENT_CLASS_SHORTHAND::matrix_;
120 using EIGENTOOLS_PARENT_CLASS_SHORTHAND::block_rows_num_;
121 using EIGENTOOLS_PARENT_CLASS_SHORTHAND::block_cols_num_;
153 t_sparsity_type> ( matrix_,
159 #undef EIGENTOOLS_PARENT_CLASS_SHORTHAND 167 #define EIGENTOOLS_PARENT_CLASS_SHORTHAND BlockMatrixBase<DefaultDynamicMatrix, t_block_rows_num, t_block_cols_num, t_sparsity_type> 175 template<
int t_block_rows_num,
176 int t_block_cols_num,
181 using EIGENTOOLS_PARENT_CLASS_SHORTHAND::matrix_;
182 using EIGENTOOLS_PARENT_CLASS_SHORTHAND::block_rows_num_;
183 using EIGENTOOLS_PARENT_CLASS_SHORTHAND::block_cols_num_;
194 Eigen::Stride<Eigen::Dynamic, Eigen::Dynamic>,
219 const DecayedRawMatrix &,
226 const DecayedRawMatrix &,
229 t_sparsity_type> ( matrix_,
235 #undef EIGENTOOLS_PARENT_CLASS_SHORTHAND 242 #define EIGENTOOLS_CODE_GENERATOR(class_name, sparsity_type) \ 243 template< int t_block_rows_num,\ 244 int t_block_cols_num>\ 245 class EIGENTOOLS_VISIBILITY_ATTRIBUTE class_name : public BlockMatrix<t_block_rows_num, t_block_cols_num, sparsity_type> \ 248 class_name( const std::ptrdiff_t block_rows_num = MatrixBlockSizeType::UNDEFINED, \ 249 const std::ptrdiff_t block_cols_num = MatrixBlockSizeType::UNDEFINED) \ 250 : BlockMatrix<t_block_rows_num, t_block_cols_num, sparsity_type>(block_rows_num, block_cols_num) {};\ 251 class_name( const DefaultDynamicMatrix & matrix, \ 252 const std::ptrdiff_t block_rows_num = MatrixBlockSizeType::UNDEFINED, \ 253 const std::ptrdiff_t block_cols_num = MatrixBlockSizeType::UNDEFINED) \ 254 : BlockMatrix<t_block_rows_num, t_block_cols_num, sparsity_type>(matrix, block_rows_num, block_cols_num) {};\ 255 class_name( DefaultDynamicMatrix & matrix, \ 256 const std::ptrdiff_t block_rows_num = MatrixBlockSizeType::UNDEFINED, \ 257 const std::ptrdiff_t block_cols_num = MatrixBlockSizeType::UNDEFINED) \ 258 : BlockMatrix<t_block_rows_num, t_block_cols_num, sparsity_type>(matrix, block_rows_num, block_cols_num) {};\ 271 #undef EIGENTOOLS_CODE_GENERATOR
#define EIGENTOOLS_DEFINE_BLOCK_MATRIX_CONSTRUCTORS(class_name)
#define EIGENTOOLS_PARENT_CLASS_SHORTHAND
#define EIGENTOOLS_CODE_GENERATOR(ClassName, MatrixType)
#define EIGENTOOLS_BLOCKMATRIX_BLOCK_ROWS_NUM