diff options
author | 2014-08-01 16:49:44 +0200 | |
---|---|---|
committer | 2014-08-01 16:49:44 +0200 | |
commit | f25338f4d76dff13a9810996165ad7b465a15c88 (patch) | |
tree | 5a585efb764707527b9fd0c25d8db0fd822b8c08 /Eigen/src/Geometry/Homogeneous.h | |
parent | 51357a6622d30aa8cb799cf2ed69c96cf94007b7 (diff) |
Fix nesting of Homogenous evaluator
Diffstat (limited to 'Eigen/src/Geometry/Homogeneous.h')
-rw-r--r-- | Eigen/src/Geometry/Homogeneous.h | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/Eigen/src/Geometry/Homogeneous.h b/Eigen/src/Geometry/Homogeneous.h index 7a3b5de80..8f3e5f419 100644 --- a/Eigen/src/Geometry/Homogeneous.h +++ b/Eigen/src/Geometry/Homogeneous.h @@ -351,6 +351,9 @@ struct unary_evaluator<Homogeneous<ArgType,Direction>, IndexBased> typedef Homogeneous<ArgType,Direction> XprType; typedef typename XprType::PlainObject PlainObject; typedef typename evaluator<PlainObject>::type Base; + + typedef evaluator<XprType> type; + typedef evaluator<XprType> nestedType; unary_evaluator(const XprType& op) : Base(), m_temp(op) @@ -367,10 +370,6 @@ template< typename DstXprType, typename ArgType, typename Scalar> struct Assignment<DstXprType, Homogeneous<ArgType,Vertical>, internal::assign_op<Scalar>, Dense2Dense, Scalar> { typedef Homogeneous<ArgType,Vertical> SrcXprType; - // TODO clang generates garbage if this function is inlined. no valgrind error though. -#ifdef __clang__ - EIGEN_DONT_INLINE -#endif static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<Scalar> &) { dst.template topRows<ArgType::RowsAtCompileTime>(src.nestedExpression().rows()) = src.nestedExpression(); @@ -383,10 +382,6 @@ template< typename DstXprType, typename ArgType, typename Scalar> struct Assignment<DstXprType, Homogeneous<ArgType,Horizontal>, internal::assign_op<Scalar>, Dense2Dense, Scalar> { typedef Homogeneous<ArgType,Horizontal> SrcXprType; - // TODO clang generates garbage if this function is inlined. no valgrind error though. -#ifdef __clang__ - EIGEN_DONT_INLINE -#endif static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<Scalar> &) { dst.template leftCols<ArgType::ColsAtCompileTime>(src.nestedExpression().cols()) = src.nestedExpression(); |