mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-11 11:19:02 +08:00
Disable deprecated warnings in SVD tests.
This commit is contained in:
parent
8b875dbef1
commit
f0b81fefb7
@ -10,6 +10,13 @@
|
||||
// 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.
|
||||
#ifdef __GNUC__
|
||||
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
#endif
|
||||
|
||||
// discard stack allocation as that too bypasses malloc
|
||||
#define EIGEN_STACK_ALLOCATION_LIMIT 0
|
||||
#define EIGEN_RUNTIME_NO_MALLOC
|
||||
@ -32,9 +39,12 @@ 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);
|
||||
|
@ -8,6 +8,13 @@
|
||||
// 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.
|
||||
#ifdef __GNUC__
|
||||
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
#endif
|
||||
|
||||
// discard stack allocation as that too bypasses malloc
|
||||
#define EIGEN_STACK_ALLOCATION_LIMIT 0
|
||||
#define EIGEN_RUNTIME_NO_MALLOC
|
||||
@ -29,12 +36,14 @@ void jacobisvd_method()
|
||||
VERIFY_IS_APPROX(m.jacobiSvd().singularValues(), RealVecType::Ones());
|
||||
VERIFY_RAISES_ASSERT(m.jacobiSvd().matrixU());
|
||||
VERIFY_RAISES_ASSERT(m.jacobiSvd().matrixV());
|
||||
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);
|
||||
VERIFY_IS_APPROX(m.template jacobiSvd<ComputeFullU | ComputeFullV>().solve(m), m);
|
||||
VERIFY_IS_APPROX(m.template jacobiSvd<ComputeFullU | ComputeFullV>().transpose().solve(m), m);
|
||||
VERIFY_IS_APPROX(m.template jacobiSvd<ComputeFullU | ComputeFullV>().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 <typename MatrixType>
|
||||
|
@ -480,8 +480,9 @@ void svd_compute_checks(const MatrixType& m) {
|
||||
}
|
||||
}
|
||||
|
||||
// Deprecated behavior.
|
||||
template <typename SvdType, typename MatrixType>
|
||||
void svd_check_constructor_options(const MatrixType& m, unsigned int computationOptions) {
|
||||
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) {
|
||||
@ -527,18 +528,19 @@ void svd_option_checks(const MatrixType& m) {
|
||||
svd_check_full(m, fullSvd);
|
||||
svd_compare_to_full<MatrixType, FullSvdType, QRPreconditioner | ComputeFullU | ComputeFullV>(m, fullSvd);
|
||||
|
||||
// Deprecated behavior.
|
||||
typedef SVD_STATIC_OPTIONS(MatrixType, QRPreconditioner) DynamicSvd;
|
||||
svd_check_constructor_options<DynamicSvd>(m, 0);
|
||||
svd_check_constructor_options<DynamicSvd>(m, ComputeThinU);
|
||||
svd_check_constructor_options<DynamicSvd>(m, ComputeThinV);
|
||||
svd_check_constructor_options<DynamicSvd>(m, ComputeThinU | ComputeThinV);
|
||||
svd_check_runtime_options<DynamicSvd>(m, 0);
|
||||
svd_check_runtime_options<DynamicSvd>(m, ComputeThinU);
|
||||
svd_check_runtime_options<DynamicSvd>(m, ComputeThinV);
|
||||
svd_check_runtime_options<DynamicSvd>(m, ComputeThinU | ComputeThinV);
|
||||
|
||||
svd_check_constructor_options<DynamicSvd>(m, ComputeFullU);
|
||||
svd_check_constructor_options<DynamicSvd>(m, ComputeFullV);
|
||||
svd_check_constructor_options<DynamicSvd>(m, ComputeFullU | ComputeFullV);
|
||||
svd_check_runtime_options<DynamicSvd>(m, ComputeFullU);
|
||||
svd_check_runtime_options<DynamicSvd>(m, ComputeFullV);
|
||||
svd_check_runtime_options<DynamicSvd>(m, ComputeFullU | ComputeFullV);
|
||||
|
||||
svd_check_constructor_options<DynamicSvd>(m, ComputeThinU | ComputeFullV);
|
||||
svd_check_constructor_options<DynamicSvd>(m, ComputeFullU | ComputeThinV);
|
||||
svd_check_runtime_options<DynamicSvd>(m, ComputeThinU | ComputeFullV);
|
||||
svd_check_runtime_options<DynamicSvd>(m, ComputeFullU | ComputeThinV);
|
||||
}
|
||||
|
||||
template <typename MatrixType, int QRPreconditioner = 0>
|
||||
@ -609,6 +611,7 @@ void svd_verify_constructor_options_assert(const MatrixType& m, bool fullOnly =
|
||||
svd2.singularValues();
|
||||
VERIFY_RAISES_ASSERT(svd2.solve(rhs))
|
||||
|
||||
// Deprecated behavior.
|
||||
SvdType svd3(a, ComputeFullU);
|
||||
svd3.matrixU();
|
||||
VERIFY_RAISES_ASSERT(svd3.matrixV())
|
||||
|
Loading…
x
Reference in New Issue
Block a user