16 #ifndef OPENKALMAN_GET_EUCLIDEAN_DIMENSION_HPP 17 #define OPENKALMAN_GET_EUCLIDEAN_DIMENSION_HPP 30 template<std::
size_t i = 0,
typename Tup>
31 static constexpr
auto get_euclidean_dimension_tuple(
const Tup& tup)
33 if constexpr (i < std::tuple_size_v<Tup>)
35 return values::operation {std::plus{}, internal::get_descriptor_stat_dimension(OpenKalman::internal::generalized_std_get<i>(tup)), get_euclidean_dimension_tuple<i + 1>(tup)};
37 else return std::integral_constant<std::size_t, 0_uz>{};
50 template<
typename Arg, std::enable_if_t<pattern<Arg>,
int> = 0>
55 if constexpr (descriptor<Arg>)
57 return internal::get_descriptor_stat_dimension(arg);
59 else if constexpr (collections::tuple_like<Arg>)
61 return detail::get_euclidean_dimension_tuple(arg);
65 std::size_t ret = 0_uz;
66 for (
auto& c : arg) ret += internal::get_descriptor_stat_dimension(c);
75 #endif //OPENKALMAN_GET_EUCLIDEAN_DIMENSION_HPP Definition for collections::tuple_like.
Definition for coordinates::pattern.
Definition for coordinates::descriptor.
Definition: compares_with.hpp:28
constexpr auto get_stat_dimension(const Arg &arg)
Get the vector dimension of coordinates::pattern Arg when transformed into statistical space...
Definition: get_stat_dimension.hpp:53
constexpr bool index
T is an index value.
Definition: index.hpp:56
operation(const Operation &, const Args &...) -> operation< Operation, Args... >
Deduction guide.
Global definitions for OpenKalman.