mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-06-04 18:54:00 +08:00
Merged in ra_bauke/eigen (pull request PR-180)
alias template for matrix and array classes, see also bug #864 Approved-by: Heiko Bauke <heiko.bauke@mail.de>
This commit is contained in:
commit
7195f008ce
@ -350,7 +350,36 @@ EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(std::complex<double>, cd)
|
|||||||
#undef EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES
|
#undef EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES
|
||||||
#undef EIGEN_MAKE_ARRAY_TYPEDEFS
|
#undef EIGEN_MAKE_ARRAY_TYPEDEFS
|
||||||
|
|
||||||
#undef EIGEN_MAKE_ARRAY_TYPEDEFS_LARGE
|
#if __cplusplus>=201103L
|
||||||
|
|
||||||
|
#define EIGEN_MAKE_TYPEDEFS(Size, SizeSuffix) \
|
||||||
|
/** \ingroup matrixtypedefs */ \
|
||||||
|
template <typename Type> \
|
||||||
|
using Array##SizeSuffix##SizeSuffix = Array<Type, Size, Size>; \
|
||||||
|
/** \ingroup matrixtypedefs */ \
|
||||||
|
template <typename Type> \
|
||||||
|
using Array##SizeSuffix = Array<Type, Size, 1>;
|
||||||
|
|
||||||
|
#define EIGEN_MAKE_FIXED_TYPEDEFS(Size) \
|
||||||
|
/** \ingroup matrixtypedefs */ \
|
||||||
|
template <typename Type> \
|
||||||
|
using Array##Size##X = Array<Type, Size, Dynamic>; \
|
||||||
|
/** \ingroup matrixtypedefs */ \
|
||||||
|
template <typename Type> \
|
||||||
|
using Array##X##Size = Array<Type, Dynamic, Size>;
|
||||||
|
|
||||||
|
EIGEN_MAKE_TYPEDEFS(2, 2)
|
||||||
|
EIGEN_MAKE_TYPEDEFS(3, 3)
|
||||||
|
EIGEN_MAKE_TYPEDEFS(4, 4)
|
||||||
|
EIGEN_MAKE_TYPEDEFS(Dynamic, X)
|
||||||
|
EIGEN_MAKE_FIXED_TYPEDEFS(2)
|
||||||
|
EIGEN_MAKE_FIXED_TYPEDEFS(3)
|
||||||
|
EIGEN_MAKE_FIXED_TYPEDEFS(4)
|
||||||
|
|
||||||
|
#undef EIGEN_MAKE_TYPEDEFS
|
||||||
|
#undef EIGEN_MAKE_FIXED_TYPEDEFS
|
||||||
|
|
||||||
|
#endif // __cplusplus>=201103L
|
||||||
|
|
||||||
#define EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, SizeSuffix) \
|
#define EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, SizeSuffix) \
|
||||||
using Eigen::Matrix##SizeSuffix##TypeSuffix; \
|
using Eigen::Matrix##SizeSuffix##TypeSuffix; \
|
||||||
|
@ -499,6 +499,40 @@ EIGEN_MAKE_TYPEDEFS_ALL_SIZES(std::complex<double>, cd)
|
|||||||
#undef EIGEN_MAKE_TYPEDEFS
|
#undef EIGEN_MAKE_TYPEDEFS
|
||||||
#undef EIGEN_MAKE_FIXED_TYPEDEFS
|
#undef EIGEN_MAKE_FIXED_TYPEDEFS
|
||||||
|
|
||||||
|
#if __cplusplus>=201103L
|
||||||
|
|
||||||
|
#define EIGEN_MAKE_TYPEDEFS(Size, SizeSuffix) \
|
||||||
|
/** \ingroup matrixtypedefs */ \
|
||||||
|
template <typename Type> \
|
||||||
|
using Matrix##SizeSuffix = Matrix<Type, Size, Size>; \
|
||||||
|
/** \ingroup matrixtypedefs */ \
|
||||||
|
template <typename Type> \
|
||||||
|
using Vector##SizeSuffix = Matrix<Type, Size, 1>; \
|
||||||
|
/** \ingroup matrixtypedefs */ \
|
||||||
|
template <typename Type> \
|
||||||
|
using RowVector##SizeSuffix = Matrix<Type, 1, Size>;
|
||||||
|
|
||||||
|
#define EIGEN_MAKE_FIXED_TYPEDEFS(Size) \
|
||||||
|
/** \ingroup matrixtypedefs */ \
|
||||||
|
template <typename Type> \
|
||||||
|
using Matrix##Size##X = Matrix<Type, Size, Dynamic>; \
|
||||||
|
/** \ingroup matrixtypedefs */ \
|
||||||
|
template <typename Type> \
|
||||||
|
using Matrix##X##Size = Matrix<Type, Dynamic, Size>;
|
||||||
|
|
||||||
|
EIGEN_MAKE_TYPEDEFS(2, 2)
|
||||||
|
EIGEN_MAKE_TYPEDEFS(3, 3)
|
||||||
|
EIGEN_MAKE_TYPEDEFS(4, 4)
|
||||||
|
EIGEN_MAKE_TYPEDEFS(Dynamic, X)
|
||||||
|
EIGEN_MAKE_FIXED_TYPEDEFS(2)
|
||||||
|
EIGEN_MAKE_FIXED_TYPEDEFS(3)
|
||||||
|
EIGEN_MAKE_FIXED_TYPEDEFS(4)
|
||||||
|
|
||||||
|
#undef EIGEN_MAKE_TYPEDEFS
|
||||||
|
#undef EIGEN_MAKE_FIXED_TYPEDEFS
|
||||||
|
|
||||||
|
#endif // __cplusplus>=201103L
|
||||||
|
|
||||||
} // end namespace Eigen
|
} // end namespace Eigen
|
||||||
|
|
||||||
#endif // EIGEN_MATRIX_H
|
#endif // EIGEN_MATRIX_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user