aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core
diff options
context:
space:
mode:
authorGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2008-05-02 08:53:23 +0000
committerGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2008-05-02 08:53:23 +0000
commit890a8de962e575442bc3195967a26a26e5139db9 (patch)
tree0008d902b089221d2d0b77e6774439cfcd02f342 /Eigen/src/Core
parentef5b20bc50fb0a44ca48e6167d98437f4f2ee75e (diff)
Make products always eval into expressions. Improves performance
in benchmark. Still not as fasts as explicit eval(), strangely.
Diffstat (limited to 'Eigen/src/Core')
-rw-r--r--Eigen/src/Core/Assign.h1
-rw-r--r--Eigen/src/Core/Product.h2
2 files changed, 2 insertions, 1 deletions
diff --git a/Eigen/src/Core/Assign.h b/Eigen/src/Core/Assign.h
index 362e3e9e7..3862ae831 100644
--- a/Eigen/src/Core/Assign.h
+++ b/Eigen/src/Core/Assign.h
@@ -114,6 +114,7 @@ Derived& MatrixBase<Derived>
{
// std::cout << typeid(OtherDerived).name() << "\n";
// std::cout << "lazyAssign = " << (Derived::Flags&VectorizableBit) << " " << (OtherDerived::Flags&VectorizableBit) << "\n";
+// std::cout << __PRETTY_FUNCTION__ << std::endl;
ei_assignment_impl<Derived, OtherDerived>::execute(derived(),other.derived());
return derived();
}
diff --git a/Eigen/src/Core/Product.h b/Eigen/src/Core/Product.h
index 86f37ec43..cdb4e88b4 100644
--- a/Eigen/src/Core/Product.h
+++ b/Eigen/src/Core/Product.h
@@ -141,7 +141,7 @@ struct ei_traits<Product<Lhs, Rhs, EvalMode> >
| ((RowsAtCompileTime == Dynamic || ColsAtCompileTime == Dynamic) ? 0 : LargeBit)),
Flags = ((unsigned int)(LhsFlags | RhsFlags) & _LostBits)
| EvalBeforeAssigningBit
- | ((int)EvalMode == (int)CacheOptimalProduct ? EvalBeforeNestingBit : 0)
+ | EvalBeforeNestingBit
| (_Vectorizable ? VectorizableBit : 0),
CoeffReadCost
= Lhs::ColsAtCompileTime == Dynamic