-
Notifications
You must be signed in to change notification settings - Fork 480
Description
Hello!
I have been running tests for QR and LQ (xlintstd_dtest) and sometimes I have got failures like
M= 10, N= 10, K= 5, NB= 1, NX= 1, type 2, test( 1)= 0.16408E+16
M= 10, N= 10, K= 5, NB= 1, NX= 1, type 2, test( 2)= 0.62678E+15
Usually, I need to change input file to reproduce error.
My investigation shows, that root-cause is PR 900 with replacement GELQS by GELS (in example of LQ). Behavior of the test is changed a bit (see TESTING/LIN/dchklq.f):
Before:
LQT01 is called to factorize matrix by GELQF for every combination of parameters m and n and this factorized matrix is used at any check of test parameter k.
Now:
LQT01 is again called to factorize matrix, but later array AF is cleared to A to call GELS since factorization is now performed inside call of GELS. But, unfortunately, if m = n in call of GELS then factorization is done by GEQRF instead GELQF (check SRC/dgels.f). And this is a main difference. For upper triangular matrix QR factorization doing nothing, which lead to failure of test(1) and test(2) on the next iteration of parameter k, since arrays A and AF are equal.
@angsch please take a look.
Input is attached input qr and lq.txt