5 #ifndef __pinocchio_multibody_joint_joint_common_operations_hpp__
6 #define __pinocchio_multibody_joint_joint_common_operations_hpp__
8 #include "pinocchio/macros.hpp"
9 #include "pinocchio/math/matrix.hpp"
11 #include <boost/type_traits.hpp>
20 template<typename Scalar, bool is_floating_point = pinocchio::is_floating_point<Scalar>::value>
21 struct PerformStYSInversion
23 template<
typename M1,
typename M2>
24 static EIGEN_STRONG_INLINE
void
25 run(
const Eigen::MatrixBase<M1> & StYS,
const Eigen::MatrixBase<M2> & Dinv)
27 M2 & Dinv_ = PINOCCHIO_EIGEN_CONST_CAST(M2, Dinv);
29 StYS.llt().solveInPlace(Dinv_);
33 template<
typename Scalar>
34 struct PerformStYSInversion<Scalar, false>
36 template<
typename M1,
typename M2>
37 static EIGEN_STRONG_INLINE
void
38 run(
const Eigen::MatrixBase<M1> & StYS,
const Eigen::MatrixBase<M2> & Dinv)
40 M2 & Dinv_ = PINOCCHIO_EIGEN_CONST_CAST(M2, Dinv);
52 template<
typename ConfigVectorIn,
typename Scalar,
typename ConfigVectorOut>
54 const Eigen::MatrixBase<ConfigVectorIn> & q,
55 const Scalar & scaling,
56 const Scalar & offset,
57 const Eigen::MatrixBase<ConfigVectorOut> & dest)
59 assert(q.size() == dest.size());
60 PINOCCHIO_EIGEN_CONST_CAST(ConfigVectorOut, dest).noalias() =
61 scaling * q + ConfigVectorOut::Constant(dest.size(), offset);
69 template<
typename Jo
int>
Main pinocchio namespace.