You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.4 KiB
60 lines
2.4 KiB
From 3e760c23e7adfab54a44032f43d61cf52916fa2f Mon Sep 17 00:00:00 2001
|
|
From: Franck HOUSSEN <fghoussen@users.noreply.github.com>
|
|
Date: Thu, 7 Feb 2019 11:31:02 +0100
|
|
Subject: [PATCH] [BUG FIX] arpack may succeed to compute more EV than
|
|
expected.
|
|
|
|
---
|
|
PARPACK/TESTS/MPI/icb_parpack_cpp.cpp | 6 ++++--
|
|
TESTS/icb_arpack_cpp.cpp | 6 ++++--
|
|
2 files changed, 8 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/PARPACK/TESTS/MPI/icb_parpack_cpp.cpp b/PARPACK/TESTS/MPI/icb_parpack_cpp.cpp
|
|
index 46bf434..a2cd9c3 100644
|
|
--- a/PARPACK/TESTS/MPI/icb_parpack_cpp.cpp
|
|
+++ b/PARPACK/TESTS/MPI/icb_parpack_cpp.cpp
|
|
@@ -75,7 +75,8 @@ void real_symmetric_runner() {
|
|
&(workd[ipntr[1] - 1]));
|
|
}
|
|
// check number of ev found by arpack.
|
|
- if (iparam[4] != nev || info != 0) {
|
|
+ if (iparam[4] < nev /*arpack may succeed to compute more EV than expected*/ || info != 0) {
|
|
+ std::cout << "ERROR: iparam[4] " << iparam[4] << ", nev " << nev << ", info " << info << std::endl;
|
|
throw std::domain_error("Error inside ARPACK routines");
|
|
}
|
|
|
|
@@ -153,7 +154,8 @@ void complex_symmetric_runner() {
|
|
}
|
|
|
|
// check number of ev found by arpack
|
|
- if (iparam[4] != nev || info != 0) {
|
|
+ if (iparam[4] < nev /*arpack may succeed to compute more EV than expected*/ || info != 0) {
|
|
+ std::cout << "ERROR: iparam[4] " << iparam[4] << ", nev " << nev << ", info " << info << std::endl;
|
|
throw std::domain_error("Error inside ARPACK routines");
|
|
}
|
|
|
|
diff --git a/TESTS/icb_arpack_cpp.cpp b/TESTS/icb_arpack_cpp.cpp
|
|
index 7363334..18f7e2d 100644
|
|
--- a/TESTS/icb_arpack_cpp.cpp
|
|
+++ b/TESTS/icb_arpack_cpp.cpp
|
|
@@ -73,7 +73,8 @@ void real_symmetric_runner() {
|
|
}
|
|
|
|
// check number of ev found by arpack.
|
|
- if (iparam[4] != nev || info != 0) {
|
|
+ if (iparam[4] < nev /*arpack may succeed to compute more EV than expected*/ || info != 0) {
|
|
+ std::cout << "ERROR: iparam[4] " << iparam[4] << ", nev " << nev << ", info " << info << std::endl;
|
|
throw std::domain_error("Error inside ARPACK routines");
|
|
}
|
|
|
|
@@ -151,7 +152,8 @@ void complex_symmetric_runner() {
|
|
}
|
|
|
|
// check number of ev found by arpack.
|
|
- if (iparam[4] != nev || info != 0) {
|
|
+ if (iparam[4] < nev /*arpack may succeed to compute more EV than expected*/ || info != 0) {
|
|
+ std::cout << "ERROR: iparam[4] " << iparam[4] << ", nev " << nev << ", info " << info << std::endl;
|
|
throw std::domain_error("Error inside ARPACK routines");
|
|
}
|
|
|