From 9285647dfe91c2fe3db112e71b219ee16db81e87 Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Fri, 30 Oct 2015 14:44:22 +0100 Subject: [PATCH] Limit matrix size when testing for NaN: they can become prohibitively expensive when running on x87 fp unit --- test/eigensolver_selfadjoint.cpp | 2 +- test/schur_complex.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/eigensolver_selfadjoint.cpp b/test/eigensolver_selfadjoint.cpp index a7b4deb5d..f909761a1 100644 --- a/test/eigensolver_selfadjoint.cpp +++ b/test/eigensolver_selfadjoint.cpp @@ -149,7 +149,7 @@ template void selfadjointeigensolver(const MatrixType& m) VERIFY_IS_APPROX(tridiag.matrixT(), eiSymmTridiag.eigenvectors().real() * eiSymmTridiag.eigenvalues().asDiagonal() * eiSymmTridiag.eigenvectors().real().transpose()); } - if (rows > 1) + if (rows > 1 && rows < 20) { // Test matrix with NaN symmC(0,0) = std::numeric_limits::quiet_NaN(); diff --git a/test/schur_complex.cpp b/test/schur_complex.cpp index 5e869790f..deb78e44e 100644 --- a/test/schur_complex.cpp +++ b/test/schur_complex.cpp @@ -25,7 +25,7 @@ template void schur(int size = MatrixType::ColsAtCompileTim ComplexMatrixType T = schurOfA.matrixT(); for(int row = 1; row < size; ++row) { for(int col = 0; col < row; ++col) { - VERIFY(T(row,col) == (typename MatrixType::Scalar)0); + VERIFY(T(row,col) == (typename MatrixType::Scalar)0); } } VERIFY_IS_APPROX(A.template cast(), U * T * U.adjoint()); @@ -70,7 +70,7 @@ template void schur(int size = MatrixType::ColsAtCompileTim VERIFY_IS_EQUAL(cs1.matrixT(), csOnlyT.matrixT()); VERIFY_RAISES_ASSERT(csOnlyT.matrixU()); - if (size > 1) + if (size > 1 && size < 20) { // Test matrix with NaN A(0,0) = std::numeric_limits::quiet_NaN();