1- Introduce sub-evaluator types for unary, binary, product, and map expressions to ease specializing them.

2- Remove a lot of code which should not be there with evaluators, in particular coeff/packet methods implemented in the expressions.
This commit is contained in:
Gael Guennebaud
2014-06-20 15:39:38 +02:00
parent 0a6c472335
commit 78bb808337
18 changed files with 300 additions and 159 deletions

View File

@@ -74,6 +74,7 @@ template<typename Derived> class DenseBase
using Base::colIndexByOuterInner;
using Base::coeff;
using Base::coeffByOuterInner;
#ifndef EIGEN_TEST_EVALUATORS
using Base::packet;
using Base::packetByOuterInner;
using Base::writePacket;
@@ -84,6 +85,7 @@ template<typename Derived> class DenseBase
using Base::copyCoeffByOuterInner;
using Base::copyPacket;
using Base::copyPacketByOuterInner;
#endif
using Base::operator();
using Base::operator[];
using Base::x;
@@ -280,7 +282,8 @@ template<typename Derived> class DenseBase
Derived& operator=(const ReturnByValue<OtherDerived>& func);
#ifndef EIGEN_PARSED_BY_DOXYGEN
/** Copies \a other into *this without evaluating other. \returns a reference to *this. */
/** Copies \a other into *this without evaluating other. \returns a reference to *this.
* \deprecated */
template<typename OtherDerived>
EIGEN_DEVICE_FUNC
Derived& lazyAssign(const DenseBase<OtherDerived>& other);