eigenpy.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2014-2019, CNRS
3  * Copyright 2018-2023, INRIA
4  */
5 
6 #ifndef __eigenpy_eigenpy_hpp__
7 #define __eigenpy_eigenpy_hpp__
8 
9 #include "eigenpy/fwd.hpp"
11 #include "eigenpy/expose.hpp"
12 
13 #define ENABLE_SPECIFIC_MATRIX_TYPE(TYPE) \
14  ::eigenpy::enableEigenPySpecific<TYPE>();
15 
16 namespace eigenpy {
17 
18 /* Enable Eigen-Numpy serialization for a set of standard MatrixBase instance.
19  */
20 void EIGENPY_DLLAPI enableEigenPy();
21 
22 /* Enable the Eigen--Numpy serialization for the templated MatType class.*/
23 template <typename MatType>
25 
26 template <typename Scalar, int Options>
27 EIGEN_DONT_INLINE void exposeType() {
28  EIGENPY_MAKE_TYPEDEFS_ALL_SIZES(Scalar, Options, s);
29 
30  EIGENPY_UNUSED_TYPE(Vector1s);
31  EIGENPY_UNUSED_TYPE(RowVector1s);
33 
35  ENABLE_SPECIFIC_MATRIX_TYPE(RowVector2s);
37  ENABLE_SPECIFIC_MATRIX_TYPE(Matrix2Xs);
38  ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX2s);
39 
41  ENABLE_SPECIFIC_MATRIX_TYPE(RowVector3s);
43  ENABLE_SPECIFIC_MATRIX_TYPE(Matrix3Xs);
44  ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX3s);
45 
47  ENABLE_SPECIFIC_MATRIX_TYPE(RowVector4s);
49  ENABLE_SPECIFIC_MATRIX_TYPE(Matrix4Xs);
50  ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX4s);
51 
53  ENABLE_SPECIFIC_MATRIX_TYPE(RowVectorXs);
55 }
56 
57 template <typename Scalar>
58 EIGEN_DONT_INLINE void exposeType() {
59  exposeType<Scalar, 0>();
60 
61 #ifdef EIGENPY_WITH_TENSOR_SUPPORT
62  enableEigenPySpecific<Eigen::Tensor<Scalar, 1> >();
63  enableEigenPySpecific<Eigen::Tensor<Scalar, 2> >();
64  enableEigenPySpecific<Eigen::Tensor<Scalar, 3> >();
65 #endif
66 }
67 
68 } // namespace eigenpy
69 
70 #include "eigenpy/details.hpp"
71 
72 #endif // ifndef __eigenpy_eigenpy_hpp__
void enableEigenPySpecific()
Definition: details.hpp:63
#define ENABLE_SPECIFIC_MATRIX_TYPE(TYPE)
Definition: eigenpy.hpp:13
EIGEN_DONT_INLINE void exposeType()
Definition: eigenpy.hpp:27
void EIGENPY_DLLAPI enableEigenPy()
Definition: eigenpy.cpp:29
#define EIGENPY_MAKE_TYPEDEFS_ALL_SIZES(Type, Options, TypeSuffix)
#define EIGENPY_UNUSED_TYPE(type)
Definition: fwd.hpp:107


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