16 #ifndef OPENKALMAN_EIGEN_WRAPPER_HPP 17 #define OPENKALMAN_EIGEN_WRAPPER_HPP 27 template<
typename N,
typename L>
28 struct is_eigen_wrapper<internal::LibraryWrapper<N, L>> : std::bool_constant<eigen_general<L, true>> {};
38 concept eigen_wrapper =
40 constexpr
bool eigen_wrapper =
52 template<indexible NestedObject> requires (index_count_v<NestedObject> <= 2)
54 template<
typename NestedObject>
57 std::conditional_t<eigen_array_general<NestedObject>,
60 dynamic_dimension<NestedObject, 0> ? Eigen::Dynamic :
static_cast<int>(index_dimension_of_v<NestedObject, 0>),
61 dynamic_dimension<NestedObject, 1> ? Eigen::Dynamic : static_cast<int>(index_dimension_of_v<NestedObject, 1>),
62 layout_of_v<NestedObject> ==
Layout::right ? Eigen::RowMajor : Eigen::ColMajor>,
64 scalar_type_of_t<NestedObject>,
65 dynamic_dimension<NestedObject, 0> ? Eigen::Dynamic :
static_cast<int>(index_dimension_of_v<NestedObject, 0>),
66 dynamic_dimension<NestedObject, 1> ? Eigen::Dynamic : static_cast<int>(index_dimension_of_v<NestedObject, 1>),
67 layout_of_v<NestedObject> ==
Layout::right ? Eigen::RowMajor : Eigen::ColMajor>>>;
74 template<indexible Arg> requires (index_count_v<Arg> <= 2)
76 template<
typename Arg, std::enable_if_t<indexible<Arg> and (index_count_v<Arg> <= 2),
int> = 0>
79 make_eigen_wrapper(Arg&& arg)
81 return EigenWrapper<Arg> {std::forward<Arg>(arg)};
Row-major storage (C or C++ style): contiguous storage in which the right-most index has a stride of ...
typename scalar_type_of< T >::type scalar_type_of_t
helper template for scalar_type_of.
Definition: scalar_type_of.hpp:54
Definition: eigen-wrapper.hpp:25
constexpr bool value
T is numerical value or is reducible to a numerical value.
Definition: value.hpp:31
Definition: eigen-forward-declarations.hpp:22
Definition: forward-class-declarations.hpp:580