autodiff/casadi/math/matrix.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2019-2020 INRIA
3 //
4 
5 #ifndef __pinocchio_autodiff_casadi_math_matrix_hpp__
6 #define __pinocchio_autodiff_casadi_math_matrix_hpp__
7 
9 
10 namespace pinocchio
11 {
12  namespace internal
13  {
14  template<typename Scalar>
15  struct CallCorrectMatrixInverseAccordingToScalar<::casadi::Matrix<Scalar>>
16  {
17  typedef ::casadi::Matrix<Scalar> SX;
18  template<typename MatrixIn, typename MatrixOut>
19  static void
20  run(const Eigen::MatrixBase<MatrixIn> & mat, const Eigen::MatrixBase<MatrixOut> & dest)
21  {
22  SX cs_mat(mat.rows(), mat.cols());
23  casadi::copy(mat.derived(), cs_mat);
24 
25  SX cs_mat_inv = SX::inv(cs_mat);
26 
27  MatrixOut & dest_ = PINOCCHIO_EIGEN_CONST_CAST(MatrixOut, dest);
28  casadi::copy(cs_mat_inv, dest_);
29  }
30  };
31  } // namespace internal
32 } // namespace pinocchio
33 
34 #endif // ifndef __pinocchio_autodiff_casadi_math_matrix_hpp__
PINOCCHIO_EIGEN_CONST_CAST
#define PINOCCHIO_EIGEN_CONST_CAST(TYPE, OBJ)
Macro for an automatic const_cast.
Definition: eigen-macros.hpp:51
pinocchio::internal::CallCorrectMatrixInverseAccordingToScalar<::casadi::Matrix< Scalar > >::run
static void run(const Eigen::MatrixBase< MatrixIn > &mat, const Eigen::MatrixBase< MatrixOut > &dest)
Definition: autodiff/casadi/math/matrix.hpp:20
pinocchio::internal::CallCorrectMatrixInverseAccordingToScalar
Definition: math/matrix.hpp:258
matrix.hpp
mat
mat
pinocchio::internal::CallCorrectMatrixInverseAccordingToScalar<::casadi::Matrix< Scalar > >::SX
::casadi::Matrix< Scalar > SX
Definition: autodiff/casadi/math/matrix.hpp:17
pinocchio.casadi::copy
void copy(::casadi::Matrix< Scalar > const &src, Eigen::MatrixBase< MT > &dst)
Definition: autodiff/casadi.hpp:154
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:27


pinocchio
Author(s):
autogenerated on Thu Dec 19 2024 03:41:31