5 #ifndef __pinocchio_lie_group_variant_visitor_hpp__ 
    6 #define __pinocchio_lie_group_variant_visitor_hpp__ 
   21   template<
typename LieGroupCollection>
 
   22   inline int nq(
const LieGroupGenericTpl<LieGroupCollection> & lg);
 
   32   template<
typename LieGroupCollection>
 
   33   inline int nv(
const LieGroupGenericTpl<LieGroupCollection> & lg);
 
   42   template<
typename LieGroupCollection>
 
   43   inline std::string 
name(
const LieGroupGenericTpl<LieGroupCollection> & lg);
 
   52   template<
typename LieGroupCollection>
 
   54     Matrix<typename LieGroupCollection::Scalar, Eigen::Dynamic, 1, LieGroupCollection::Options>
 
   55     neutral(
const LieGroupGenericTpl<LieGroupCollection> & lg);
 
   65   template<
typename LieGroupCollection, 
class ConfigIn_t, 
class Tangent_t, 
class ConfigOut_t>
 
   67     const LieGroupGenericTpl<LieGroupCollection> & lg,
 
   68     const Eigen::MatrixBase<ConfigIn_t> & 
q,
 
   69     const Eigen::MatrixBase<Tangent_t> & 
v,
 
   70     const Eigen::MatrixBase<ConfigOut_t> & 
qout);
 
   72   template<
typename LieGroupCollection, 
class Config_t>
 
   74     const LieGroupGenericTpl<LieGroupCollection> & lg, 
const Eigen::MatrixBase<Config_t> & 
qout);
 
   76   template<
typename LieGroupCollection, 
class Config_t>
 
   78     const LieGroupGenericTpl<LieGroupCollection> & lg, 
const Eigen::MatrixBase<Config_t> & 
qout);
 
   80   template<
typename LieGroupCollection, 
class Config_t>
 
   82     const LieGroupGenericTpl<LieGroupCollection> & lg,
 
   83     const Eigen::MatrixBase<Config_t> & 
qin,
 
   85       Eigen::NumTraits<typename Config_t::Scalar>::dummy_precision());
 
   87   template<
typename LieGroupCollection, 
class ConfigL_t, 
class ConfigR_t>
 
   89     const LieGroupGenericTpl<LieGroupCollection> & lg,
 
   90     const Eigen::MatrixBase<ConfigL_t> & 
q0,
 
   91     const Eigen::MatrixBase<ConfigR_t> & 
q1,
 
   94   template<
typename LieGroupCollection, 
class ConfigL_t, 
class ConfigR_t>
 
   96     const LieGroupGenericTpl<LieGroupCollection> & lg,
 
   97     const Eigen::MatrixBase<ConfigL_t> & 
q0,
 
   98     const Eigen::MatrixBase<ConfigR_t> & 
q1);
 
  100   template<
typename LieGroupCollection, 
class ConfigL_t, 
class ConfigR_t>
 
  103     const Eigen::MatrixBase<ConfigL_t> & 
q0,
 
  104     const Eigen::MatrixBase<ConfigR_t> & 
q1)
 
  109   template<
typename LieGroupCollection, 
class ConfigL_t, 
class ConfigR_t, 
class Tangent_t>
 
  111     const LieGroupGenericTpl<LieGroupCollection> & lg,
 
  112     const Eigen::MatrixBase<ConfigL_t> & 
q0,
 
  113     const Eigen::MatrixBase<ConfigR_t> & 
q1,
 
  114     const Eigen::MatrixBase<Tangent_t> & 
v);
 
  116   template<
typename LieGroupCollection, 
class ConfigL_t, 
class ConfigR_t, 
class ConfigOut_t>
 
  118     const LieGroupGenericTpl<LieGroupCollection> & lg,
 
  119     const Eigen::MatrixBase<ConfigL_t> & 
q0,
 
  120     const Eigen::MatrixBase<ConfigR_t> & 
q1,
 
  121     const Eigen::MatrixBase<ConfigOut_t> & 
qout);
 
  123   template<
typename LieGroupCollection, 
class ConfigL_t, 
class ConfigR_t, 
class ConfigOut_t>
 
  125     const LieGroupGenericTpl<LieGroupCollection> & lg,
 
  126     const Eigen::MatrixBase<ConfigL_t> & 
q0,
 
  127     const Eigen::MatrixBase<ConfigR_t> & 
q1,
 
  129     const Eigen::MatrixBase<ConfigOut_t> & 
qout);
 
  131   template<
typename LieGroupCollection, 
class Config_t, 
class Tangent_t, 
class JacobianOut_t>
 
  133     const LieGroupGenericTpl<LieGroupCollection> & lg,
 
  134     const Eigen::MatrixBase<Config_t> & 
q,
 
  135     const Eigen::MatrixBase<Tangent_t> & 
v,
 
  136     const Eigen::MatrixBase<JacobianOut_t> & 
J,
 
  141     typename LieGroupCollection,
 
  147     const LieGroupGenericTpl<LieGroupCollection> & lg,
 
  148     const Eigen::MatrixBase<Config_t> & 
q,
 
  149     const Eigen::MatrixBase<Tangent_t> & 
v,
 
  150     const Eigen::MatrixBase<JacobianIn_t> & J_in,
 
  152     const Eigen::MatrixBase<JacobianOut_t> & J_out,
 
  157     typename LieGroupCollection,
 
  163     const LieGroupGenericTpl<LieGroupCollection> & lg,
 
  164     const Eigen::MatrixBase<Config_t> & 
q,
 
  165     const Eigen::MatrixBase<Tangent_t> & 
v,
 
  167     const Eigen::MatrixBase<JacobianIn_t> & J_in,
 
  168     const Eigen::MatrixBase<JacobianOut_t> & J_out,
 
  172   template<
typename LieGroupCollection, 
class ConfigL_t, 
class ConfigR_t, 
class JacobianOut_t>
 
  174     const LieGroupGenericTpl<LieGroupCollection> & lg,
 
  175     const Eigen::MatrixBase<ConfigL_t> & 
q0,
 
  176     const Eigen::MatrixBase<ConfigR_t> & 
q1,
 
  177     const Eigen::MatrixBase<JacobianOut_t> & 
J,
 
  181     typename LieGroupCollection,
 
  187     const LieGroupGenericTpl<LieGroupCollection> & lg,
 
  188     const Eigen::MatrixBase<ConfigL_t> & 
q0,
 
  189     const Eigen::MatrixBase<ConfigR_t> & 
q1,
 
  190     const Eigen::MatrixBase<JacobianIn_t> & Jin,
 
  192     const Eigen::MatrixBase<JacobianOut_t> & Jout,
 
  196     typename LieGroupCollection,
 
  202     const LieGroupGenericTpl<LieGroupCollection> & lg,
 
  203     const Eigen::MatrixBase<ConfigL_t> & 
q0,
 
  204     const Eigen::MatrixBase<ConfigR_t> & 
q1,
 
  206     const Eigen::MatrixBase<JacobianIn_t> & Jin,
 
  207     const Eigen::MatrixBase<JacobianOut_t> & Jout,
 
  211     typename LieGroupCollection,
 
  217     const LieGroupGenericTpl<LieGroupCollection> & lg,
 
  218     const Eigen::MatrixBase<Config_t> & 
q,
 
  219     const Eigen::MatrixBase<Tangent_t> & 
v,
 
  220     const Eigen::MatrixBase<JacobianIn_t> & J_in,
 
  221     const Eigen::MatrixBase<JacobianOut_t> & J_out,
 
  224   template<
typename LieGroupCollection, 
class Config_t, 
class Tangent_t, 
class JacobianOut_t>
 
  226     const LieGroupGenericTpl<LieGroupCollection> & lg,
 
  227     const Eigen::MatrixBase<Config_t> & 
q,
 
  228     const Eigen::MatrixBase<Tangent_t> & 
v,
 
  229     const Eigen::MatrixBase<JacobianOut_t> & 
J,
 
  234 #include "pinocchio/multibody/liegroup/liegroup-variant-visitors.hxx" 
  236 #endif // ifndef __pinocchio_lie_group_variant_visitor_hpp__