From d0b873822f52f5739868ba322dae5b3d0c399a4d Mon Sep 17 00:00:00 2001 From: Jitse Niesen Date: Fri, 29 Jun 2012 13:49:25 +0100 Subject: 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() --- test/evaluators.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'test/evaluators.cpp') 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); } { -- cgit v1.2.3