5 #ifndef __pinocchio_algorithm_kinematics_derivatives_hpp__ 
    6 #define __pinocchio_algorithm_kinematics_derivatives_hpp__ 
   39     template<
typename, 
int> 
class JointCollectionTpl,
 
   41     typename TangentVectorType1,
 
   42     typename TangentVectorType2>
 
   44     const ModelTpl<Scalar, Options, JointCollectionTpl> & 
model,
 
   45     DataTpl<Scalar, Options, JointCollectionTpl> & 
data,
 
   46     const Eigen::MatrixBase<ConfigVectorType> & 
q,
 
   47     const Eigen::MatrixBase<TangentVectorType1> & 
v,
 
   48     const Eigen::MatrixBase<TangentVectorType2> & 
a);
 
   69     template<
typename, 
int> 
class JointCollectionTpl,
 
   70     typename Matrix6xOut1,
 
   71     typename Matrix6xOut2>
 
   73     const ModelTpl<Scalar, Options, JointCollectionTpl> & 
model,
 
   74     const DataTpl<Scalar, Options, JointCollectionTpl> & 
data,
 
   77     const Eigen::MatrixBase<Matrix6xOut1> & v_partial_dq,
 
   78     const Eigen::MatrixBase<Matrix6xOut2> & v_partial_dv);
 
  109     template<
typename, 
int> 
class JointCollectionTpl,
 
  110     typename Matrix6xOut1,
 
  111     typename Matrix6xOut2,
 
  112     typename Matrix6xOut3,
 
  113     typename Matrix6xOut4>
 
  115     const ModelTpl<Scalar, Options, JointCollectionTpl> & 
model,
 
  116     const DataTpl<Scalar, Options, JointCollectionTpl> & 
data,
 
  119     const Eigen::MatrixBase<Matrix6xOut1> & v_partial_dq,
 
  120     const Eigen::MatrixBase<Matrix6xOut2> & a_partial_dq,
 
  121     const Eigen::MatrixBase<Matrix6xOut3> & a_partial_dv,
 
  122     const Eigen::MatrixBase<Matrix6xOut4> & a_partial_da);
 
  155     template<
typename, 
int> 
class JointCollectionTpl,
 
  156     typename Matrix6xOut1,
 
  157     typename Matrix6xOut2,
 
  158     typename Matrix6xOut3,
 
  159     typename Matrix6xOut4,
 
  160     typename Matrix6xOut5>
 
  162     const ModelTpl<Scalar, Options, JointCollectionTpl> & 
model,
 
  163     const DataTpl<Scalar, Options, JointCollectionTpl> & 
data,
 
  166     const Eigen::MatrixBase<Matrix6xOut1> & v_partial_dq,
 
  167     const Eigen::MatrixBase<Matrix6xOut2> & v_partial_dv,
 
  168     const Eigen::MatrixBase<Matrix6xOut3> & a_partial_dq,
 
  169     const Eigen::MatrixBase<Matrix6xOut4> & a_partial_dv,
 
  170     const Eigen::MatrixBase<Matrix6xOut5> & a_partial_da);
 
  194     template<
typename, 
int> 
class JointCollectionTpl,
 
  195     typename Matrix3xOut1,
 
  196     typename Matrix3xOut2>
 
  198     const ModelTpl<Scalar, Options, JointCollectionTpl> & 
model,
 
  199     const DataTpl<Scalar, Options, JointCollectionTpl> & 
data,
 
  201     const SE3Tpl<Scalar, Options> & 
placement,
 
  203     const Eigen::MatrixBase<Matrix3xOut1> & v_point_partial_dq,
 
  204     const Eigen::MatrixBase<Matrix3xOut2> & v_point_partial_dv);
 
  237     template<
typename, 
int> 
class JointCollectionTpl,
 
  238     typename Matrix3xOut1,
 
  239     typename Matrix3xOut2,
 
  240     typename Matrix3xOut3,
 
  241     typename Matrix3xOut4>
 
  243     const ModelTpl<Scalar, Options, JointCollectionTpl> & 
model,
 
  244     const DataTpl<Scalar, Options, JointCollectionTpl> & 
data,
 
  246     const SE3Tpl<Scalar, Options> & 
placement,
 
  248     const Eigen::MatrixBase<Matrix3xOut1> & v_point_partial_dq,
 
  249     const Eigen::MatrixBase<Matrix3xOut2> & a_point_partial_dq,
 
  250     const Eigen::MatrixBase<Matrix3xOut3> & a_point_partial_dv,
 
  251     const Eigen::MatrixBase<Matrix3xOut4> & a_point_partial_da);
 
  285     template<
typename, 
int> 
class JointCollectionTpl,
 
  286     typename Matrix3xOut1,
 
  287     typename Matrix3xOut2,
 
  288     typename Matrix3xOut3,
 
  289     typename Matrix3xOut4,
 
  290     typename Matrix3xOut5>
 
  292     const ModelTpl<Scalar, Options, JointCollectionTpl> & 
model,
 
  293     const DataTpl<Scalar, Options, JointCollectionTpl> & 
data,
 
  295     const SE3Tpl<Scalar, Options> & 
placement,
 
  297     const Eigen::MatrixBase<Matrix3xOut1> & v_point_partial_dq,
 
  298     const Eigen::MatrixBase<Matrix3xOut2> & v_point_partial_dv,
 
  299     const Eigen::MatrixBase<Matrix3xOut3> & a_point_partial_dq,
 
  300     const Eigen::MatrixBase<Matrix3xOut4> & a_point_partial_dv,
 
  301     const Eigen::MatrixBase<Matrix3xOut5> & a_point_partial_da);
 
  318   template<
typename Scalar, 
int Options, 
template<
typename, 
int> 
class JointCollectionTpl>
 
  320     const ModelTpl<Scalar, Options, JointCollectionTpl> & 
model,
 
  321     DataTpl<Scalar, Options, JointCollectionTpl> & 
data);
 
  342     template<
typename, 
int> 
class JointCollectionTpl,
 
  347     const Eigen::MatrixBase<ConfigVectorType> & 
q)
 
  379   template<
typename Scalar, 
int Options, 
template<
typename, 
int> 
class JointCollectionTpl>
 
  381     const ModelTpl<Scalar, Options, JointCollectionTpl> & 
model,
 
  382     const DataTpl<Scalar, Options, JointCollectionTpl> & 
data,
 
  385     Tensor<Scalar, 3, Options> & kinematic_hessian);
 
  415   template<
typename Scalar, 
int Options, 
template<
typename, 
int> 
class JointCollectionTpl>
 
  431 #include "pinocchio/algorithm/kinematics-derivatives.hxx" 
  433 #if PINOCCHIO_ENABLE_TEMPLATE_INSTANTIATION 
  434   #include "pinocchio/algorithm/kinematics-derivatives.txx" 
  435 #endif // PINOCCHIO_ENABLE_TEMPLATE_INSTANTIATION 
  437 #endif // ifndef __pinocchio_algorithm_kinematics_derivatives_hpp__