From b47dea8b7aeab10cf584f2d3275192d90d8df2ed Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Fri, 10 Jul 2009 11:30:46 +0200 Subject: add a meta unroller for the triangular solver (only for vectors as rhs) --- test/triangular.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'test/triangular.cpp') diff --git a/test/triangular.cpp b/test/triangular.cpp index 0c03e987e..7c680a8ed 100644 --- a/test/triangular.cpp +++ b/test/triangular.cpp @@ -86,7 +86,17 @@ template void triangular(const MatrixType& m) while (ei_abs2(m1(i,i))<1e-3) m1(i,i) = ei_random(); Transpose trm4(m4); - // test back and forward subsitution + // test back and forward subsitution with a vector as the rhs + m3 = m1.template triangularView(); + VERIFY(v2.isApprox(m3.adjoint() * (m1.adjoint().template triangularView().solve(v2)), largerEps)); + m3 = m1.template triangularView(); + VERIFY(v2.isApprox(m3.transpose() * (m1.transpose().template triangularView().solve(v2)), largerEps)); + m3 = m1.template triangularView(); + VERIFY(v2.isApprox(m3 * (m1.template triangularView().solve(v2)), largerEps)); + m3 = m1.template triangularView(); + VERIFY(v2.isApprox(m3.conjugate() * (m1.conjugate().template triangularView().solve(v2)), largerEps)); + + // test back and forward subsitution with a matrix as the rhs m3 = m1.template triangularView(); VERIFY(m2.isApprox(m3.adjoint() * (m1.adjoint().template triangularView().solve(m2)), largerEps)); m3 = m1.template triangularView(); -- cgit v1.2.3