LAPACK 3.12.1
LAPACK: Linear Algebra PACKage
|
subroutine zbdt03 | ( | character | uplo, |
integer | n, | ||
integer | kd, | ||
double precision, dimension( * ) | d, | ||
double precision, dimension( * ) | e, | ||
complex*16, dimension( ldu, * ) | u, | ||
integer | ldu, | ||
double precision, dimension( * ) | s, | ||
complex*16, dimension( ldvt, * ) | vt, | ||
integer | ldvt, | ||
complex*16, dimension( * ) | work, | ||
double precision | resid ) |
ZBDT03
!> !> ZBDT03 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 133 of file zbdt03.f.