22 template <
class TDerived>
23 concept
EigenType = DerivedFrom<TDerived, Eigen::EigenBase<TDerived>>;
25 template <
class TDerived>
28 template <
class TDerived>
31 template <
class TDerived>
34 template <
class TT1,
typename TT2>
35 concept
EigenSameDim = EigenDenseType<TT1> && EigenDenseType<TT2> &&
36 (TT1::RowsAtCompileTime == Eigen::Dynamic ||
37 TT1::RowsAtCompileTime == TT2::RowsAtCompileTime) &&
38 (TT1::ColsAtCompileTime == Eigen::Dynamic ||
39 TT1::ColsAtCompileTime == TT2::ColsAtCompileTime);
41 template <
int kRows,
int kCols,
typename TT>
42 concept
EigenWithDim = EigenDenseType<TT> && TT::RowsAtCompileTime ==
43 kRows&& TT::ColsAtCompileTime == kCols;
45 template <
typename TT>
46 concept
EigenVector3 = EigenDenseType<TT> && TT::RowsAtCompileTime == 3 &&
47 TT::ColsAtCompileTime == 1;
49 template <
int kRows,
int kCols,
typename TT>
51 (TT::RowsAtCompileTime == Eigen::Dynamic ||
52 TT::RowsAtCompileTime == kRows) &&
53 (TT::ColsAtCompileTime == Eigen::Dynamic ||
54 TT::ColsAtCompileTime == kCols);
64 concept
ScalarType = RealScalarType<TT> || IntegerScalarType<TT>;
68 EigenDenseType<TT> && std::is_floating_point_v<typename TT::Scalar>;
72 EigenDenseType<TT> && std::is_integral_v<typename TT::Scalar>;
81 concept
PointType = RealPointType<TT> || IntegerPointType<TT>;