LAPACK 3.12.1
LAPACK: Linear Algebra PACKage
|
subroutine sstech | ( | integer | n, |
real, dimension( * ) | a, | ||
real, dimension( * ) | b, | ||
real, dimension( * ) | eig, | ||
real | tol, | ||
real, dimension( * ) | work, | ||
integer | info ) |
SSTECH
!> !> Let T be the tridiagonal matrix with diagonal entries A(1) ,..., !> A(N) and offdiagonal entries B(1) ,..., B(N-1)). SSTECH 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 !> SSTECT). Here EPS = TOL*MACHEPS*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. !>
[in] | N | !> N is INTEGER !> The dimension of the tridiagonal matrix T. !> |
[in] | A | !> A is REAL array, dimension (N) !> The diagonal entries of the tridiagonal matrix T. !> |
[in] | B | !> B is REAL array, dimension (N-1) !> The offdiagonal entries of the tridiagonal matrix T. !> |
[in] | EIG | !> EIG is REAL array, dimension (N) !> The purported eigenvalues to be checked. !> |
[in] | TOL | !> TOL is REAL !> Error tolerance for checking, a multiple of the !> machine precision. !> |
[out] | WORK | !> WORK is REAL array, dimension (N) !> |
[out] | INFO | !> INFO is INTEGER !> 0 if the eigenvalues are all correct (to within !> 1 +- TOL*MACHEPS*MAXEIG) !> >0 if the interval containing the INFO-th eigenvalue !> contains the incorrect number of eigenvalues. !> |
Definition at line 100 of file sstech.f.