diff --git a/test/bdcsvd.cpp b/test/bdcsvd.cpp index b21479e20..475280940 100644 --- a/test/bdcsvd.cpp +++ b/test/bdcsvd.cpp @@ -10,15 +10,6 @@ // Public License v. 2.0. If a copy of the MPL was not distributed // with this file, You can obtain one at http://mozilla.org/MPL/2.0/ -// We explicitly disable deprecated declarations for this set of tests -// because we purposely verify assertions for the deprecated SVD runtime -// option behavior. -#if defined(__GNUC__) -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -#elif defined(_MSC_VER) -#pragma warning( disable : 4996 ) -#endif - // discard stack allocation as that too bypasses malloc #define EIGEN_STACK_ALLOCATION_LIMIT 0 #define EIGEN_RUNTIME_NO_MALLOC @@ -41,22 +32,6 @@ void bdcsvd_method() VERIFY_IS_APPROX(m.bdcSvd().singularValues(), RealVecType::Ones()); VERIFY_RAISES_ASSERT(m.bdcSvd().matrixU()); VERIFY_RAISES_ASSERT(m.bdcSvd().matrixV()); - - // Deprecated behavior. - VERIFY_IS_APPROX(m.bdcSvd(ComputeFullU|ComputeFullV).solve(m), m); - VERIFY_IS_APPROX(m.bdcSvd(ComputeFullU|ComputeFullV).transpose().solve(m), m); - VERIFY_IS_APPROX(m.bdcSvd(ComputeFullU|ComputeFullV).adjoint().solve(m), m); - VERIFY_IS_APPROX(m.template bdcSvd(ComputeFullU|ComputeFullV).solve(m), m); - VERIFY_IS_APPROX(m.template bdcSvd(ComputeFullU|ComputeFullV).transpose().solve(m), m); - VERIFY_IS_APPROX(m.template bdcSvd(ComputeFullU|ComputeFullV).adjoint().solve(m), m); - - VERIFY_IS_APPROX(m.template bdcSvd().solve(m), m); - VERIFY_IS_APPROX(m.template bdcSvd().transpose().solve(m), m); - VERIFY_IS_APPROX(m.template bdcSvd().adjoint().solve(m), m); - - VERIFY_IS_APPROX(m.template bdcSvd().solve(m), m); - VERIFY_IS_APPROX(m.template bdcSvd().transpose().solve(m), m); - VERIFY_IS_APPROX(m.template bdcSvd().adjoint().solve(m), m); } // compare the Singular values returned with Jacobi and Bdc diff --git a/test/jacobisvd.cpp b/test/jacobisvd.cpp index 0c04235b4..3d6b6302c 100644 --- a/test/jacobisvd.cpp +++ b/test/jacobisvd.cpp @@ -8,15 +8,6 @@ // Public License v. 2.0. If a copy of the MPL was not distributed // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. -// We explicitly disable deprecated declarations for this set of tests -// because we purposely verify assertions for the deprecated SVD runtime -// option behavior. -#if defined(__GNUC__) -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -#elif defined(_MSC_VER) -#pragma warning( disable : 4996 ) -#endif - // discard stack allocation as that too bypasses malloc #define EIGEN_STACK_ALLOCATION_LIMIT 0 #define EIGEN_RUNTIME_NO_MALLOC @@ -41,11 +32,6 @@ void jacobisvd_method() VERIFY_IS_APPROX(m.template jacobiSvd().solve(m), m); VERIFY_IS_APPROX(m.template jacobiSvd().transpose().solve(m), m); VERIFY_IS_APPROX(m.template jacobiSvd().adjoint().solve(m), m); - - // Deprecated behavior. - VERIFY_IS_APPROX(m.jacobiSvd(ComputeFullU|ComputeFullV).solve(m), m); - VERIFY_IS_APPROX(m.jacobiSvd(ComputeFullU|ComputeFullV).transpose().solve(m), m); - VERIFY_IS_APPROX(m.jacobiSvd(ComputeFullU|ComputeFullV).adjoint().solve(m), m); } template @@ -71,7 +57,7 @@ void jacobisvd_verify_assert(const MatrixType& input = MatrixType()) { svd_verify_constructor_options_assert>(m); svd_verify_constructor_options_assert>(m); svd_verify_constructor_options_assert>(m); - svd_verify_constructor_options_assert>(m, true); + svd_verify_constructor_options_assert>(m); } template diff --git a/test/svd_common.h b/test/svd_common.h index 84551f340..b3d106b4c 100644 --- a/test/svd_common.h +++ b/test/svd_common.h @@ -278,9 +278,10 @@ void svd_inf_nan() { svd.compute(m); VERIFY(svd.info() == InvalidInput); + Scalar min = (std::numeric_limits::min)(); m.resize(4,4); m << 1, 0, 0, 0, - 0, 3, 1, 2e-308, + 0, 3, 1, min, 1, 0, 1, nan, 0, nan, nan, 0; svd.compute(m); @@ -482,35 +483,6 @@ void svd_compute_checks(const MatrixType& m) { } } -// Deprecated behavior. -template -void svd_check_runtime_options(const MatrixType& m, unsigned int computationOptions) { - const bool fixedRowAndThinU = SvdType::RowsAtCompileTime != Dynamic && (computationOptions & ComputeThinU) != 0 && m.cols() < m.rows(); - const bool fixedColAndThinV = SvdType::ColsAtCompileTime != Dynamic && (computationOptions & ComputeThinV) != 0 && m.rows() < m.cols(); - if (fixedRowAndThinU || fixedColAndThinV) { - VERIFY_RAISES_ASSERT(SvdType svd(m, computationOptions)); - return; - } - - Index diagSize = (std::min)(m.rows(), m.cols()); - - SvdType svd(m, computationOptions); - if (svd.computeU()) { - VERIFY(svd.matrixU().isUnitary()); - if (computationOptions & ComputeThinU) VERIFY(svd.matrixU().cols() == diagSize); - } - - if (svd.computeV()) { - VERIFY(svd.matrixV().isUnitary()); - if (computationOptions & ComputeThinV) VERIFY(svd.matrixV().cols() == diagSize); - } - if (svd.computeU() && svd.computeV()) { - svd_test_solvers(m, svd); - svd.matrixU().isUnitary(); - svd.matrixV().isUnitary(); - } -} - template void svd_option_checks(const MatrixType& input) { MatrixType m(input.rows(), input.cols()); @@ -531,20 +503,6 @@ void svd_option_checks(const MatrixType& input) { FullSvdType fullSvd(m); svd_check_full(m, fullSvd); svd_compare_to_full(m, fullSvd); - - // Deprecated behavior. - typedef SVD_STATIC_OPTIONS(MatrixType, QRPreconditioner) DynamicSvd; - svd_check_runtime_options(m, 0); - svd_check_runtime_options(m, ComputeThinU); - svd_check_runtime_options(m, ComputeThinV); - svd_check_runtime_options(m, ComputeThinU | ComputeThinV); - - svd_check_runtime_options(m, ComputeFullU); - svd_check_runtime_options(m, ComputeFullV); - svd_check_runtime_options(m, ComputeFullU | ComputeFullV); - - svd_check_runtime_options(m, ComputeThinU | ComputeFullV); - svd_check_runtime_options(m, ComputeFullU | ComputeThinV); } template @@ -592,7 +550,7 @@ void svd_check_max_size_matrix(int initialRows, int initialCols) { } template -void svd_verify_constructor_options_assert(const MatrixType& m, bool fullOnly = false) { +void svd_verify_constructor_options_assert(const MatrixType& m) { typedef typename MatrixType::Scalar Scalar; Index rows = m.rows(); Index cols = m.cols(); @@ -619,30 +577,6 @@ void svd_verify_constructor_options_assert(const MatrixType& m, bool fullOnly = VERIFY_RAISES_ASSERT(svd2.matrixV()) svd2.singularValues(); VERIFY_RAISES_ASSERT(svd2.solve(rhs)) - - // Deprecated behavior. - SvdType svd3(a, ComputeFullU); - svd3.matrixU(); - VERIFY_RAISES_ASSERT(svd3.matrixV()) - VERIFY_RAISES_ASSERT(svd3.solve(rhs)) - - SvdType svd4(a, ComputeFullV); - svd4.matrixV(); - VERIFY_RAISES_ASSERT(svd4.matrixU()) - VERIFY_RAISES_ASSERT(svd4.solve(rhs)) - - if (!fullOnly && ColsAtCompileTime == Dynamic) - { - SvdType svd5(a, ComputeThinU); - svd5.matrixU(); - VERIFY_RAISES_ASSERT(svd5.matrixV()) - VERIFY_RAISES_ASSERT(svd5.solve(rhs)) - - SvdType svd6(a, ComputeThinV); - svd6.matrixV(); - VERIFY_RAISES_ASSERT(svd6.matrixU()) - VERIFY_RAISES_ASSERT(svd6.solve(rhs)) - } } #undef SVD_DEFAULT