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()