pinocchio  3.7.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
 
Loading...
Searching...
No Matches
triangular-matrix.hpp
1//
2// Copyright (c) 2022-2023 INRIA
3//
4
5#ifndef __pinocchio_autodiff_casadi_math_triangular_matrix_hpp__
6#define __pinocchio_autodiff_casadi_math_triangular_matrix_hpp__
7
8#include "pinocchio/math/triangular-matrix.hpp"
9
10namespace pinocchio
11{
12
13 namespace internal
14 {
15 template<Eigen::UpLoType info, typename RhsMatrix, typename Scalar>
16 struct TriangularMatrixMatrixProduct<info, RhsMatrix, ::casadi::Matrix<Scalar>, true>
17 {
18 template<typename LhsMatrix, typename ResMat>
19 static void run(
20 const Eigen::MatrixBase<LhsMatrix> & lhs_mat,
21 const Eigen::MatrixBase<RhsMatrix> & rhs_vec,
22 const Eigen::MatrixBase<ResMat> & res)
23 {
24 res.const_cast_derived().col(0).noalias() = lhs_mat.derived() * rhs_vec.derived();
25 }
26 };
27
28 template<Eigen::UpLoType info, typename RhsMatrix, typename Scalar>
29 struct TriangularMatrixMatrixProduct<info, RhsMatrix, ::casadi::Matrix<Scalar>, false>
30 {
31 template<typename LhsMatrix, typename ResMat>
32 static void run(
33 const Eigen::MatrixBase<LhsMatrix> & lhs_mat,
34 const Eigen::MatrixBase<RhsMatrix> & rhs_mat,
35 const Eigen::MatrixBase<ResMat> & res)
36 {
37 res.const_cast_derived().noalias() = lhs_mat.derived() * rhs_mat.derived();
38 }
39 };
40 } // namespace internal
41} // namespace pinocchio
42
43#endif // #ifndef __pinocchio_autodiff_casadi_math_triangular_matrix_hpp__
Main pinocchio namespace.
Definition treeview.dox:11