aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/product_extra.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2009-07-27 13:17:39 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2009-07-27 13:17:39 +0200
commit0590c18555bd5d195e29ee6a131285cf0f80f9d1 (patch)
treea7c26663e1f1c7b72e666889cb1bf7d4c0df01b7 /test/product_extra.cpp
parentb5e40642898e3af17e67a7b78fa3b63191e11bb7 (diff)
various compilation and bug fixes in selfadjoint stuff
Diffstat (limited to 'test/product_extra.cpp')
-rw-r--r--test/product_extra.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/test/product_extra.cpp b/test/product_extra.cpp
index e750be65e..213dbced6 100644
--- a/test/product_extra.cpp
+++ b/test/product_extra.cpp
@@ -62,13 +62,14 @@ template<typename MatrixType> void product_extra(const MatrixType& m)
// all the expressions in this test should be compiled as a single matrix product
// TODO: add internal checks to verify that
- VERIFY_IS_APPROX(m1 * m2.adjoint(), m1 * m2.adjoint().eval());
- VERIFY_IS_APPROX(m1.adjoint() * square.adjoint(), m1.adjoint().eval() * square.adjoint().eval());
- VERIFY_IS_APPROX(m1.adjoint() * m2, m1.adjoint().eval() * m2);
- VERIFY_IS_APPROX( (s1 * m1.adjoint()) * m2, (s1 * m1.adjoint()).eval() * m2);
- VERIFY_IS_APPROX( (- m1.adjoint() * s1) * (s3 * m2), (- m1.adjoint() * s1).eval() * (s3 * m2).eval());
- VERIFY_IS_APPROX( (s2 * m1.adjoint() * s1) * m2, (s2 * m1.adjoint() * s1).eval() * m2);
- VERIFY_IS_APPROX( (-m1*s2) * s1*m2.adjoint(), (-m1*s2).eval() * (s1*m2.adjoint()).eval());
+ VERIFY_IS_APPROX(m3 = (m1 * m2.adjoint()).lazy(), m1 * m2.adjoint().eval());
+ VERIFY_IS_APPROX(m3 = (m1.adjoint() * square.adjoint()).lazy(), m1.adjoint().eval() * square.adjoint().eval());
+ VERIFY_IS_APPROX(m3 = (m1.adjoint() * m2).lazy(), m1.adjoint().eval() * m2);
+ VERIFY_IS_APPROX(m3 = ((s1 * m1.adjoint()) * m2).lazy(), (s1 * m1.adjoint()).eval() * m2);
+ VERIFY_IS_APPROX(m3 = ((- m1.adjoint() * s1) * (s3 * m2)).lazy(), (- m1.adjoint() * s1).eval() * (s3 * m2).eval());
+ VERIFY_IS_APPROX(m3 = ((s2 * m1.adjoint() * s1) * m2).lazy(), (s2 * m1.adjoint() * s1).eval() * m2);
+ VERIFY_IS_APPROX(m3 = ((-m1*s2) * s1*m2.adjoint()).lazy(), (-m1*s2).eval() * (s1*m2.adjoint()).eval());
+
// a very tricky case where a scale factor has to be automatically conjugated:
VERIFY_IS_APPROX( m1.adjoint() * (s1*m2).conjugate(), (m1.adjoint()).eval() * ((s1*m2).conjugate()).eval());