dstech.f3
Usage
Functions/Subroutines
DSTECH
Function/Subroutine Documentation
subroutine dstech (integer n, double precision, dimension( * ) a, double precision, dimension( * ) b, double precision, dimension( * ) eig, double precision tol, double precision, dimension( * ) work, integer info)
DSTECH
Purpose:
!> !> Let T be the tridiagonal matrix with diagonal entries A(1) ,..., !> A(N) and offdiagonal entries B(1) ,..., B(N-1)). DSTECH checks to !> see if EIG(1) ,..., EIG(N) are indeed accurate eigenvalues of T. !> It does this by expanding each EIG(I) into an interval !> [SVD(I) - EPS, SVD(I) + EPS], merging overlapping intervals if !> any, and using Sturm sequences to count and verify whether each !> resulting interval has the correct number of eigenvalues (using !> DSTECT). Here EPS = TOL*MAZHEPS*MAXEIG, where MACHEPS is the !> machine precision and MAXEIG is the absolute value of the largest !> eigenvalue. If each interval contains the correct number of !> eigenvalues, INFO = 0 is returned, otherwise INFO is the index of !> the first eigenvalue in the first bad interval. !>
Parameters
N
!> N is INTEGER !> The dimension of the tridiagonal matrix T. !>
A
!> A is DOUBLE PRECISION array, dimension (N) !> The diagonal entries of the tridiagonal matrix T. !>
B
!> B is DOUBLE PRECISION array, dimension (N-1) !> The offdiagonal entries of the tridiagonal matrix T. !>
EIG
!> EIG is DOUBLE PRECISION array, dimension (N) !> The purported eigenvalues to be checked. !>
TOL
!> TOL is DOUBLE PRECISION !> Error tolerance for checking, a multiple of the !> machine precision. !>
WORK
!> WORK is DOUBLE PRECISION array, dimension (N) !>
INFO
!> INFO is INTEGER !> 0 if the eigenvalues are all correct (to within !> 1 +- TOL*MAZHEPS*MAXEIG) !> >0 if the interval containing the INFO-th eigenvalue !> contains the incorrect number of eigenvalues. !>
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 100 of file dstech.f.