cholesky.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2015-2019 CNRS INRIA
3 //
4 
5 #ifndef __pinocchio_cholesky_hpp__
6 #define __pinocchio_cholesky_hpp__
7 
10 
11 namespace pinocchio
12 {
13  namespace cholesky
14  {
15 
36  template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl>
38  const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
39  DataTpl<Scalar, Options, JointCollectionTpl> & data);
40 
59  template<
60  typename Scalar,
61  int Options,
62  template<typename, int>
63  class JointCollectionTpl,
64  typename Mat>
65  Mat & solve(
66  const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
67  const DataTpl<Scalar, Options, JointCollectionTpl> & data,
68  const Eigen::MatrixBase<Mat> & y);
69 
82  template<
83  typename Scalar,
84  int Options,
85  template<typename, int>
86  class JointCollectionTpl,
87  typename Mat>
88  typename PINOCCHIO_EIGEN_PLAIN_TYPE(Mat) Mv(
91  const Eigen::MatrixBase<Mat> & min);
92 
106  template<
107  typename Scalar,
108  int Options,
109  template<typename, int>
110  class JointCollectionTpl,
111  typename Mat,
112  typename MatRes>
113  MatRes & Mv(
116  const Eigen::MatrixBase<Mat> & min,
117  const Eigen::MatrixBase<MatRes> & mout);
118 
131  template<
132  typename Scalar,
133  int Options,
134  template<typename, int>
135  class JointCollectionTpl,
136  typename Mat>
137  Mat & UDUtv(
140  const Eigen::MatrixBase<Mat> & m);
141 
154  template<
155  typename Scalar,
156  int Options,
157  template<typename, int>
158  class JointCollectionTpl,
159  typename Mat>
160  Mat & Uv(
163  const Eigen::MatrixBase<Mat> & v);
164 
178  template<
179  typename Scalar,
180  int Options,
181  template<typename, int>
182  class JointCollectionTpl,
183  typename Mat>
184  Mat & Utv(
187  const Eigen::MatrixBase<Mat> & v);
188 
204  template<
205  typename Scalar,
206  int Options,
207  template<typename, int>
208  class JointCollectionTpl,
209  typename Mat>
210  Mat & Uiv(
213  const Eigen::MatrixBase<Mat> & v);
214 
231  template<
232  typename Scalar,
233  int Options,
234  template<typename, int>
235  class JointCollectionTpl,
236  typename Mat>
237  Mat & Utiv(
240  const Eigen::MatrixBase<Mat> & v);
241 
254 
255  // TODO Clearify, it seems it is exactly the same as solve in l. 54
256  template<
257  typename Scalar,
258  int Options,
259  template<typename, int>
260  class JointCollectionTpl,
261  typename Mat>
262  Mat & solve(
265  const Eigen::MatrixBase<Mat> & v);
266 
279  template<
280  typename Scalar,
281  int Options,
282  template<typename, int>
283  class JointCollectionTpl,
284  typename Mat>
285  Mat & computeMinv(
288  const Eigen::MatrixBase<Mat> & Minv);
289 
302  template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl>
306  {
307  return computeMinv(model, data, data.Minv);
308  }
309 
310  } // namespace cholesky
311 } // namespace pinocchio
312 
313 /* --- Details -------------------------------------------------------------------- */
314 /* --- Details -------------------------------------------------------------------- */
315 /* --- Details -------------------------------------------------------------------- */
316 #include "pinocchio/algorithm/cholesky.hxx"
317 
318 #if PINOCCHIO_ENABLE_TEMPLATE_INSTANTIATION
319  #include "pinocchio/algorithm/cholesky.txx"
320 #endif // PINOCCHIO_ENABLE_TEMPLATE_INSTANTIATION
321 
322 #endif // ifndef __pinocchio_cholesky_hpp__
pinocchio::cholesky::Options
Options
Definition: cholesky.hpp:89
pinocchio::DataTpl::MatrixXs
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Options > MatrixXs
Definition: multibody/data.hpp:74
pinocchio::DataTpl
Definition: context/generic.hpp:25
pinocchio::cholesky::Uv
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...
pinocchio::DataTpl::RowMatrixXs
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor|Options > RowMatrixXs
Definition: multibody/data.hpp:98
model.hpp
pinocchio::python::Scalar
context::Scalar Scalar
Definition: admm-solver.cpp:29
pinocchio::cholesky::UDUtv
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.
pinocchio::cholesky::min
JointCollectionTpl const DataTpl< Scalar, Options, JointCollectionTpl > const Eigen::MatrixBase< Mat > & min
Definition: cholesky.hpp:91
pinocchio::cholesky::solve
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 ....
data.hpp
pinocchio::cholesky::PINOCCHIO_EIGEN_PLAIN_TYPE
PINOCCHIO_EIGEN_PLAIN_TYPE(Mat) Mv(const ModelTpl< Scalar
Performs the multiplication by using the sparsity pattern of the M matrix.
pinocchio::cholesky::Uiv
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.
pinocchio::v
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > const Eigen::MatrixBase< TangentVectorType > & v
Definition: joint-configuration.hpp:1118
pinocchio::cholesky::decompose
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.
pinocchio::cholesky::computeMinv
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.
pinocchio::cholesky::model
JointCollectionTpl & model
Definition: cholesky.hpp:89
pinocchio::cholesky::data
JointCollectionTpl const DataTpl< Scalar, Options, JointCollectionTpl > & data
Definition: cholesky.hpp:90
pinocchio::cholesky::Mv
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 by using the sparsity pattern of the M matrix.
pinocchio::ModelTpl
Definition: context/generic.hpp:20
pinocchio::cholesky::Utv
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...
pinocchio::cholesky::Utiv
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.
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:27


pinocchio
Author(s):
autogenerated on Sat Jun 1 2024 02:40:32