smooth
A C++ library for Lie theory
Loading...
Searching...
No Matches
derivatives.hpp
Go to the documentation of this file.
1// Copyright (C) 2021-2022 Petter Nilsson. MIT License.
2
3#pragma once
4
5#include <Eigen/Core>
6
7#include "lie_groups.hpp"
8
14SMOOTH_BEGIN_NAMESPACE
15
25template<typename At, typename dAt, typename Bt, typename dBt>
26auto d_matrix_product(const At & A, const dAt & dA, const Bt & B, const dBt & dB);
27
38template<typename JfT, typename HfT, typename JgT, typename HgT>
39auto d2_fog(const JfT & Jf, const HfT & Hf, const JgT & Jg, const HgT & Hg);
40
46template<LieGroup G>
48
54template<LieGroup G>
56
62template<LieGroup G>
63Eigen::RowVector<Scalar<G>, Dof<G>> dr_rminus_squarednorm(const Tangent<G> & e);
64
70template<LieGroup G>
71Eigen::Matrix<Scalar<G>, Dof<G>, Dof<G>> d2r_rminus_squarednorm(const Tangent<G> & e);
72
73SMOOTH_END_NAMESPACE
74
75#include "detail/derivatives_impl.hpp"
Hessian< G > d2r_rminus(const Tangent< G > &e)
Hessian of rminus.
SMOOTH_BEGIN_NAMESPACE auto d_matrix_product(const At &A, const dAt &dA, const Bt &B, const dBt &dB)
Derivative of matrix product.
TangentMap< G > dr_rminus(const Tangent< G > &e)
Jacobian of rminus.
Eigen::Matrix< Scalar< G >, Dof< G >, Dof< G > > d2r_rminus_squarednorm(const Tangent< G > &e)
Hessian of the squared norm of rminus.
Eigen::RowVector< Scalar< G >, Dof< G > > dr_rminus_squarednorm(const Tangent< G > &e)
Jacobian of the squared norm of rminus.
auto d2_fog(const JfT &Jf, const HfT &Hf, const JgT &Jg, const HgT &Hg)
Hessian of composed function .
Meta header to include all LieGroup concept model specifications.
Eigen::Matrix< Scalar< M >, Dof< M >,(Dof< M > > 0 ? Dof< M > *Dof< M > :-1)> Hessian
Matrix of size Dof x Dof*Dof.
Definition manifold.hpp:118
Eigen::Vector< Scalar< M >, Dof< M > > Tangent
Tangent as a Dof-length vector.
Definition manifold.hpp:106
Eigen::Matrix< Scalar< M >, Dof< M >, Dof< M > > TangentMap
Matrix of size Dof x Dof.
Definition manifold.hpp:112