7#include "smooth/version.hpp" 
   32requires  (Eigen::Index 
dof) { 
 
   42requires(
const M & m1, 
const M & m2, 
const Eigen::Vector<typename traits::man<M>::Scalar, 
traits::man<M>::Dof> & a) {
 
 
   50  !std::is_convertible_v<typename traits::man<M>::Scalar, 
double> ||
 
   51  requires (
const M & m) { 
 
   56  requires (
const M & m) { 
 
   99template<
typename NewScalar, Manifold M>
 
  106using Tangent = Eigen::Vector<Scalar<M>, Dof<M>>;
 
  118using Hessian = Eigen::Matrix<Scalar<M>, Dof<M>, (Dof<M> > 0 ? Dof<M> * Dof<M> : -1)>;
 
  145inline Eigen::Index 
dof(
const M & m)
 
 
  153template<
typename NewScalar, Manifold M>
 
  162template<Manifold M, 
typename Derived>
 
  171template<Manifold M, Manifold Mo>
 
Class-external Manifold interface defined through the traits::man trait class.
PlainObject< M > Default()
Default-initialized Manifold with static dof.
Eigen::Matrix< Scalar< M >, Dof< M >,(Dof< M > > 0 ? Dof< M > *Dof< M > :-1)> Hessian
Matrix of size Dof x Dof*Dof.
Eigen::Vector< Scalar< M >, Dof< M > > Tangent
Tangent as a Dof-length vector.
typename traits::man< M >::Scalar Scalar
Manifold scalar type.
Eigen::Index dof(const M &m)
Manifold degrees of freedom (tangent space dimension)
Tangent< M > rminus(const M &g1, const Mo &g2)
Manifold right-minus.
Eigen::Matrix< Scalar< M >, Dof< M >, Dof< M > > TangentMap
Matrix of size Dof x Dof.
PlainObject< M > rplus(const M &m, const Eigen::MatrixBase< Derived > &a)
Manifold right-plus.
typename traits::man< M >::template CastT< NewScalar > CastT
Cast'ed type.
CastT< NewScalar, M > cast(const M &m)
Cast to different scalar type.
typename traits::man< M >::PlainObject PlainObject
Manifold default type.
Trait class for making a class a Manifold instance via specialization.