aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/product.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2016-08-23 16:52:22 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2016-08-23 16:52:22 +0200
commit504a4404f11270df5cc372ff3465b07018a1d40b (patch)
tree3fd1f859f9769627f980a887525b4579b2e621a9 /test/product.h
parente47a8928ecfcb4abe05ac95872afedf496cb3928 (diff)
Optimize expression matching "d?=a-b*c" as "d?=a; d?=b*c;"
Diffstat (limited to 'test/product.h')
-rw-r--r--test/product.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/test/product.h b/test/product.h
index 27976a4ae..cabfc0b03 100644
--- a/test/product.h
+++ b/test/product.h
@@ -119,6 +119,14 @@ template<typename MatrixType> void product(const MatrixType& m)
res.noalias() -= square + m1 * m2.transpose();
VERIFY_IS_APPROX(res, square + m1 * m2.transpose());
+ // test d ?= a-b*c rules
+ res.noalias() = square - m1 * m2.transpose();
+ VERIFY_IS_APPROX(res, square - m1 * m2.transpose());
+ res.noalias() += square - m1 * m2.transpose();
+ VERIFY_IS_APPROX(res, 2*(square - m1 * m2.transpose()));
+ res.noalias() -= square - m1 * m2.transpose();
+ VERIFY_IS_APPROX(res, square - m1 * m2.transpose());
+
tm1 = m1;
VERIFY_IS_APPROX(tm1.transpose() * v1, m1.transpose() * v1);