stride.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2014-2019, CNRS
3  * Copyright 2018-2023, INRIA
4  */
5 
6 #ifndef __eigenpy_stride_hpp__
7 #define __eigenpy_stride_hpp__
8 
9 #include <eigenpy/fwd.hpp>
10 
11 namespace eigenpy {
12 
13 template <typename MatType, int InnerStride, int OuterStride,
14  bool IsVectorAtCompileTime = MatType::IsVectorAtCompileTime>
16  typedef Eigen::Stride<OuterStride, InnerStride> type;
17 };
18 
19 template <typename MatType, int InnerStride, int OuterStride>
20 struct stride_type_matrix<MatType, InnerStride, OuterStride, true> {
21  typedef Eigen::InnerStride<InnerStride> type;
22 };
23 
24 template <typename EigenType, int InnerStride, int OuterStride,
25  typename BaseType = typename get_eigen_base_type<EigenType>::type>
26 struct stride_type;
27 
28 template <typename MatrixType, int InnerStride, int OuterStride>
29 struct stride_type<MatrixType, InnerStride, OuterStride,
30  Eigen::MatrixBase<MatrixType> > {
31  typedef
34 };
35 
36 template <typename MatrixType, int InnerStride, int OuterStride>
37 struct stride_type<const MatrixType, InnerStride, OuterStride,
38  const Eigen::MatrixBase<MatrixType> > {
39  typedef typename stride_type_matrix<const MatrixType, InnerStride,
40  OuterStride>::type type;
41 };
42 
43 #ifdef EIGENPY_WITH_TENSOR_SUPPORT
44 template <typename TensorType, int InnerStride, int OuterStride>
45 struct stride_type<TensorType, InnerStride, OuterStride,
46  Eigen::TensorBase<TensorType> > {
47  typedef Eigen::Stride<OuterStride, InnerStride> type;
48 };
49 
50 template <typename TensorType, int InnerStride, int OuterStride>
51 struct stride_type<const TensorType, InnerStride, OuterStride,
52  const Eigen::TensorBase<TensorType> > {
53  typedef Eigen::Stride<OuterStride, InnerStride> type;
54 };
55 #endif
56 
57 template <typename EigenType, int InnerStride = Eigen::Dynamic,
58  int OuterStride = Eigen::Dynamic>
59 struct StrideType {
61 };
62 
63 } // namespace eigenpy
64 
65 #endif // ifndef __eigenpy_stride_hpp__
stride_type_matrix< MatrixType, InnerStride, OuterStride >::type type
Definition: stride.hpp:33
Definition: complex.cpp:7
Eigen::Stride< OuterStride, InnerStride > type
Definition: stride.hpp:16
stride_type< EigenType, InnerStride, OuterStride >::type type
Definition: stride.hpp:60
stride_type_matrix< const MatrixType, InnerStride, OuterStride >::type type
Definition: stride.hpp:40
boost::mpl::if_< boost::is_const< typename boost::remove_reference< EigenType >::type >, const _type, _type >::type type
Definition: fwd.hpp:152


eigenpy
Author(s): Justin Carpentier, Nicolas Mansard
autogenerated on Fri Jun 2 2023 02:10:26