Singular Value Decomposition Algorithms (SVD)

There are two types of driver routines for the SVD. In both, the computation proceeds in the following stages:

1.
The matrix A is reduced to bidiagonal form: A=U1 B V1T if A is real (A=U1 B V1H if A is complex), where U1 and V1 are orthogonal (unitary if A is complex), and B is real and upper-bidiagonal when $m \geq n$ and lower bidiagonal when m < n, so that B is nonzero only on the main diagonal and either on the first superdiagonal (if $m \geq n$) or the first subdiagonal (if m<n).

2.
The SVD of the bidiagonal matrix B is computed: $B=U_2 \Sigma V_2^T$, where U2 and V2 are orthogonal and $\Sigma$ is diagonal as described above. The singular vectors of A are then U = U1 U2 and V = V1 V2.
The drivers differ in how the SVD of the bidiagonal matrix is computed.


Table 2.5: Driver routines for singular value problems
Type of Function and storage scheme Single precision Double precision
problem   real complex real complex
SVD simple driver SGESVD CGESVD DGESVD ZGESVD
  divide and conquer driver SGESDD CGESDD DGESDD ZGESDD



1999-12-26