16 #ifndef OPENKALMAN_HERMITIAN_MATRIX_HPP 17 #define OPENKALMAN_HERMITIAN_MATRIX_HPP 22 #ifndef __cpp_concepts 25 template<
typename T,
typename =
void>
30 values::not_complex<constant_coefficient<T>> or values::not_complex<constant_diagonal_coefficient<T>>>>
42 template<
typename T, Applicability b = Applicability::guaranteed>
46 ((constant_matrix<T> or diagonal_matrix<T>) and
50 constexpr
bool hermitian_matrix = square_shaped<T, b> and
58 #endif //OPENKALMAN_HERMITIAN_MATRIX_HPP Definition: indexible_object_traits.hpp:36
typename scalar_type_of< T >::type scalar_type_of_t
helper template for scalar_type_of.
Definition: scalar_type_of.hpp:54
constexpr bool complex
T is a values::value that reduces to std::complex or a custom complex type.
Definition: complex.hpp:46
Definition: tuple_reverse.hpp:103
constexpr bool not_complex
T is a values::value in which either its type is not a values::complex or its imaginary component is ...
Definition: not_complex.hpp:47
Definition: object-traits-defined.hpp:311
The constant associated with T, assuming T is a constant_matrix.
Definition: constant_coefficient.hpp:36
The root namespace for OpenKalman.
Definition: basics.hpp:34
The constant associated with T, assuming T is a constant_diagonal_matrix.
Definition: constant_diagonal_coefficient.hpp:32
Definition: hermitian_matrix.hpp:26
constexpr bool hermitian_matrix
Specifies that a type is a hermitian matrix (assuming it is square_shaped).
Definition: hermitian_matrix.hpp:50