![]() |
LAPACK
3.9.0
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 103 of file sstech.f.