From 5adfe934c8bd991df0030415ddddd304a4a9d07e Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Wed, 23 Dec 2009 10:24:13 +0100 Subject: [PATCH] add checks for on the right triangular solving with matrices --- test/product_trsm.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/test/product_trsm.cpp b/test/product_trsm.cpp index 5f224d1a9..1103e79a9 100644 --- a/test/product_trsm.cpp +++ b/test/product_trsm.cpp @@ -30,6 +30,12 @@ VERIFY_IS_APPROX((TRI).toDenseMatrix() * (XB), ref); \ } +#define VERIFY_TRSM_ONTHERIGHT(TRI,XB) { \ + (XB).setRandom(); ref = (XB); \ + (TRI).transpose().template solveInPlace(XB.transpose()); \ + VERIFY_IS_APPROX((XB).transpose() * (TRI).transpose().toDenseMatrix(), ref.transpose()); \ + } + template void trsm(int size,int cols) { typedef typename NumTraits::Real RealScalar; @@ -53,6 +59,18 @@ template void trsm(int size,int cols) VERIFY_TRSM(rmLhs .template triangularView(), cmRhs); VERIFY_TRSM(rmLhs.conjugate().template triangularView(), rmRhs); + + + VERIFY_TRSM_ONTHERIGHT(cmLhs.conjugate().template triangularView(), cmRhs); + VERIFY_TRSM_ONTHERIGHT(cmLhs .template triangularView(), cmRhs); + VERIFY_TRSM_ONTHERIGHT(cmLhs .template triangularView(), rmRhs); + VERIFY_TRSM_ONTHERIGHT(cmLhs.conjugate().template triangularView(), rmRhs); + + VERIFY_TRSM_ONTHERIGHT(cmLhs.conjugate().template triangularView(), cmRhs); + VERIFY_TRSM_ONTHERIGHT(cmLhs .template triangularView(), rmRhs); + + VERIFY_TRSM_ONTHERIGHT(rmLhs .template triangularView(), cmRhs); + VERIFY_TRSM_ONTHERIGHT(rmLhs.conjugate().template triangularView(), rmRhs); } void test_product_trsm()