5 #ifndef __pinocchio_multibody_joint_joint_common_operations_hpp__
6 #define __pinocchio_multibody_joint_joint_common_operations_hpp__
12 #include <boost/type_traits.hpp>
13 #include <boost/variant.hpp>
22 template<typename Scalar, bool is_floating_point = pinocchio::is_floating_point<Scalar>::value>
25 template<
typename M1,
typename M2>
26 static EIGEN_STRONG_INLINE
void
27 run(
const Eigen::MatrixBase<M1> & StYS,
const Eigen::MatrixBase<M2> & Dinv)
31 StYS.llt().solveInPlace(Dinv_);
35 template<
typename Scalar>
38 template<
typename M1,
typename M2>
39 static EIGEN_STRONG_INLINE
void
40 run(
const Eigen::MatrixBase<M1> & StYS,
const Eigen::MatrixBase<M2> & Dinv)
54 template<
typename ConfigVectorIn,
typename Scalar,
typename ConfigVectorOut>
56 const Eigen::MatrixBase<ConfigVectorIn> & qIn,
59 const Eigen::MatrixBase<ConfigVectorOut> & qOut)
61 assert(qIn.size() == qOut.size());
63 scaling * qIn + ConfigVectorOut::Constant(qOut.size(), offset);
69 template<
typename ConfigVectorIn,
typename Scalar,
typename ConfigVectorOut>
71 const Eigen::MatrixBase<ConfigVectorIn> & qIn,
74 const Eigen::MatrixBase<ConfigVectorOut> & qOut)
76 assert(qIn.size() == 2);
77 assert(qOut.size() == 2);
86 SINCOS(theta_transform, &dest_.coeffRef(1), &dest_.coeffRef(0));
92 template<
typename ConfigVectorIn,
typename Scalar,
typename ConfigVectorOut>
94 const Eigen::MatrixBase<ConfigVectorIn> &,
97 const Eigen::MatrixBase<ConfigVectorOut> &)
99 assert(
false &&
"Joint cannot be used with JointMimic.");
107 template<
typename Jo
int>
115 #endif // ifndef __pinocchio_multibody_joint_joint_common_operations_hpp__