### ML_DGESDD – Computes the singular value decomposition (SVD) of a real M-by-N matrix A

Block SymbolLicensing group: MATRIX

Function Description
The output references yA, yS, yU, yVT, yWORK and yIWORK are always set to the corresponding input references uA, uS, uU, uVT, uWORK and uIWORK. If HLD = on then nothing is computed otherwise the LAPACK function DGESDD is called internally:

DGESDD(sJOBZ, M, N, uA, LDA, uS, uU, LDU, uVT, LDVT, uWORK, LWORK,
uIWORK, info);

where parameters of DGESDD are set in the following way:

• Integer input jobz is mapped to the string sJOBZ: $\left\{0,1\right\}\to \mathtt{\text{"A"}}$, $\left\{2\right\}\to \mathtt{\text{"S"}}$, $\left\{3\right\}\to \mathtt{\text{"O"}}$ and $\left\{4\right\}\to \mathtt{\text{"N"}}$.
• M is number of rows of the matrix referenced by uA.
• N is number of columns of the matrix referenced by uA.
• LDA, LDU and LDVT are leading dimensions of the matrices referenced by uA, uU and uVT.
• LWORK is number of elements of the vector referenced by uWORK.
• info is return code from the function DGESDD.

The error flag E is set to on if:

• the reference uA or uS or uU or uVT or uWORK or uIWORK is not defined (i.e. input uA or uS or uU or uVT or uWORK or uIWORK is not connected),
• number of elements of the vector referenced by uS is less than MINMN, the minimum of number of rows and number of columns of the matrix referenced by uA,
• number of elements of the integer vector referenced by uIWORK is less than $8\ast \mathtt{\text{MINMN}}$,
• the call of the function DGESDD returns error using the function XERBLA, see the return code info and system log.

See LAPACK documentation [7] for more details.

Inputs

 uA Input reference to matrix A Reference uS Input reference to vector of singular values Reference uU Input reference to matrix containing left singular vectors of A Reference uVT Input reference to matrix containing right singular vectors of A Reference uWORK Input reference to working vector WORK Reference uIWORK Input reference to integer working vector WORK Reference jobz Specifies options for computing  $\odot$0.00E+00 Long(I32) HLD Hold Bool

Outputs

 yA Output reference to matrix A Reference yS Output reference to vector of singular values Reference yU Output reference to matrix containing left singular vectors of A Reference yVT Output reference to matrix containing right singular vectors of A Reference yWORK Output reference to working vector WORK Reference yIWORK Output reference to integer working vector WORK Reference E Error indicator Bool info LAPACK function result info. If info = -i, the i=th argument had an illegal value Long (I32)

2020 © REX Controls s.r.o., www.rexygen.com