aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/NoAlias.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2010-02-05 23:44:24 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2010-02-05 23:44:24 +0100
commit6f3f8578979b8af3d29abc8bfc17e7995bf54143 (patch)
tree8b4ac5a7bde533572ecb169c490cce631a58a549 /Eigen/src/Core/NoAlias.h
parent52167be4c8a2ea72213ebbd9ce828eeb3dcff5f3 (diff)
make noalias works for coefficient based products
Diffstat (limited to 'Eigen/src/Core/NoAlias.h')
-rw-r--r--Eigen/src/Core/NoAlias.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/Eigen/src/Core/NoAlias.h b/Eigen/src/Core/NoAlias.h
index bfea5c91d..e09fd0091 100644
--- a/Eigen/src/Core/NoAlias.h
+++ b/Eigen/src/Core/NoAlias.h
@@ -69,6 +69,14 @@ class NoAlias
template<typename ProductDerived, typename Lhs, typename Rhs>
EIGEN_STRONG_INLINE ExpressionType& operator-=(const ProductBase<ProductDerived, Lhs,Rhs>& other)
{ other.derived().subTo(m_expression); return m_expression; }
+
+ template<typename Lhs, typename Rhs>
+ EIGEN_STRONG_INLINE ExpressionType& operator+=(const GeneralProduct<Lhs,Rhs,UnrolledProduct>& other)
+ { return m_expression.derived() += other.template flagged<0,EvalBeforeAssigningBit|EvalBeforeNestingBit>(); }
+
+ template<typename Lhs, typename Rhs>
+ EIGEN_STRONG_INLINE ExpressionType& operator-=(const GeneralProduct<Lhs,Rhs,UnrolledProduct>& other)
+ { return m_expression.derived() -= other.template flagged<0,EvalBeforeAssigningBit|EvalBeforeNestingBit>(); }
#endif
protected: