66#include " eigenpy/eigenpy.hpp"
77#include < stdlib.h>
88
9- namespace Eigen
10- {
11- #define EIGEN_MAKE_TYPEDEFS (Type, TypeSuffix, Size, SizeSuffix ) \
12- /* * \ingroup matrixtypedefs */ \
13- typedef Matrix<Type, Size, Size> Matrix##SizeSuffix##TypeSuffix; \
14- /* * \ingroup matrixtypedefs */ \
15- typedef Matrix<Type, Size, 1 > Vector##SizeSuffix##TypeSuffix; \
16- /* * \ingroup matrixtypedefs */ \
17- typedef Matrix<Type, 1 , Size> RowVector##SizeSuffix##TypeSuffix;
18-
19- #define EIGEN_MAKE_FIXED_TYPEDEFS (Type, TypeSuffix, Size ) \
20- /* * \ingroup matrixtypedefs */ \
21- typedef Matrix<Type, Size, Dynamic> Matrix##Size##X##TypeSuffix; \
22- /* * \ingroup matrixtypedefs */ \
23- typedef Matrix<Type, Dynamic, Size> Matrix##X##Size##TypeSuffix;
24-
25- #define EIGEN_MAKE_TYPEDEFS_ALL_SIZES (Type, TypeSuffix ) \
26- EIGEN_MAKE_TYPEDEFS (Type, TypeSuffix, 2 , 2 ) \
27- EIGEN_MAKE_TYPEDEFS (Type, TypeSuffix, 3 , 3 ) \
28- EIGEN_MAKE_TYPEDEFS (Type, TypeSuffix, 4 , 4 ) \
29- EIGEN_MAKE_TYPEDEFS (Type, TypeSuffix, Dynamic, X) \
30- EIGEN_MAKE_FIXED_TYPEDEFS (Type, TypeSuffix, 2 ) \
31- EIGEN_MAKE_FIXED_TYPEDEFS (Type, TypeSuffix, 3 ) \
32- EIGEN_MAKE_FIXED_TYPEDEFS (Type, TypeSuffix, 4 )
33-
34- EIGEN_MAKE_TYPEDEFS_ALL_SIZES (long double , ld)
35- EIGEN_MAKE_TYPEDEFS_ALL_SIZES (std::complex <long double >, cld)
36-
37- #undef EIGEN_MAKE_TYPEDEFS_ALL_SIZES
38- #undef EIGEN_MAKE_TYPEDEFS
39- #undef EIGEN_MAKE_FIXED_TYPEDEFS
40- }
419
4210namespace eigenpy
4311{
@@ -47,6 +15,16 @@ namespace eigenpy
4715 srand (seed_value);
4816 }
4917
18+ void exposeMatrixInt ();
19+ void exposeMatrixLong ();
20+ void exposeMatrixFloat ();
21+ void exposeMatrixDouble ();
22+ void exposeMatrixLongDouble ();
23+
24+ void exposeMatrixComplexFloat ();
25+ void exposeMatrixComplexDouble ();
26+ void exposeMatrixComplexLongDouble ();
27+
5028 /* Enable Eigen-Numpy serialization for a set of standard MatrixBase instances. */
5129 void enableEigenPy ()
5230 {
@@ -70,147 +48,15 @@ namespace eigenpy
7048 bp::def (" seed" ,&seed,bp::arg (" seed_value" ),
7149 " Initialize the pseudo-random number generator with the argument seed_value." );
7250
73- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix2ld);
74- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix2d);
75- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix2f);
76- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix2i);
77- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix2cf);
78- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix2cd);
79- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix2cld);
80-
81- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix2Xld);
82- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix2Xd);
83- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix2Xf);
84- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix2Xi);
85- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix2Xcf);
86- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix2Xcd);
87- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix2Xcld);
88-
89- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix3ld);
90- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix3d);
91- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix3f);
92- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix3i);
93- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix3cf);
94- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix3cd);
95- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix3cld);
96-
97- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix3Xd);
98- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix3Xf);
99- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix3Xi);
100- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix3Xcf);
101- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix3Xcd);
102- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix3Xcld);
103-
104- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix4ld);
105- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix4d);
106- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix4f);
107- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix4i);
108- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix4cf);
109- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix4cd);
110- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix4cld);
111-
112- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix4Xld);
113- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix4Xd);
114- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix4Xf);
115- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix4Xi);
116- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix4Xcf);
117- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix4Xcd);
118- ENABLE_SPECIFIC_MATRIX_TYPE (Matrix4Xcld);
119-
120- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX2ld);
121- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX2d);
122- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX2f);
123- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX2i);
124- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX2cf);
125- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX2cd);
126- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX2cld);
127-
128- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX3ld);
129- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX3d);
130- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX3f);
131- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX3i);
132- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX3cf);
133- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX3cd);
134- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX3cld);
135-
136- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX4ld);
137- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX4d);
138- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX4f);
139- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX4i);
140- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX4cf);
141- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX4cd);
142- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixX4cld);
143-
144- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixXld);
145- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixXd);
146- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixXf);
147- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixXi);
148- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixXcf);
149- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixXcd);
150- ENABLE_SPECIFIC_MATRIX_TYPE (MatrixXcld);
151-
152- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector2ld);
153- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector2d);
154- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector2f);
155- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector2i);
156- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector2cf);
157- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector2cd);
158-
159- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector3ld);
160- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector3d);
161- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector3f);
162- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector3i);
163- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector3cf);
164- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector3cd);
165- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector3cld);
166-
167- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector4ld);
168- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector4d);
169- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector4f);
170- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector4i);
171- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector4cf);
172- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector4cd);
173- ENABLE_SPECIFIC_MATRIX_TYPE (RowVector4cld);
174-
175- ENABLE_SPECIFIC_MATRIX_TYPE (RowVectorXld);
176- ENABLE_SPECIFIC_MATRIX_TYPE (RowVectorXd);
177- ENABLE_SPECIFIC_MATRIX_TYPE (RowVectorXf);
178- ENABLE_SPECIFIC_MATRIX_TYPE (RowVectorXi);
179- ENABLE_SPECIFIC_MATRIX_TYPE (RowVectorXcf);
180- ENABLE_SPECIFIC_MATRIX_TYPE (RowVectorXcd);
181- ENABLE_SPECIFIC_MATRIX_TYPE (RowVectorXcld);
182-
183- ENABLE_SPECIFIC_MATRIX_TYPE (Vector2ld);
184- ENABLE_SPECIFIC_MATRIX_TYPE (Vector2d);
185- ENABLE_SPECIFIC_MATRIX_TYPE (Vector2f);
186- ENABLE_SPECIFIC_MATRIX_TYPE (Vector2i);
187- ENABLE_SPECIFIC_MATRIX_TYPE (Vector2cf);
188- ENABLE_SPECIFIC_MATRIX_TYPE (Vector2cd);
189- ENABLE_SPECIFIC_MATRIX_TYPE (Vector2cld);
190-
191- ENABLE_SPECIFIC_MATRIX_TYPE (Vector3ld);
192- ENABLE_SPECIFIC_MATRIX_TYPE (Vector3d);
193- ENABLE_SPECIFIC_MATRIX_TYPE (Vector3f);
194- ENABLE_SPECIFIC_MATRIX_TYPE (Vector3i);
195- ENABLE_SPECIFIC_MATRIX_TYPE (Vector3cf);
196- ENABLE_SPECIFIC_MATRIX_TYPE (Vector3cd);
197- ENABLE_SPECIFIC_MATRIX_TYPE (Vector3cld);
198-
199- ENABLE_SPECIFIC_MATRIX_TYPE (Vector4ld);
200- ENABLE_SPECIFIC_MATRIX_TYPE (Vector4d);
201- ENABLE_SPECIFIC_MATRIX_TYPE (Vector4f);
202- ENABLE_SPECIFIC_MATRIX_TYPE (Vector4i);
203- ENABLE_SPECIFIC_MATRIX_TYPE (Vector4cf);
204- ENABLE_SPECIFIC_MATRIX_TYPE (Vector4cd);
205- ENABLE_SPECIFIC_MATRIX_TYPE (Vector4cld);
51+ exposeMatrixInt ();
52+ exposeMatrixLong ();
53+ exposeMatrixFloat ();
54+ exposeMatrixDouble ();
55+ exposeMatrixLongDouble ();
20656
207- ENABLE_SPECIFIC_MATRIX_TYPE (VectorXld);
208- ENABLE_SPECIFIC_MATRIX_TYPE (VectorXd);
209- ENABLE_SPECIFIC_MATRIX_TYPE (VectorXf);
210- ENABLE_SPECIFIC_MATRIX_TYPE (VectorXi);
211- ENABLE_SPECIFIC_MATRIX_TYPE (VectorXcf);
212- ENABLE_SPECIFIC_MATRIX_TYPE (VectorXcd);
213- ENABLE_SPECIFIC_MATRIX_TYPE (VectorXcld);
57+ exposeMatrixComplexFloat ();
58+ exposeMatrixComplexDouble ();
59+ exposeMatrixComplexLongDouble ();
21460 }
21561
21662} // namespace eigenpy
0 commit comments