16 #ifndef OPENKALMAN_HERMITIAN_ADAPTER_HPP 17 #define OPENKALMAN_HERMITIAN_ADAPTER_HPP 22 #ifndef __cpp_concepts 25 template<
typename T, HermitianAdapterType t,
typename =
void>
28 template<
typename T, HermitianAdapterType t>
30 (t == HermitianAdapterType::any ?
31 interface::indexible_object_traits<std::decay_t<T>>::hermitian_adapter_type == HermitianAdapterType::lower or
32 interface::indexible_object_traits<std::decay_t<T>>::hermitian_adapter_type == HermitianAdapterType::upper :
33 interface::indexible_object_traits<std::decay_t<T>>::hermitian_adapter_type == t)>> : std::true_type {};
46 template<
typename T, HermitianAdapterType t = HermitianAdapterType::any>
48 concept
hermitian_adapter = hermitian_matrix<T, Applicability::permitted> and has_nested_object<T> and
54 constexpr
bool hermitian_adapter = hermitian_matrix<T, Applicability::permitted> and has_nested_object<T> and
61 #endif //OPENKALMAN_HERMITIAN_ADAPTER_HPP Definition: indexible_object_traits.hpp:36
constexpr bool hermitian_adapter
Specifies that a type is a hermitian matrix adapter of a particular type.
Definition: hermitian_adapter.hpp:54
Lower, upper, or diagonal matrix.
Definition: hermitian_adapter.hpp:26
Definition: tuple_reverse.hpp:103
constexpr bool value
T is numerical value or is reducible to a numerical value.
Definition: value.hpp:31
An upper-right triangular matrix.
The root namespace for OpenKalman.
Definition: basics.hpp:34
A lower-left triangular matrix.