LAPACK
3.6.1
LAPACK: Linear Algebra PACKage
|
subroutine dbdt05 | ( | integer | M, |
integer | N, | ||
double precision, dimension( lda, * ) | A, | ||
integer | LDA, | ||
double precision, dimension( * ) | S, | ||
integer | NS, | ||
double precision, dimension( ldu, * ) | U, | ||
integer | LDU, | ||
double precision, dimension( ldvt, * ) | VT, | ||
integer | LDVT, | ||
double precision, dimension( * ) | WORK, | ||
double precision | RESID | ||
) |
DBDT05 reconstructs a bidiagonal matrix B from its (partial) SVD: S = U' * B * V where U and V are orthogonal matrices and S is diagonal.
The test ratio to test the singular value decomposition is RESID = norm( S - U' * B * V ) / ( n * norm(B) * EPS ) where VT = V' and EPS is the machine precision.
[in] | M | M is INTEGER The number of rows of the matrices A and U. |
[in] | N | N is INTEGER The number of columns of the matrices A and VT. |
[in] | A | A is DOUBLE PRECISION array, dimension (LDA,N) The m by n matrix A. \param[in] LDA \verbatim LDA is INTEGER The leading dimension of the array A. LDA >= max(1,M). |
[in] | S | S is DOUBLE PRECISION array, dimension (NS) The singular values from the (partial) SVD of B, sorted in decreasing order. |
[in] | NS | NS is INTEGER The number of singular values/vectors from the (partial) SVD of B. |
[in] | U | U is DOUBLE PRECISION array, dimension (LDU,NS) The n by ns orthogonal matrix U in S = U' * B * V. |
[in] | LDU | LDU is INTEGER The leading dimension of the array U. LDU >= max(1,N) |
[in] | VT | VT is DOUBLE PRECISION array, dimension (LDVT,N) The n by ns orthogonal matrix V in S = U' * B * V. |
[in] | LDVT | LDVT is INTEGER The leading dimension of the array VT. |
[out] | WORK | WORK is DOUBLE PRECISION array, dimension (M,N) |
[out] | RESID | RESID is DOUBLE PRECISION The test ratio: norm(S - U' * A * V) / ( n * norm(A) * EPS ) |
Definition at line 126 of file dbdt05.f.