Cholesky decompositions. More...
Functions | |
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Mat > | |
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. More... | |
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl> | |
const DataTpl< Scalar, Options, JointCollectionTpl >::RowMatrixXs & | computeMinv (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data) |
Computes the inverse of the joint space inertia matrix M from its Cholesky factorization. The results is then directly stored in data.Minv. More... | |
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl> | |
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. More... | |
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Mat > | |
Mat | Mv (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Mat > &min) |
Performs the multiplication \( M v \) by using the sparsity pattern of the M matrix. More... | |
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Mat , typename MatRes > | |
MatRes & | Mv (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Mat > &min, const Eigen::MatrixBase< MatRes > &mout) |
Performs the multiplication \( M v \) by using the sparsity pattern of the M matrix. More... | |
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Mat > | |
Mat & | solve (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Mat > &y) |
Return the solution \(x\) of \( M x = y \) using the Cholesky decomposition stored in data given the entry \( y \). Act like solveInPlace of Eigen::LLT. More... | |
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Mat > | |
Mat & | UDUtv (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Mat > &m) |
Performs the multiplication \( M v \) by using the Cholesky decomposition of M stored in data. More... | |
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Mat > | |
Mat & | Uiv (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Mat > &v) |
Perform the pivot inversion \( U^{-1}v \) using the Cholesky decomposition stored in data and acting in place. More... | |
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Mat > | |
Mat & | Utiv (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Mat > &v) |
Perform the pivot inversion \( U^{-\top}v \) using the Cholesky decomposition stored in data and acting in place. More... | |
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Mat > | |
Mat & | Utv (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Mat > &v) |
Perform the sparse multiplication \( U^{\top}v \) using the Cholesky decomposition stored in data and acting in place. More... | |
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Mat > | |
Mat & | Uv (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Mat > &v) |
Perform the sparse multiplication \( Uv \) using the Cholesky decomposition stored in data and acting in place. More... | |
Cholesky decompositions.
Mat& pinocchio::cholesky::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.
JointCollection | Collection of Joint types. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[out] | Minv | The output matrix where the result is stored. |
const DataTpl<Scalar, Options, JointCollectionTpl>::RowMatrixXs& pinocchio::cholesky::computeMinv | ( | const ModelTpl< Scalar, Options, JointCollectionTpl > & | model, |
DataTpl< Scalar, Options, JointCollectionTpl > & | data | ||
) |
Computes the inverse of the joint space inertia matrix M from its Cholesky factorization. The results is then directly stored in data.Minv.
JointCollection | Collection of Joint types. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
Definition at line 293 of file cholesky.hpp.
|
inline |
Compute the Cholesky decomposition of the joint space inertia matrix M contained in data.
The result stored in data.U and data.D matrices. One can retrieve the matrice M by performing the computation data.U * data.D * data.U.transpose()
See https://en.wikipedia.org/wiki/Cholesky_decomposition for futher details.
JointCollection | Collection of Joint types. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
Mat pinocchio::cholesky::Mv | ( | const ModelTpl< Scalar, Options, JointCollectionTpl > & | model, |
const DataTpl< Scalar, Options, JointCollectionTpl > & | data, | ||
const Eigen::MatrixBase< Mat > & | min | ||
) |
Performs the multiplication \( M v \) by using the sparsity pattern of the M matrix.
JointCollection | Collection of Joint types. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | min | The input matrix to multiply with data.M. |
MatRes& pinocchio::cholesky::Mv | ( | const ModelTpl< Scalar, Options, JointCollectionTpl > & | model, |
const DataTpl< Scalar, Options, JointCollectionTpl > & | data, | ||
const Eigen::MatrixBase< Mat > & | min, | ||
const Eigen::MatrixBase< MatRes > & | mout | ||
) |
Performs the multiplication \( M v \) by using the sparsity pattern of the M matrix.
JointCollection | Collection of Joint types. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | min | The input matrix to multiply with data.M. |
[out] | mout | The output matrix where the result of \( Mv \) is stored. |
Mat & solve | ( | const ModelTpl< Scalar, Options, JointCollectionTpl > & | model, |
const DataTpl< Scalar, Options, JointCollectionTpl > & | data, | ||
const Eigen::MatrixBase< Mat > & | y | ||
) |
Return the solution \(x\) of \( M x = y \) using the Cholesky decomposition stored in data given the entry \( y \). Act like solveInPlace of Eigen::LLT.
Perform the sparse inversion \( M^{-1}v \) using the Cholesky decomposition stored in data and acting in place.
JointCollection | Collection of Joint types. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in,out] | y | The input matrix to inverse which also contains the result \(x\) of the inversion. |
JointCollection | Collection of Joint types. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in,out] | v | The input matrix to multiply with data.M^{-1} and also storing the result. |
Mat& pinocchio::cholesky::UDUtv | ( | const ModelTpl< Scalar, Options, JointCollectionTpl > & | model, |
const DataTpl< Scalar, Options, JointCollectionTpl > & | data, | ||
const Eigen::MatrixBase< Mat > & | m | ||
) |
Performs the multiplication \( M v \) by using the Cholesky decomposition of M stored in data.
JointCollection | Collection of Joint types. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in,out] | m | The input matrix where the result of \( Mv \) is stored. |
Mat& pinocchio::cholesky::Uiv | ( | const ModelTpl< Scalar, Options, JointCollectionTpl > & | model, |
const DataTpl< Scalar, Options, JointCollectionTpl > & | data, | ||
const Eigen::MatrixBase< Mat > & | v | ||
) |
Perform the pivot inversion \( U^{-1}v \) using the Cholesky decomposition stored in data and acting in place.
JointCollection | Collection of Joint types. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in,out] | v | The input matrix to multiply with data.U^{-1} and also storing the result. |
Mat& pinocchio::cholesky::Utiv | ( | const ModelTpl< Scalar, Options, JointCollectionTpl > & | model, |
const DataTpl< Scalar, Options, JointCollectionTpl > & | data, | ||
const Eigen::MatrixBase< Mat > & | v | ||
) |
Perform the pivot inversion \( U^{-\top}v \) using the Cholesky decomposition stored in data and acting in place.
JointCollection | Collection of Joint types. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in,out] | v | The input matrix to multiply with data.U^{-\top} and also storing the result. |
Mat& pinocchio::cholesky::Utv | ( | const ModelTpl< Scalar, Options, JointCollectionTpl > & | model, |
const DataTpl< Scalar, Options, JointCollectionTpl > & | data, | ||
const Eigen::MatrixBase< Mat > & | v | ||
) |
Perform the sparse multiplication \( U^{\top}v \) using the Cholesky decomposition stored in data and acting in place.
JointCollection | Collection of Joint types. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in,out] | v | The input matrix to multiply with data.U.tranpose() and also storing the result. |
Mat& pinocchio::cholesky::Uv | ( | const ModelTpl< Scalar, Options, JointCollectionTpl > & | model, |
const DataTpl< Scalar, Options, JointCollectionTpl > & | data, | ||
const Eigen::MatrixBase< Mat > & | v | ||
) |
Perform the sparse multiplication \( Uv \) using the Cholesky decomposition stored in data and acting in place.
JointCollection | Collection of Joint types. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in,out] | v | The input matrix to multiply with data.U and also storing the result. |