diff options
Diffstat (limited to 'test/product_trmv.cpp')
-rw-r--r-- | test/product_trmv.cpp | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/test/product_trmv.cpp b/test/product_trmv.cpp index 5016a5b1f..f0962557a 100644 --- a/test/product_trmv.cpp +++ b/test/product_trmv.cpp @@ -44,37 +44,37 @@ template<typename MatrixType> void trmv(const MatrixType& m) m1 = MatrixType::Random(rows, cols); // check with a column-major matrix - m3 = m1.template triangularView<Eigen::LowerTriangular>(); - VERIFY((m3 * v1).isApprox(m1.template triangularView<Eigen::LowerTriangular>() * v1, largerEps)); - m3 = m1.template triangularView<Eigen::UpperTriangular>(); - VERIFY((m3 * v1).isApprox(m1.template triangularView<Eigen::UpperTriangular>() * v1, largerEps)); - m3 = m1.template triangularView<Eigen::UnitLowerTriangular>(); - VERIFY((m3 * v1).isApprox(m1.template triangularView<Eigen::UnitLowerTriangular>() * v1, largerEps)); - m3 = m1.template triangularView<Eigen::UnitUpperTriangular>(); - VERIFY((m3 * v1).isApprox(m1.template triangularView<Eigen::UnitUpperTriangular>() * v1, largerEps)); + m3 = m1.template triangularView<Eigen::Lower>(); + VERIFY((m3 * v1).isApprox(m1.template triangularView<Eigen::Lower>() * v1, largerEps)); + m3 = m1.template triangularView<Eigen::Upper>(); + VERIFY((m3 * v1).isApprox(m1.template triangularView<Eigen::Upper>() * v1, largerEps)); + m3 = m1.template triangularView<Eigen::UnitLower>(); + VERIFY((m3 * v1).isApprox(m1.template triangularView<Eigen::UnitLower>() * v1, largerEps)); + m3 = m1.template triangularView<Eigen::UnitUpper>(); + VERIFY((m3 * v1).isApprox(m1.template triangularView<Eigen::UnitUpper>() * v1, largerEps)); // check conjugated and scalar multiple expressions (col-major) - m3 = m1.template triangularView<Eigen::LowerTriangular>(); - VERIFY(((s1*m3).conjugate() * v1).isApprox((s1*m1).conjugate().template triangularView<Eigen::LowerTriangular>() * v1, largerEps)); - m3 = m1.template triangularView<Eigen::UpperTriangular>(); - VERIFY((m3.conjugate() * v1.conjugate()).isApprox(m1.conjugate().template triangularView<Eigen::UpperTriangular>() * v1.conjugate(), largerEps)); + m3 = m1.template triangularView<Eigen::Lower>(); + VERIFY(((s1*m3).conjugate() * v1).isApprox((s1*m1).conjugate().template triangularView<Eigen::Lower>() * v1, largerEps)); + m3 = m1.template triangularView<Eigen::Upper>(); + VERIFY((m3.conjugate() * v1.conjugate()).isApprox(m1.conjugate().template triangularView<Eigen::Upper>() * v1.conjugate(), largerEps)); // check with a row-major matrix - m3 = m1.template triangularView<Eigen::UpperTriangular>(); - VERIFY((m3.transpose() * v1).isApprox(m1.transpose().template triangularView<Eigen::LowerTriangular>() * v1, largerEps)); - m3 = m1.template triangularView<Eigen::LowerTriangular>(); - VERIFY((m3.transpose() * v1).isApprox(m1.transpose().template triangularView<Eigen::UpperTriangular>() * v1, largerEps)); - m3 = m1.template triangularView<Eigen::UnitUpperTriangular>(); - VERIFY((m3.transpose() * v1).isApprox(m1.transpose().template triangularView<Eigen::UnitLowerTriangular>() * v1, largerEps)); - m3 = m1.template triangularView<Eigen::UnitLowerTriangular>(); - VERIFY((m3.transpose() * v1).isApprox(m1.transpose().template triangularView<Eigen::UnitUpperTriangular>() * v1, largerEps)); + m3 = m1.template triangularView<Eigen::Upper>(); + VERIFY((m3.transpose() * v1).isApprox(m1.transpose().template triangularView<Eigen::Lower>() * v1, largerEps)); + m3 = m1.template triangularView<Eigen::Lower>(); + VERIFY((m3.transpose() * v1).isApprox(m1.transpose().template triangularView<Eigen::Upper>() * v1, largerEps)); + m3 = m1.template triangularView<Eigen::UnitUpper>(); + VERIFY((m3.transpose() * v1).isApprox(m1.transpose().template triangularView<Eigen::UnitLower>() * v1, largerEps)); + m3 = m1.template triangularView<Eigen::UnitLower>(); + VERIFY((m3.transpose() * v1).isApprox(m1.transpose().template triangularView<Eigen::UnitUpper>() * v1, largerEps)); // check conjugated and scalar multiple expressions (row-major) - m3 = m1.template triangularView<Eigen::UpperTriangular>(); - VERIFY((m3.adjoint() * v1).isApprox(m1.adjoint().template triangularView<Eigen::LowerTriangular>() * v1, largerEps)); - m3 = m1.template triangularView<Eigen::LowerTriangular>(); - VERIFY((m3.adjoint() * (s1*v1.conjugate())).isApprox(m1.adjoint().template triangularView<Eigen::UpperTriangular>() * (s1*v1.conjugate()), largerEps)); - m3 = m1.template triangularView<Eigen::UnitUpperTriangular>(); + m3 = m1.template triangularView<Eigen::Upper>(); + VERIFY((m3.adjoint() * v1).isApprox(m1.adjoint().template triangularView<Eigen::Lower>() * v1, largerEps)); + m3 = m1.template triangularView<Eigen::Lower>(); + VERIFY((m3.adjoint() * (s1*v1.conjugate())).isApprox(m1.adjoint().template triangularView<Eigen::Upper>() * (s1*v1.conjugate()), largerEps)); + m3 = m1.template triangularView<Eigen::UnitUpper>(); // TODO check with sub-matrices } |