6 #ifndef DISMEC_TYPE_HELPERS_H
7 #define DISMEC_TYPE_HELPERS_H
10 #include <Eigen/SparseCore>
13 namespace type_helpers {
14 template<
class T,
template<
class U>
typename V>
15 using outer_const = std::conditional_t<std::is_const_v<T>,
const V<std::remove_const_t < T>>, V<T>>;
24 using dense_row_major_h = Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>;
27 using dense_col_major_h = Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor>;
35 namespace definitions {
56 using namespace type_helpers::definitions;
outer_const< T, sparse_col_major_h > SparseColMajor
outer_const< T, sparse_row_major_h > SparseRowMajor
outer_const< T, dense_row_major_h > DenseRowMajor
outer_const< T, dense_vector_h > DenseVector
outer_const< T, sparse_vector_h > SparseVector
outer_const< T, dense_col_major_h > DenseColMajor
Eigen::SparseMatrix< T, Eigen::ColMajor > sparse_col_major_h
std::conditional_t< std::is_const_v< T >, const V< std::remove_const_t< T > >, V< T > > outer_const
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > dense_row_major_h
Eigen::SparseVector< T > sparse_vector_h
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor > dense_col_major_h
Eigen::Matrix< T, Eigen::Dynamic, 1 > dense_vector_h
Eigen::SparseMatrix< T, Eigen::RowMajor > sparse_row_major_h