aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Geometry/Homogeneous.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2014-08-01 16:49:44 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2014-08-01 16:49:44 +0200
commitf25338f4d76dff13a9810996165ad7b465a15c88 (patch)
tree5a585efb764707527b9fd0c25d8db0fd822b8c08 /Eigen/src/Geometry/Homogeneous.h
parent51357a6622d30aa8cb799cf2ed69c96cf94007b7 (diff)
Fix nesting of Homogenous evaluator
Diffstat (limited to 'Eigen/src/Geometry/Homogeneous.h')
-rw-r--r--Eigen/src/Geometry/Homogeneous.h11
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();