5#ifndef __pinocchio_cholesky_hpp__
6#define __pinocchio_cholesky_hpp__
8#include "pinocchio/multibody/model.hpp"
9#include "pinocchio/multibody/data.hpp"
36 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
37 inline const typename DataTpl<Scalar, Options, JointCollectionTpl>::MatrixXs &
decompose(
62 template<
typename,
int>
class JointCollectionTpl,
67 const Eigen::MatrixBase<Mat> & y);
84 template<
typename,
int>
class JointCollectionTpl,
86 typename PINOCCHIO_EIGEN_PLAIN_TYPE(
Mat)
Mv(
89 const Eigen::MatrixBase<Mat> & min);
107 template<
typename,
int>
class JointCollectionTpl,
113 const Eigen::MatrixBase<Mat> & min,
114 const Eigen::MatrixBase<MatRes> &
mout);
131 template<
typename,
int>
class JointCollectionTpl,
136 const Eigen::MatrixBase<Mat> & m);
153 template<
typename,
int>
class JointCollectionTpl,
158 const Eigen::MatrixBase<Mat> & v);
176 template<
typename,
int>
class JointCollectionTpl,
181 const Eigen::MatrixBase<Mat> & v);
201 template<
typename,
int>
class JointCollectionTpl,
206 const Eigen::MatrixBase<Mat> & v);
227 template<
typename,
int>
class JointCollectionTpl,
232 const Eigen::MatrixBase<Mat> & v);
251 template<
typename,
int>
class JointCollectionTpl,
256 const Eigen::MatrixBase<Mat> & v);
273 template<
typename,
int>
class JointCollectionTpl,
278 const Eigen::MatrixBase<Mat> & Minv);
292 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
293 const typename DataTpl<Scalar, Options, JointCollectionTpl>::RowMatrixXs &
computeMinv(
306#include "pinocchio/algorithm/cholesky.hxx"
308#if PINOCCHIO_ENABLE_TEMPLATE_INSTANTIATION
309 #include "pinocchio/algorithm/cholesky.txx"
Mat & Utiv(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Mat > &v)
Perform the pivot inversion using the Cholesky decomposition stored in data and acting in place.
Mat & UDUtv(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Mat > &m)
Performs the multiplication by using the Cholesky decomposition of M stored in data.
const DataTpl< Scalar, Options, JointCollectionTpl >::MatrixXs & decompose(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
Compute the Cholesky decomposition of the joint space inertia matrix M contained in data.
Mat & Uiv(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Mat > &v)
Perform the pivot inversion using the Cholesky decomposition stored in data and acting in place.
Mat & solve(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Mat > &y)
Return the solution of using the Cholesky decomposition stored in data given the entry ....
Mat & computeMinv(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Mat > &Minv)
Computes the inverse of the joint space inertia matrix M from its Cholesky factorization.
Mat & Uv(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Mat > &v)
Perform the sparse multiplication using the Cholesky decomposition stored in data and acting in plac...
Mat Mv(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Mat > &min)
Performs the multiplication by using the sparsity pattern of the M matrix.
Mat & Utv(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Mat > &v)
Perform the sparse multiplication using the Cholesky decomposition stored in data and acting in plac...
Main pinocchio namespace.