diff options
Diffstat (limited to 'Eigen/src/Core/util/Macros.h')
-rw-r--r-- | Eigen/src/Core/util/Macros.h | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/Eigen/src/Core/util/Macros.h b/Eigen/src/Core/util/Macros.h index 6758d5766..d68538f1a 100644 --- a/Eigen/src/Core/util/Macros.h +++ b/Eigen/src/Core/util/Macros.h @@ -281,8 +281,7 @@ using Eigen::ei_cos; using Base::operator /=; \ EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived) -#define _EIGEN_GENERIC_PUBLIC_INTERFACE(Derived, BaseClass) \ - typedef BaseClass Base; \ +#define _EIGEN_GENERIC_PUBLIC_INTERFACE(Derived) \ typedef typename Eigen::ei_traits<Derived>::Scalar Scalar; \ typedef typename Eigen::NumTraits<Scalar>::Real RealScalar; \ typedef typename Base::PacketScalar PacketScalar; \ @@ -299,7 +298,8 @@ using Eigen::ei_cos; IsVectorAtCompileTime = Base::IsVectorAtCompileTime }; #define EIGEN_GENERIC_PUBLIC_INTERFACE(Derived) \ - _EIGEN_GENERIC_PUBLIC_INTERFACE(Derived, Eigen::MatrixBase<Derived>) + typedef Eigen::MatrixBase<Derived> Base; \ + _EIGEN_GENERIC_PUBLIC_INTERFACE(Derived) #define EIGEN_GENERIC_PUBLIC_INTERFACE_NEW(Derived) \ typedef typename Eigen::ei_traits<Derived>::Scalar Scalar; \ @@ -315,8 +315,7 @@ using Eigen::ei_cos; IsVectorAtCompileTime = Base::IsVectorAtCompileTime }; -#define _EIGEN_DENSE_PUBLIC_INTERFACE(Derived, BaseClass) \ - typedef BaseClass Base; \ +#define _EIGEN_DENSE_PUBLIC_INTERFACE(Derived) \ typedef typename Eigen::ei_traits<Derived>::Scalar Scalar; \ typedef typename Eigen::NumTraits<Scalar>::Real RealScalar; \ typedef typename Base::PacketScalar PacketScalar; \ @@ -334,7 +333,8 @@ using Eigen::ei_cos; using Base::derived; #define EIGEN_DENSE_PUBLIC_INTERFACE(Derived) \ - _EIGEN_DENSE_PUBLIC_INTERFACE(Derived, Eigen::MatrixBase<Derived>) + typedef Eigen::MatrixBase<Derived> Base; \ + _EIGEN_DENSE_PUBLIC_INTERFACE(Derived) #define EIGEN_ENUM_MIN(a,b) (((int)a <= (int)b) ? (int)a : (int)b) @@ -344,4 +344,13 @@ using Eigen::ei_cos; #define EIGEN_ENUM_MAX(a,b) (((int)a >= (int)b) ? (int)a : (int)b) #define EIGEN_LOGICAL_XOR(a,b) (((a) || (b)) && !((a) && (b))) + +#define EIGEN_MAKE_CWISE_BINARY_OP(METHOD,FUNCTOR) \ + template<typename OtherDerived> \ + inline const CwiseBinaryOp<FUNCTOR<Scalar>, Derived, OtherDerived> \ + METHOD(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const \ + { \ + return CwiseBinaryOp<FUNCTOR<Scalar>, Derived, OtherDerived>(derived(), other.derived()); \ + } + #endif // EIGEN_MACROS_H |