16 #ifndef OPENKALMAN_MAKE_ZERO_HPP 17 #define OPENKALMAN_MAKE_ZERO_HPP 29 template<indexible T, values::number Scalar = scalar_type_of_t<T>, pattern_collection Descriptors>
32 template<
typename T,
typename Scalar = scalar_type_of_t<T>,
typename...Ds, std::enable_if_t<indexible<T> and
33 values::number<Scalar> and pattern_collection<Descriptors>,
int> = 0>
38 return make_constant<T, Scalar, 0>(std::forward<Descriptors>(descriptors));
47 template<indexible T, values::number Scalar = scalar_type_of_t<T>, coordinates::pattern...Ds>
50 template<
typename T,
typename Scalar = scalar_type_of_t<T>,
typename...Ds, std::enable_if_t<indexible<T> and
51 values::number<Scalar> and (... and coordinates::pattern<Ds>),
int> = 0>
56 return make_zero<T, Scalar>(std::tuple {std::forward<Ds>(ds)...});
67 template<values::number Scalar, indexible T>
70 template<
typename Scalar,
typename T, std::enable_if_t<values::number<Scalar> and indexible<T>,
int> = 0>
75 return make_constant<Scalar, 0>(t);
88 template<
typename T, std::enable_if_t<indexible<T>,
int> = 0>
93 return make_constant<scalar_type_of_t<T>, 0>(t);
99 #endif //OPENKALMAN_MAKE_ZERO_HPP The root namespace for OpenKalman.
Definition: basics.hpp:34
constexpr bool zero
Specifies that a type is known at compile time to be a constant matrix of value zero.
Definition: zero.hpp:43
constexpr auto make_zero(Descriptors &&descriptors)
Make a zero associated with a particular library.
Definition: make_zero.hpp:36