DSTECH

   Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
   November 2006

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.

Arguments

N
(input) INTEGER
The dimension of the tridiagonal matrix T.
A
(input) DOUBLE PRECISION array, dimension (N)
The diagonal entries of the tridiagonal matrix T.
B
(input) DOUBLE PRECISION array, dimension (N-1)
The offdiagonal entries of the tridiagonal matrix T.
EIG
(input) DOUBLE PRECISION array, dimension (N)
The purported eigenvalues to be checked.
TOL
(input) DOUBLE PRECISION
Error tolerance for checking, a multiple of the
machine precision.
WORK
(workspace) DOUBLE PRECISION array, dimension (N)
INFO
(output) 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.

Call Graph

Caller Graph