the right orthogonal matrix from b = bidiagonalize (a)
the left orthogonal matrix from b = bidiagonalize (a)
Calculate the desired threshold for setting elements to zero.
Count the number of nonzero elemennts in the superdiagonal.
Count the number of nonzero elemennts in the superdiagonal. Call if the maximum number of iterations exceeded, failure to converge
Deflate the bidiagonal matrix by iteratively turning superdiagonal elements to zero.
Deflate the bidiagonal matrix by iteratively turning superdiagonal elements to zero.
Deflate 2 by 2 block, handle separately.
Deflate 2 by 2 block, handle separately.
the lower index
The
SVD
class is used to solve Singular Value Decomposition for bidiagonal matrices.It computes the singular values and, optionally, the right and/or left singular vectors from the singular value decomposition (SVD) of a real n-by-n (upper) bidiagonal matrix B using the implicit zero-shift QR algorithm. The SVD of B has the form
B = Q * S * P.t
where S is the diagonal matrix of singular values, Q is an orthogonal matrix of left singular vectors, and P is an orthogonal matrix of right singular vectors. If left singular vectors are requested, this subroutine actually returns U*Q instead of Q, and, if right singular vectors are requested, this subroutine returns P.t * VT instead of P.T, for given real input matrices U and VT. When U and VT are the orthogonal matrices that reduce a general matrix A to bidiagonal form: A = U*B*VT, as computed by DGEBRD, then
A = (U*Q) * S * (P.t*VT)
is the SVD of the general matrix A. A positve tolerance (TOL) gives relative accurracy; for absolute accurracy negate it.
LAPACK SUBROUTINE DBDSQR (UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, WORK, INFO)
fortranwiki.org/fortran/show/svd
"Accurate singular values and differential qd algorithms," B. Parlett and V. Fernando, Technical Report CPAM-554, Mathematics Department, University of California at Berkeley, July 1992
"Computing Small Singular Values of Bidiagonal Matrices With Guaranteed High Relative Accuracy," J. Demmel and W. Kahan, LAPACK Working Note #3 (or SIAM J. Sci. Statist. Comput. 11:5, pp. 873-912, Sept 1990)