eigenpy 3.12.0
Bindings between Numpy and Eigen using Boost.Python
Loading...
Searching...
No Matches
eigen-typedef.hpp
1//
2// Copyright (c) 2020-2023 INRIA
3//
4
5#ifndef __eigenpy_eigen_typedef_hpp__
6#define __eigenpy_eigen_typedef_hpp__
7
8#include "eigenpy/fwd.hpp"
9
10#define EIGENPY_MAKE_TYPEDEFS(Type, Options, TypeSuffix, Size, SizeSuffix) \
11 \
12 typedef Eigen::Matrix<Type, Size, Size, Options> \
13 Matrix##SizeSuffix##TypeSuffix; \
14 \
15 typedef Eigen::Matrix<Type, Size, 1> Vector##SizeSuffix##TypeSuffix; \
16 \
17 typedef Eigen::Matrix<Type, 1, Size> RowVector##SizeSuffix##TypeSuffix;
18
19#define EIGENPY_MAKE_FIXED_TYPEDEFS(Type, Options, TypeSuffix, Size) \
20 \
21 typedef Eigen::Matrix<Type, Size, Eigen::Dynamic, Options> \
22 Matrix##Size##X##TypeSuffix; \
23 \
24 typedef Eigen::Matrix<Type, Eigen::Dynamic, Size, Options> \
25 Matrix##X##Size##TypeSuffix;
26
27#define EIGENPY_MAKE_TYPEDEFS_ALL_SIZES(Type, Options, TypeSuffix) \
28 EIGENPY_MAKE_TYPEDEFS(Type, Options, TypeSuffix, 2, 2) \
29 EIGENPY_MAKE_TYPEDEFS(Type, Options, TypeSuffix, 3, 3) \
30 EIGENPY_MAKE_TYPEDEFS(Type, Options, TypeSuffix, 4, 4) \
31 EIGENPY_MAKE_TYPEDEFS(Type, Options, TypeSuffix, Eigen::Dynamic, X) \
32 EIGENPY_MAKE_FIXED_TYPEDEFS(Type, Options, TypeSuffix, 2) \
33 EIGENPY_MAKE_FIXED_TYPEDEFS(Type, Options, TypeSuffix, 3) \
34 EIGENPY_MAKE_FIXED_TYPEDEFS(Type, Options, TypeSuffix, 4) \
35 EIGENPY_MAKE_TYPEDEFS(Type, Options, TypeSuffix, 1, 1) \
36 typedef Eigen::SparseMatrix<Scalar, Options> SparseMatrixX##TypeSuffix
37
38#endif // ifndef __eigenpy_eigen_typedef_hpp__