16 #ifndef OPENKALMAN_TRIANGLE_TYPE_OF_HPP 17 #define OPENKALMAN_TRIANGLE_TYPE_OF_HPP 28 template<
typename T,
typename...Ts>
30 : std::integral_constant<TriangleType,
31 (triangular_matrix<T, TriangleType::diagonal> and ... and triangular_matrix<Ts, TriangleType::diagonal>) ? TriangleType::diagonal :
32 (triangular_matrix<T, TriangleType::lower> and ... and triangular_matrix<Ts, TriangleType::lower>) ? TriangleType::lower :
33 (triangular_matrix<T, TriangleType::upper> and ... and triangular_matrix<Ts, TriangleType::upper>) ? TriangleType::upper :
34 TriangleType::any> {};
40 template<
typename T,
typename...Ts>
46 #endif //OPENKALMAN_TRIANGLE_TYPE_OF_HPP constexpr bool value
T is numerical value or is reducible to a numerical value.
Definition: value.hpp:31
The root namespace for OpenKalman.
Definition: basics.hpp:34
The common TriangleType associated with a set of triangular matrices.
Definition: triangle_type_of.hpp:29
constexpr auto triangle_type_of_v
The TriangleType associated with a triangular_matrix.
Definition: triangle_type_of.hpp:41