Skip to content

Commit 7c81b8a

Browse files
committed
core: expose long double and complex long double types
1 parent 0ef1b27 commit 7c81b8a

File tree

1 file changed

+68
-1
lines changed

1 file changed

+68
-1
lines changed

src/eigenpy.cpp

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,39 @@
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+
}
41+
942
namespace eigenpy
1043
{
1144

@@ -36,114 +69,148 @@ namespace eigenpy
3669

3770
bp::def("seed",&seed,bp::arg("seed_value"),
3871
"Initialize the pseudo-random number generator with the argument seed_value.");
39-
72+
73+
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix2ld);
4074
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix2d);
4175
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix2f);
4276
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix2i);
4377
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix2cf);
4478
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix2cd);
79+
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix2cld);
4580

81+
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix2Xld);
4682
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix2Xd);
4783
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix2Xf);
4884
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix2Xi);
4985
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix2Xcf);
5086
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix2Xcd);
87+
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix2Xcld);
5188

89+
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix3ld);
5290
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix3d);
5391
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix3f);
5492
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix3i);
5593
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix3cf);
5694
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix3cd);
95+
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix3cld);
5796

5897
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix3Xd);
5998
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix3Xf);
6099
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix3Xi);
61100
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix3Xcf);
62101
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix3Xcd);
102+
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix3Xcld);
63103

104+
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix4ld);
64105
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix4d);
65106
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix4f);
66107
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix4i);
67108
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix4cf);
68109
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix4cd);
110+
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix4cld);
69111

112+
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix4Xld);
70113
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix4Xd);
71114
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix4Xf);
72115
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix4Xi);
73116
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix4Xcf);
74117
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix4Xcd);
118+
ENABLE_SPECIFIC_MATRIX_TYPE(Matrix4Xcld);
75119

120+
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX2ld);
76121
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX2d);
77122
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX2f);
78123
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX2i);
79124
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX2cf);
80125
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX2cd);
126+
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX2cld);
81127

128+
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX3ld);
82129
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX3d);
83130
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX3f);
84131
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX3i);
85132
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX3cf);
86133
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX3cd);
134+
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX3cld);
87135

136+
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX4ld);
88137
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX4d);
89138
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX4f);
90139
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX4i);
91140
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX4cf);
92141
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX4cd);
142+
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixX4cld);
93143

144+
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixXld);
94145
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixXd);
95146
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixXf);
96147
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixXi);
97148
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixXcf);
98149
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixXcd);
150+
ENABLE_SPECIFIC_MATRIX_TYPE(MatrixXcld);
99151

152+
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector2ld);
100153
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector2d);
101154
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector2f);
102155
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector2i);
103156
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector2cf);
104157
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector2cd);
105158

159+
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector3ld);
106160
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector3d);
107161
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector3f);
108162
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector3i);
109163
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector3cf);
110164
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector3cd);
165+
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector3cld);
111166

167+
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector4ld);
112168
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector4d);
113169
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector4f);
114170
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector4i);
115171
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector4cf);
116172
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector4cd);
173+
ENABLE_SPECIFIC_MATRIX_TYPE(RowVector4cld);
117174

175+
ENABLE_SPECIFIC_MATRIX_TYPE(RowVectorXld);
118176
ENABLE_SPECIFIC_MATRIX_TYPE(RowVectorXd);
119177
ENABLE_SPECIFIC_MATRIX_TYPE(RowVectorXf);
120178
ENABLE_SPECIFIC_MATRIX_TYPE(RowVectorXi);
121179
ENABLE_SPECIFIC_MATRIX_TYPE(RowVectorXcf);
122180
ENABLE_SPECIFIC_MATRIX_TYPE(RowVectorXcd);
181+
ENABLE_SPECIFIC_MATRIX_TYPE(RowVectorXcld);
123182

183+
ENABLE_SPECIFIC_MATRIX_TYPE(Vector2ld);
124184
ENABLE_SPECIFIC_MATRIX_TYPE(Vector2d);
125185
ENABLE_SPECIFIC_MATRIX_TYPE(Vector2f);
126186
ENABLE_SPECIFIC_MATRIX_TYPE(Vector2i);
127187
ENABLE_SPECIFIC_MATRIX_TYPE(Vector2cf);
128188
ENABLE_SPECIFIC_MATRIX_TYPE(Vector2cd);
189+
ENABLE_SPECIFIC_MATRIX_TYPE(Vector2cld);
129190

191+
ENABLE_SPECIFIC_MATRIX_TYPE(Vector3ld);
130192
ENABLE_SPECIFIC_MATRIX_TYPE(Vector3d);
131193
ENABLE_SPECIFIC_MATRIX_TYPE(Vector3f);
132194
ENABLE_SPECIFIC_MATRIX_TYPE(Vector3i);
133195
ENABLE_SPECIFIC_MATRIX_TYPE(Vector3cf);
134196
ENABLE_SPECIFIC_MATRIX_TYPE(Vector3cd);
197+
ENABLE_SPECIFIC_MATRIX_TYPE(Vector3cld);
135198

199+
ENABLE_SPECIFIC_MATRIX_TYPE(Vector4ld);
136200
ENABLE_SPECIFIC_MATRIX_TYPE(Vector4d);
137201
ENABLE_SPECIFIC_MATRIX_TYPE(Vector4f);
138202
ENABLE_SPECIFIC_MATRIX_TYPE(Vector4i);
139203
ENABLE_SPECIFIC_MATRIX_TYPE(Vector4cf);
140204
ENABLE_SPECIFIC_MATRIX_TYPE(Vector4cd);
205+
ENABLE_SPECIFIC_MATRIX_TYPE(Vector4cld);
141206

207+
ENABLE_SPECIFIC_MATRIX_TYPE(VectorXld);
142208
ENABLE_SPECIFIC_MATRIX_TYPE(VectorXd);
143209
ENABLE_SPECIFIC_MATRIX_TYPE(VectorXf);
144210
ENABLE_SPECIFIC_MATRIX_TYPE(VectorXi);
145211
ENABLE_SPECIFIC_MATRIX_TYPE(VectorXcf);
146212
ENABLE_SPECIFIC_MATRIX_TYPE(VectorXcd);
213+
ENABLE_SPECIFIC_MATRIX_TYPE(VectorXcld);
147214
}
148215

149216
} // namespace eigenpy

0 commit comments

Comments
 (0)