![]() |
LAPACK
3.9.0
LAPACK: Linear Algebra PACKage
|
| subroutine dbdt03 | ( | character | UPLO, |
| integer | N, | ||
| integer | KD, | ||
| double precision, dimension( * ) | D, | ||
| double precision, dimension( * ) | E, | ||
| double precision, dimension( ldu, * ) | U, | ||
| integer | LDU, | ||
| double precision, dimension( * ) | S, | ||
| double precision, dimension( ldvt, * ) | VT, | ||
| integer | LDVT, | ||
| double precision, dimension( * ) | WORK, | ||
| double precision | RESID | ||
| ) |
DBDT03
DBDT03 reconstructs a bidiagonal matrix B from its 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( B - U * S * VT ) / ( n * norm(B) * EPS )
where VT = V' and EPS is the machine precision. | [in] | UPLO | UPLO is CHARACTER*1
Specifies whether the matrix B is upper or lower bidiagonal.
= 'U': Upper bidiagonal
= 'L': Lower bidiagonal |
| [in] | N | N is INTEGER
The order of the matrix B. |
| [in] | KD | KD is INTEGER
The bandwidth of the bidiagonal matrix B. If KD = 1, the
matrix B is bidiagonal, and if KD = 0, B is diagonal and E is
not referenced. If KD is greater than 1, it is assumed to be
1, and if KD is less than 0, it is assumed to be 0. |
| [in] | D | D is DOUBLE PRECISION array, dimension (N)
The n diagonal elements of the bidiagonal matrix B. |
| [in] | E | E is DOUBLE PRECISION array, dimension (N-1)
The (n-1) superdiagonal elements of the bidiagonal matrix B
if UPLO = 'U', or the (n-1) subdiagonal elements of B if
UPLO = 'L'. |
| [in] | U | U is DOUBLE PRECISION array, dimension (LDU,N)
The n by n orthogonal matrix U in the reduction B = U'*A*P. |
| [in] | LDU | LDU is INTEGER
The leading dimension of the array U. LDU >= max(1,N) |
| [in] | S | S is DOUBLE PRECISION array, dimension (N)
The singular values from the SVD of B, sorted in decreasing
order. |
| [in] | VT | VT is DOUBLE PRECISION array, dimension (LDVT,N)
The n by n orthogonal matrix V' in the reduction
B = U * S * V'. |
| [in] | LDVT | LDVT is INTEGER
The leading dimension of the array VT. |
| [out] | WORK | WORK is DOUBLE PRECISION array, dimension (2*N) |
| [out] | RESID | RESID is DOUBLE PRECISION
The test ratio: norm(B - U * S * V') / ( n * norm(A) * EPS ) |
Definition at line 137 of file dbdt03.f.