diff options
author | Gael Guennebaud <g.gael@free.fr> | 2015-10-28 13:39:02 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2015-10-28 13:39:02 +0100 |
commit | 85313048581d22901c7940a46bd41b19e88ff47c (patch) | |
tree | 76853fb284423331dd4254b742c148f6cc418d11 /Eigen/src/Core/Visitor.h | |
parent | 1f11dd6cedc223f92f9ce99a22080dd267fcb488 (diff) |
Simplify cost computations based on HugeCost being smaller that unrolling limit
Diffstat (limited to 'Eigen/src/Core/Visitor.h')
-rw-r--r-- | Eigen/src/Core/Visitor.h | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/Eigen/src/Core/Visitor.h b/Eigen/src/Core/Visitor.h index f3f15e9e0..7aac0b6e1 100644 --- a/Eigen/src/Core/Visitor.h +++ b/Eigen/src/Core/Visitor.h @@ -109,14 +109,11 @@ void DenseBase<Derived>::visit(Visitor& visitor) const typedef typename internal::visitor_evaluator<Derived> ThisEvaluator; ThisEvaluator thisEval(derived()); - enum { unroll = SizeAtCompileTime != Dynamic - && ThisEvaluator::CoeffReadCost < HugeCost - && (SizeAtCompileTime == 1 || internal::functor_traits<Visitor>::Cost < HugeCost) - && SizeAtCompileTime * ThisEvaluator::CoeffReadCost + (SizeAtCompileTime-1) * internal::functor_traits<Visitor>::Cost - <= EIGEN_UNROLLING_LIMIT }; - return internal::visitor_impl<Visitor, ThisEvaluator, - unroll ? int(SizeAtCompileTime) : Dynamic - >::run(thisEval, visitor); + enum { + unroll = SizeAtCompileTime != Dynamic + && SizeAtCompileTime * ThisEvaluator::CoeffReadCost + (SizeAtCompileTime-1) * internal::functor_traits<Visitor>::Cost <= EIGEN_UNROLLING_LIMIT + }; + return internal::visitor_impl<Visitor, ThisEvaluator, unroll ? int(SizeAtCompileTime) : Dynamic>::run(thisEval, visitor); } namespace internal { |