| 114 | template<typename Derived> |
| 115 | template<typename Visitor> |
| 116 | EIGEN_DEVICE_FUNC |
| 117 | void DenseBase<Derived>::visit(Visitor& visitor) const |
| 118 | { |
| 119 | if(size()==0) |
| 120 | return; |
| 121 | |
| 122 | typedef typename internal::visitor_evaluator<Derived> ThisEvaluator; |
| 123 | ThisEvaluator thisEval(derived()); |
| 124 | |
| 125 | enum { |
| 126 | unroll = SizeAtCompileTime != Dynamic |
| 127 | && SizeAtCompileTime * int(ThisEvaluator::CoeffReadCost) + (SizeAtCompileTime-1) * int(internal::functor_traits<Visitor>::Cost) <= EIGEN_UNROLLING_LIMIT |
| 128 | }; |
| 129 | return internal::visitor_impl<Visitor, ThisEvaluator, unroll ? int(SizeAtCompileTime) : Dynamic>::run(thisEval, visitor); |
| 130 | } |
| 131 | |
| 132 | namespace internal { |
| 133 | |