aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/evaluators.cpp
diff options
context:
space:
mode:
authorGravatar Jitse Niesen <jitse@maths.leeds.ac.uk>2012-06-29 13:49:25 +0100
committerGravatar Jitse Niesen <jitse@maths.leeds.ac.uk>2012-06-29 13:49:25 +0100
commitd0b873822f52f5739868ba322dae5b3d0c399a4d (patch)
tree8c6af7d69559a24555fd9531a4d3dda2ae9ccdd1 /test/evaluators.cpp
parent2393ceb38048506b799689e7bc109a4db5d09e99 (diff)
Make product eval-at-once.
* Make product EvalAtOnce in cases OuterProduct, GemmProduct and GemvProduct * Ensure that product evaluators are nested inside EvalToTemp evaluator * As temporary kludge, evaluate expression to temporary in AllAtOnce traversal and pass expression operator to evalTo()
Diffstat (limited to 'test/evaluators.cpp')
-rw-r--r--test/evaluators.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/test/evaluators.cpp b/test/evaluators.cpp
index 62ba5b126..3081d7858 100644
--- a/test/evaluators.cpp
+++ b/test/evaluators.cpp
@@ -65,6 +65,11 @@ void test_evaluators()
VERIFY_IS_APPROX_EVALUATOR2(d, s * prod(a,b), s * a*b);
VERIFY_IS_APPROX_EVALUATOR2(d, prod(a,b).transpose(), (a*b).transpose());
VERIFY_IS_APPROX_EVALUATOR2(d, prod(a,b) + prod(b,c), a*b + b*c);
+
+ // check that prod works even with aliasing present
+ c = a*a;
+ copy_using_evaluator(a, prod(a,a));
+ VERIFY_IS_APPROX(a,c);
}
{