16 #ifndef OPENKALMAN_MAKE_DIAGONAL_ADAPTER_HPP 17 #define OPENKALMAN_MAKE_DIAGONAL_ADAPTER_HPP 28 template<indexible Arg, coordinates::pattern D0, coordinates::pattern D1> requires
29 (not fixed_pattern<D0> or not fixed_pattern<D1> or coordinates::compares_with<D0, D1, less_equal<>> or coordinates::compares_with<D1, D0, less_equal<>>) and
30 (
dynamic_dimension<Arg, 0> or compares_with<vector_space_descriptor_of<Arg, 0>, D0, equal_to<>,
Applicability::permitted> or compares_with<vector_space_descriptor_of<Arg, 0>, D1, equal_to<>,
Applicability::permitted>)
33 template<
typename Arg,
typename D0,
typename D1, std::enable_if_t<
34 indexible<Arg> and coordinates::pattern<D0> and coordinates::pattern<D1> and
35 (not fixed_pattern<D0> or not fixed_pattern<D1> or coordinates::compares_with<D0, D1, less_equal<>> or coordinates::compares_with<D1, D0, less_equal<>>) and
36 (
dynamic_dimension<Arg, 0> or compares_with<vector_space_descriptor_of<Arg, 0>, D0, equal_to<>,
Applicability::permitted> or compares_with<vector_space_descriptor_of<Arg, 0>, D1, equal_to<>,
Applicability::permitted>),
int> = 0>
41 return DiagonalAdapter {std::forward<Arg>(arg), std::forward<D0>(d0), std::forward<D1>(d1)};
51 template<indexible Arg>
54 template<
typename Arg, std::enable_if_t<indexible<Arg>,
int> = 0>
59 auto d = get_vector_space_descriptor<0>(arg);
65 #endif //OPENKALMAN_MAKE_DIAGONAL_ADAPTER_HPP constexpr bool diagonal_matrix
Specifies that a type is a diagonal matrix or tensor.
Definition: diagonal_matrix.hpp:32
The root namespace for OpenKalman.
Definition: basics.hpp:34
Applicability
The applicability of a concept, trait, or restraint.
Definition: global-definitions.hpp:93
constexpr bool dynamic_dimension
Specifies that T's index N has a dimension defined at run time.
Definition: dynamic_dimension.hpp:43
constexpr auto make_diagonal_adapter(Arg &&arg, D0 &&d0, D1 &&d1)
Make a diagonal_matrix, specifying the first two dimensions, which may not necessarily be the same...
Definition: make_diagonal_adapter.hpp:39
An adapter for creating a diagonal matrix or tensor.
Definition: DiagonalAdapter.hpp:27