16 #ifndef OPENKALMAN_EIGEN_TENSOR_FORWARD_DECLARATIONS_HPP 17 #define OPENKALMAN_EIGEN_TENSOR_FORWARD_DECLARATIONS_HPP 19 #include <type_traits> 29 template<
typename Derived,
typename NestedMatrix>
37 template<
typename T,
bool must_be_native = false>
41 constexpr
bool eigen_tensor_general =
43 std::is_base_of_v<Eigen::TensorBase<std::decay_t<T>, Eigen::ReadOnlyAccessors>, std::decay_t<T>> and
44 (not must_be_native or not std::is_base_of_v<
EigenCustomBase, std::decay_t<T>>);
52 template<
typename N,
typename L>
63 concept eigen_tensor_wrapper =
65 constexpr
bool eigen_tensor_wrapper =
75 template<
typename...Ds>
76 struct eigen_sizes<
std::tuple<Ds...>> {
using type = Eigen::Sizes<static_cast<std::ptrdiff_t>(coordinates::dimension_of_v<Ds>)...>; };
88 template<indexible NestedObject>
90 template<
typename NestedObject>
93 has_dynamic_dimensions<NestedObject>,
95 scalar_type_of_t<NestedObject>,
96 static_cast<int>(index_count_v<NestedObject>),
97 layout_of_v<NestedObject> == data_layout::right ? Eigen::RowMajor : Eigen::ColMajor,
99 Eigen::TensorFixedSize<
100 scalar_type_of_t<NestedObject>,
101 typename detail::eigen_sizes<std::decay_t<decltype(all_vector_space_descriptors(std::declval<NestedObject>()))>>::type,
102 layout_of_v<NestedObject> == data_layout::right ? Eigen::RowMajor : Eigen::ColMajor,
103 Eigen::DenseIndex>>>;
109 #ifdef __cpp_concepts 113 template<
typename T,
typename =
void>
constexpr bool eigen_tensor_general
Specifies any descendant of Eigen::TensorBase.
Definition: eigen-tensor-forward-declarations.hpp:41
Trait object providing get and set routines for Eigen tensors.
Definition: eigen-tensor-forward-declarations.hpp:114
constexpr bool value
T is a fixed or dynamic value that is reducible to a number.
Definition: value.hpp:45
The root namespace for OpenKalman.
Definition: basics.hpp:34
Definition: eigen-tensor-forward-declarations.hpp:30
Definition: eigen-forward-declarations.hpp:22
Definition: eigen-tensor-forward-declarations.hpp:73
Definition: eigen-forward-declarations.hpp:79
Definition: forward-class-declarations.hpp:424
Definition: eigen-tensor-forward-declarations.hpp:50