16 #ifndef OPENKALMAN_IDENTITYTRANSFORMATION_HPP 17 #define OPENKALMAN_IDENTITYTRANSFORMATION_HPP 29 struct IdentityTransformation;
35 template<std::
size_t order> requires (order <= 1)
36 struct is_linearized_function<IdentityTransformation, order> :
std::true_type {};
38 template<std::
size_t order>
39 struct is_linearized_function<IdentityTransformation, order,
std::enable_if_t<order <= 1>> : std::true_type {};
48 template<transformation_input In, perturbation<vector_space_descriptor_of_t<In, 0>> ... Perturbations>
50 template<
typename In,
typename ... Perturbations, std::enable_if_t<transformation_input<In> and
51 (perturbation<Perturbations, vector_space_descriptor_of_t<In, 0>> and ...),
int> = 0>
55 return make_self_contained((std::forward<In>(in) + ... + std::forward<Perturbations>(ps)));
61 template<transformation_input In, perturbation<vector_space_descriptor_of_t<In, 0>> ... Perturbations>
63 template<
typename In,
typename ... Perturbations, std::enable_if_t<transformation_input<In> and
64 (perturbation<Perturbations, vector_space_descriptor_of_t<In, 0>> and ...),
int> = 0>
66 auto jacobian(In&& in, Perturbations&&...ps)
const 68 return std::make_tuple(
The root namespace for OpenKalman.
Definition: basics.hpp:34
constexpr auto make_identity_matrix_like(Descriptors &&descriptors)
Make an identity_matrix with a particular set of coordinates::pattern objects.
Definition: make_identity_matrix_like.hpp:35
constexpr auto make_zero(stdex::extents< IndexType, Extents... > extents)
Make an indexible object in which every element is 0.
Definition: make_zero.hpp:35
Definition: basics.hpp:48