Hello,
I am in doubt that the LAPACK test suite (Xchkbd.f) performs correctly
For example in schkbd.f
line 777 CALL SGEBRD( M, N, Q, LDQ, BD, BE, WORK, WORK( MNMIN+1 ),
$ WORK( 2*MNMIN+1 ), LWORK-2*MNMIN, IINFO )
// Perform bidiagonalization on Q with dimensions M and N.
line 801 CALL SORGBR( 'Q', M, MQ, N, Q, LDQ, WORK,
$ WORK( 2*MNMIN+1 ), LWORK-2*MNMIN, IINFO )
// Form Q from the result of SGEBRD where the dimension MQ is set to be same as M (MQ= M)
line 838 CALL SORT01( 'Columns', M, MQ, Q, LDQ, WORK, LWORK,
$ RESULT( 2 ) )
// Test I - QQ' and store it as result 2.
When N is zero and M is non-zero (LAPACK performs these cases), SGEBRD does not perform anything.
SORGBR does not perform anything either as N = 0.
However, SORT01 tests orthogonality of Q with dimensions M and MQ (=M), which are non zeros.
Does this make sense ? I think that the dimensions should be M and MNMIN for SORT01 test.
I am writing my own svd and testing the numerical correctness w.r.t. LAPACK test suite. Maybe LAPACK does something (make it identity for a trivial case), but this test logic certainly does not cover the cases in svd.in.
If I am wrong, please correct me.
Thank you.
Kyungjoo

