dbdt03.f3
Usage
Functions/Subroutines
subroutine dbdt03 (uplo, n, kd, d, e, u, ldu, s, vt, ldvt, work, resid)
DBDT03
Function/Subroutine Documentation
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
Purpose:
!> !> 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. !>
Parameters
UPLO
!> UPLO is CHARACTER*1 !> Specifies whether the matrix B is upper or lower bidiagonal. !> = 'U': Upper bidiagonal !> = 'L': Lower bidiagonal !>
N
!> N is INTEGER !> The order of the matrix B. !>
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. !>
D
!> D is DOUBLE PRECISION array, dimension (N) !> The n diagonal elements of the bidiagonal matrix B. !>
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'. !>
U
!> U is DOUBLE PRECISION array, dimension (LDU,N) !> The n by n orthogonal matrix U in the reduction B = U'*A*P. !>
LDU
!> LDU is INTEGER !> The leading dimension of the array U. LDU >= max(1,N) !>
S
!> S is DOUBLE PRECISION array, dimension (N) !> The singular values from the SVD of B, sorted in decreasing !> order. !>
VT
!> VT is DOUBLE PRECISION array, dimension (LDVT,N) !> The n by n orthogonal matrix V' in the reduction !> B = U * S * V'. !>
LDVT
!> LDVT is INTEGER !> The leading dimension of the array VT. !>
WORK
!> WORK is DOUBLE PRECISION array, dimension (2*N) !>
RESID
!> RESID is DOUBLE PRECISION !> The test ratio: norm(B - U * S * V') / ( n * norm(A) * EPS ) !>
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 133 of file dbdt03.f.