pinocchio  2.6.3
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
eigen-fix.hpp
1 //
2 // Copyright (c) 2017-2018 CNRS
3 //
4 
5 #ifndef __pinocchio_utils_eigen_fix_hpp__
6 #define __pinocchio_utils_eigen_fix_hpp__
7 
8 #if EIGEN_VERSION_AT_LEAST(3,2,90) && !EIGEN_VERSION_AT_LEAST(3,3,0)
9 namespace pinocchio
10 {
11  namespace internal
12  {
14  template<typename XprType> struct size_of_xpr_at_compile_time
15  {
16  enum { ret = Eigen::internal::size_at_compile_time<Eigen::internal::traits<XprType>::RowsAtCompileTime,Eigen::internal::traits<XprType>::ColsAtCompileTime>::ret };
17  };
18  }
19 }
20 #endif
21 
22 namespace pinocchio
23 {
24  namespace fix { namespace Eigen { namespace internal {
25 
26  /* plain_matrix_type_row_major : same as plain_matrix_type but guaranteed to be row-major
27  */
28  template<typename T>
29  struct plain_matrix_type_row_major
30  {
31  enum { Rows = ::Eigen::internal::traits<T>::RowsAtCompileTime,
32  Cols = ::Eigen::internal::traits<T>::ColsAtCompileTime,
33  MaxRows = ::Eigen::internal::traits<T>::MaxRowsAtCompileTime,
34  MaxCols = ::Eigen::internal::traits<T>::MaxColsAtCompileTime
35  };
36  typedef ::Eigen::Matrix<typename ::Eigen::internal::traits<T>::Scalar,
37  Rows,
38  Cols,
39  (MaxCols==1&&MaxRows!=1) ? ::Eigen::ColMajor : ::Eigen::RowMajor,
40  MaxRows,
41  MaxCols
42  > type;
43  };
44 
45  } } } // namespace fix::Eigen::internal
46 } // namespace pinocchio
47 
48 #endif // ifndef __pinocchio_utils_eigen_fix_hpp__
49 
pinocchio
Main pinocchio namespace.
Definition: treeview.dox:24