Fix block behaviors

See merge request oss/rotgen!35
This commit is contained in:
Joel Falcou 2025-10-02 18:18:27 +02:00
parent 9901765ef9
commit 4ba8b3c6a9
13 changed files with 70 additions and 54 deletions

View file

@ -16,14 +16,18 @@ namespace rotgen
#define USE_CONST
#define CONST const
#define BASENAME block_const_impl
#define BASEMAP map_const_impl
#include "block_indirect.cpp"
#undef BASENAME
#undef BASEMAP
#undef USE_CONST
#undef CONST
#define CONST
#define BASENAME block_impl
#define BASEMAP map_impl
#include "block_indirect.cpp"
#undef BASENAME
#undef BASEMAP
#undef CONST
}

View file

@ -5,7 +5,7 @@
#define CLASSNAME ROTGEN_MATRIX_NAME(BASENAME,SIZE,_col)
#define SOURCENAME ROTGEN_MATRIX_NAME(matrix_impl,SIZE,_col)
#define TRANSSOURCENAME ROTGEN_MATRIX_NAME(matrix_impl,SIZE,_row)
#define MAPNAME ROTGEN_MATRIX_NAME(map_impl,SIZE,_col)
#define MAPNAME ROTGEN_MATRIX_NAME(BASEMAP,SIZE,_col)
#include "block_model.cpp"
#undef CLASSNAME
#undef TRANSSOURCENAME
@ -17,7 +17,7 @@
#define CLASSNAME ROTGEN_MATRIX_NAME(BASENAME,SIZE,_row)
#define SOURCENAME ROTGEN_MATRIX_NAME(matrix_impl,SIZE,_row)
#define TRANSSOURCENAME ROTGEN_MATRIX_NAME(matrix_impl,SIZE,_col)
#define MAPNAME ROTGEN_MATRIX_NAME(map_impl,SIZE,_row)
#define MAPNAME ROTGEN_MATRIX_NAME(BASEMAP,SIZE,_row)
#include "block_model.cpp"
#undef CLASSNAME
#undef TRANSSOURCENAME
@ -35,7 +35,7 @@
#define CLASSNAME ROTGEN_MATRIX_NAME(BASENAME,SIZE,_col)
#define SOURCENAME ROTGEN_MATRIX_NAME(matrix_impl,SIZE,_col)
#define TRANSSOURCENAME ROTGEN_MATRIX_NAME(matrix_impl,SIZE,_row)
#define MAPNAME ROTGEN_MATRIX_NAME(map_impl,SIZE,_col)
#define MAPNAME ROTGEN_MATRIX_NAME(BASEMAP,SIZE,_col)
#include "block_model.cpp"
#undef CLASSNAME
#undef TRANSSOURCENAME
@ -47,7 +47,7 @@
#define CLASSNAME ROTGEN_MATRIX_NAME(BASENAME,SIZE,_row)
#define SOURCENAME ROTGEN_MATRIX_NAME(matrix_impl,SIZE,_row)
#define TRANSSOURCENAME ROTGEN_MATRIX_NAME(matrix_impl,SIZE,_col)
#define MAPNAME ROTGEN_MATRIX_NAME(map_impl,SIZE,_row)
#define MAPNAME ROTGEN_MATRIX_NAME(BASEMAP,SIZE,_row)
#include "block_model.cpp"
#undef CLASSNAME
#undef TRANSSOURCENAME

View file

@ -21,7 +21,7 @@ struct CLASSNAME::payload
using matrix_type = Eigen::Matrix<TYPE,Eigen::Dynamic,Eigen::Dynamic,STORAGE_ORDER>;
using matrix_block_type = Eigen::Block<matrix_type CONST>;
using matrix_storage_t = std::pair<matrix_block_type, matrix_type CONST*>;
using map_type = Eigen::Map<matrix_type,Eigen::Unaligned,stride_type>;
using map_type = Eigen::Map<matrix_type CONST,Eigen::Unaligned,stride_type>;
using map_block_type = Eigen::Block<map_type CONST>;
using map_storage_t = std::pair<map_block_type, map_type CONST*>;
using data_type = std::variant<matrix_storage_t, map_storage_t>;