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