aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Geometry
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2015-09-02 21:38:40 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2015-09-02 21:38:40 +0200
commit92b9f0e102b35c3091bdeea3fc65f38f0e93c612 (patch)
treea94a71fd6166d8f54e0ac74d6bd8afe4145754a6 /Eigen/src/Geometry
parentcda55ab245aa40aacb1fc2030c5eb475afd182ad (diff)
Cleaning pass on evaluators: remove the useless and error prone evaluator<>::type indirection.
Diffstat (limited to 'Eigen/src/Geometry')
-rw-r--r--Eigen/src/Geometry/Homogeneous.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/Eigen/src/Geometry/Homogeneous.h b/Eigen/src/Geometry/Homogeneous.h
index 9f86eeb3d..abb4c2fd3 100644
--- a/Eigen/src/Geometry/Homogeneous.h
+++ b/Eigen/src/Geometry/Homogeneous.h
@@ -312,13 +312,11 @@ template<> struct AssignmentKind<DenseShape,HomogeneousShape> { typedef Dense2De
template<typename ArgType,int Direction>
struct unary_evaluator<Homogeneous<ArgType,Direction>, IndexBased>
- : evaluator<typename Homogeneous<ArgType,Direction>::PlainObject >::type
+ : evaluator<typename Homogeneous<ArgType,Direction>::PlainObject >
{
typedef Homogeneous<ArgType,Direction> XprType;
typedef typename XprType::PlainObject PlainObject;
- typedef typename evaluator<PlainObject>::type Base;
-
- typedef evaluator<XprType> type;
+ typedef evaluator<PlainObject> Base;
typedef evaluator<XprType> nestedType;
explicit unary_evaluator(const XprType& op)
@@ -390,6 +388,8 @@ struct product_evaluator<Product<Lhs, Rhs, LazyProduct>, ProductTag, Homogeneous
typedef typename helper::Xpr RefactoredXpr;
typedef evaluator<RefactoredXpr> Base;
+ typedef evaluator<XprType> nestedType;
+
EIGEN_DEVICE_FUNC explicit product_evaluator(const XprType& xpr)
: Base( xpr.lhs().nestedExpression() .lazyProduct( xpr.rhs().template topRows<helper::Dim>(xpr.lhs().nestedExpression().cols()) )
+ ConstantBlock(xpr.rhs().row(xpr.rhs().rows()-1),xpr.lhs().rows(), 1) )
@@ -431,6 +431,8 @@ struct product_evaluator<Product<Lhs, Rhs, LazyProduct>, ProductTag, DenseShape,
typedef typename helper::Xpr RefactoredXpr;
typedef evaluator<RefactoredXpr> Base;
+ typedef evaluator<XprType> nestedType;
+
EIGEN_DEVICE_FUNC explicit product_evaluator(const XprType& xpr)
: Base( xpr.lhs().template leftCols<helper::Dim>(xpr.rhs().nestedExpression().rows()) .lazyProduct( xpr.rhs().nestedExpression() )
+ ConstantBlock(xpr.lhs().col(xpr.lhs().cols()-1),1,xpr.rhs().cols()) )