ssvdch.f3
Usage
Functions/Subroutines
subroutine ssvdch (n, s, e, svd, tol, info)
SSVDCH
Function/Subroutine Documentation
subroutine ssvdch (integer n, real, dimension( * ) s, real, dimension( * ) e, real, dimension( * ) svd, real tol, integer info)
SSVDCH
Purpose:
!> !> SSVDCH checks to see if SVD(1) ,..., SVD(N) are accurate singular !> values of the bidiagonal matrix B with diagonal entries !> S(1) ,..., S(N) and superdiagonal entries E(1) ,..., E(N-1)). !> It does this by expanding each SVD(I) into an interval !> [SVD(I) * (1-EPS) , SVD(I) * (1+EPS)], merging overlapping intervals !> if any, and using Sturm sequences to count and verify whether each !> resulting interval has the correct number of singular values (using !> SSVDCT). Here EPS=TOL*MAX(N/10,1)*MACHEP, where MACHEP is the !> machine precision. The routine assumes the singular values are sorted !> with SVD(1) the largest and SVD(N) smallest. If each interval !> contains the correct number of singular values, INFO = 0 is returned, !> otherwise INFO is the index of the first singular value in the first !> bad interval. !>
Parameters
N
!> N is INTEGER !> The dimension of the bidiagonal matrix B. !>
S
!> S is REAL array, dimension (N) !> The diagonal entries of the bidiagonal matrix B. !>
E
!> E is REAL array, dimension (N-1) !> The superdiagonal entries of the bidiagonal matrix B. !>
SVD
!> SVD is REAL array, dimension (N) !> The computed singular values to be checked. !>
TOL
!> TOL is REAL !> Error tolerance for checking, a multiplier of the !> machine precision. !>
INFO
!> INFO is INTEGER !> =0 if the singular values are all correct (to within !> 1 +- TOL*MACHEPS) !> >0 if the interval containing the INFO-th singular value !> contains the incorrect number of singular values. !>
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 96 of file ssvdch.f.