In the docs for the VT parameter for ZGESDD, we find the statement:
"If JOBZ = 'A' or JOBZ = 'O' and M >= N, VT contains the N-by-N unitary matrix V**H;"
We aren't sure whether to parse this as:
"If (JOBZ = 'A') or (JOBZ = 'O' and M >= N), VT contains the N-by-N unitary matrix V**H;"
or as
"If (JOBZ = 'A' or JOBZ = 'O') and M >= N, VT contains the N-by-N unitary matrix V**H;"
The former seems likely since the docs for JOBZ say that if JOBZ is 'A', then "all M columns of U and all N rows of V**H are returned in the arrays U and VT;". However, just in case, can someone clarify how we should parse the above statement for the return value VT?
We (members of the Sage [1] and numpy development communities) are finding that on certain Mac OSX 10.5 machines using the Accelerate framework (IIRC), for 3x4 and other matrices where M<N, the last row of the returned VT appears to be all zeroes when JOBZ is 'A'. We can post more detailed example programs and output if needed.
Thanks,
Jason Grout
[1] http://www.sagemath.org

