16 #ifndef OPENKALMAN_OBJECT_TYPES_HPP 17 #define OPENKALMAN_OBJECT_TYPES_HPP 52 constexpr
bool wrapped_mean =
54 mean<T> and (not has_untyped_index<T, 0>);
87 constexpr
bool euclidean_transformed =
89 euclidean_mean<T> and (not has_untyped_index<T, 0>);
107 #ifdef __cpp_concepts 129 #ifdef __cpp_concepts 147 #ifdef __cpp_concepts 158 #ifdef __cpp_concepts 159 concept
covariance = self_adjoint_covariance<T> or triangular_covariance<T>;
161 constexpr
bool covariance = self_adjoint_covariance<T> or triangular_covariance<T>;
179 #ifdef __cpp_concepts 190 #ifdef __cpp_concepts 193 constexpr
bool distribution = gaussian_distribution<T>;
203 #ifndef __cpp_concepts 204 template<
typename T,
typename =
void>
209 : std::bool_constant<not hermitian_matrix<nested_object_of_t<T>>> {};
219 #ifdef __cpp_concepts 220 concept
cholesky_form = (not covariance<T> or not hermitian_matrix<nested_object_of_t<T>>);
234 #ifdef __cpp_concepts 237 constexpr
bool covariance_nestable =
239 triangular_matrix<T> or hermitian_matrix<T>;
250 #ifdef __cpp_concepts 253 constexpr
bool typed_matrix_nestable =
260 #endif //OPENKALMAN_OBJECT_TYPES_HPP constexpr bool self_adjoint_covariance
T is a self-adjoint covariance matrix (i.e., a specialization of Covariance).
Definition: object-types.hpp:132
constexpr bool euclidean_transformed
Specifies that T is a Euclidean mean that actually has coefficients that are transformed to Euclidean...
Definition: object-types.hpp:87
constexpr bool cholesky_form
Specifies that a type has a nested native matrix that is a Cholesky square root.
Definition: object-types.hpp:222
constexpr bool wrapped_mean
Specifies that T is a wrapped mean (i.e., its row fixed_pattern have at least one type that requires ...
Definition: object-types.hpp:52
Definition: tuple_reverse.hpp:103
constexpr bool value
T is numerical value or is reducible to a numerical value.
Definition: value.hpp:31
Definition: object-types.hpp:121
Definition: object-types.hpp:29
Definition: object-types.hpp:172
Definition: object-types.hpp:64
constexpr bool typed_matrix_nestable
Specifies a type that is nestable in a general typed matrix (e.g., matrix, mean, or euclidean_mean) ...
Definition: object-types.hpp:253
constexpr bool typed_matrix
Specifies that T is a typed matrix (i.e., is a specialization of Matrix, Mean, or EuclideanMean)...
Definition: object-types.hpp:110
The root namespace for OpenKalman.
Definition: basics.hpp:34
constexpr bool euclidean_mean
Specifies that T is a Euclidean mean (i.e., is a specialization of the class EuclideanMean).
Definition: object-types.hpp:75
constexpr bool covariance
T is a specialization of either Covariance or SquareRootCovariance.
Definition: object-types.hpp:161
constexpr bool triangular_covariance
T is a square root (Cholesky) covariance matrix (i.e., a specialization of SquareRootCovariance).
Definition: object-types.hpp:150
constexpr bool gaussian_distribution
T is a Gaussian distribution.
Definition: object-types.hpp:182
constexpr bool distribution
T is a statistical distribution of any kind that is defined in OpenKalman.
Definition: object-types.hpp:193
constexpr bool mean
Specifies that T is a mean (i.e., is a specialization of the class Mean).
Definition: object-types.hpp:40
constexpr bool covariance_nestable
T is an acceptable nested matrix for a covariance (including triangular_covariance).
Definition: object-types.hpp:237
Definition: object-types.hpp:139
Definition: object-types.hpp:99