Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix fails of tests for QR/LQ factorizations #1005

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

dklyuchinskiy
Copy link
Contributor

@dklyuchinskiy dklyuchinskiy commented Apr 8, 2024

Fix fails of tests for QR/LQ factorizations

Hello! This PR is willing to close issue #973.

Briefly speaking, there are some problems, recently appeared after Release 3.12. Functions GELQS/GEQRS were made DEPRECATED and have been replaced by GELS in tests of QR/LQ factorizations. But,

  1. GELS calls specific factorization depending on input size: QR for m >= n and LQ for m < n. Test does not take into account this knowledge and wrong factorization can be called for specific parameters m and n.
  2. Even if parameters, passed to GELS are correct, test can be also failed for matrices near overflow/underflow. I believe, that it happens, since GELS calls scaling routines inside, but previous version GELQS/GEQRS does not. Behavior is also changed in that way.

It is important to point out, that test is failed on the next iteration of parameter K while data is improperly changed on the first iteration. That's why fails are reproduced only on fixed input file.

Thinking of solution, I suggest to call the correct factorization on each iteration of inner loop for parameter K. It will solve any problems, related to occasionally changed data inside the test. Maybe this solution is not fully optimal, since it does not restrict any inputs into GELS, but it can be discussed.

  • If the PR solves a specific issue, it is set to be closed on merge.

@dklyuchinskiy
Copy link
Contributor Author

Hi, @langou !

Could I ask you or somebody to reproduce the issue and check the proposed fix?

In our project we use reduced inputs for testing, different to standard one, that's why it is stable reproduced on our side, and is not failed in LAPACK CI. Standard input file hides the fails and problem inside test.

I have attached logs of fails before and after the fix:

The following parameter values will be used:
    M   :       0     1     2     3     5    10    50
    N   :       0     1     2     3     5    10    50
    NRHS:       1     2    15
    NB  :       1
    NX  :       1
    RANK:      30    50    90

DLQ routines passed the tests of the error exits
DLQ:    120 out of   5936 tests failed to pass the threshold

DQR routines passed the tests of the error exits
DQR:    221 out of   8568 tests failed to pass the threshold

vs

DLQ routines passed the tests of the error exits
All tests for DLQ routines passed the threshold (   5936 tests run)

DQR routines passed the tests of the error exits
All tests for DQR routines passed the threshold (   8568 tests run)

Dmitry

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant