TSTURM(3F)

TSTURM, STSTURM - EISPACK routine. This subroutine finds those eigenvalues of a TRIDIAGONAL SYMMETRIC matrix which lie in a specified interval and their associated eigenvectors, using bisection and inverse iteration.

Showing IRIX 6.5.30 (default release). Unchanged since IRIX 6.5.

NAME
     TSTURM, STSTURM  -  EISPACK routine.  This subroutine finds those
     eigenvalues of a TRIDIAGONAL SYMMETRIC matrix which lie in a specified
     interval and their associated eigenvectors, using bisection and inverse
     iteration.


SYNOPSYS
          subroutine  tsturm(nm,n,eps1,d,e,e2,lb,ub,mm,m,w,z,ierr,rv1,rv2,
          1             rv3,rv4,rv5,rv6)
          integer          nm, n, mm, m, ierr
          double precision eps1, lb, ub
          double precision d(n), e(n), e2(n), w(mm), z(nm, mm)
          double precision rv1(n), rv2(n), rv3(n), rv4(n), rv5(n), rv6(n)

          subroutine ststurm(nm,n,eps1,d,e,e2,lb,ub,mm,m,w,z,ierr,rv1,rv2,
          1             rv3,rv4,rv5,rv6)
          integer          nm, n, mm, m, ierr
          real             eps1, lb, ub
          real             d(n), e(n), e2(n), w(mm), z(nm, mm)
          real             rv1(n), rv2(n), rv3(n), rv4(n), rv5(n), rv6(n)



DESCRIPTION
     On Input

     NM must be set to the row dimension of two-dimensional array parameters
     as declared in the calling program dimension statement.

     N is the order of the matrix.

     EPS1 is an absolute error tolerance for the computed eigenvalues.  It
     should be chosen commensurate with relative perturbations in the matrix
     elements of the order of the relative machine precision.  If the input
     EPS1 is non-positive, it is reset for each submatrix to a default value,
     namely, minus the product of the relative machine precision and the 1-
     norm of the submatrix.

     D contains the diagonal elements of the input matrix.

     E contains the subdiagonal elements of the input matrix in its last N-1
     positions.  E(1) is arbitrary.

     E2 contains the squares of the corresponding elements of E. E2(1) is
     arbitrary.

     LB and UB define the interval to be searched for eigenvalues. If LB is
     not less than UB, no eigenvalues will be found.

     MM should be set to an upper bound for the number of eigenvalues in the
     interval.  WARNING. If more than MM eigenvalues are determined to lie in
     the interval, an error return is made with no values or vectors found.
     On Output

     EPS1 is unaltered unless it has been reset to its (last) default value.

     D and E are unaltered. ELEMENTS of E2, corresponding to elements of E
     regarded as negligible, have been replaced by zero causing the matrix to
     split into a direct sum of submatrices.  E2(1) is also set to zero.

     M is the number of eigenvalues determined to lie in (LB,UB).

     W contains the M eigenvalues in ascending order if the matrix does not
     split.  If the matrix splits, the eigenvalues are in ascending order for
     each submatrix.  If a vector error exit is made, W contains those values
     already found.

     Z contains the associated set of orthonormal eigenvectors. If an error
     exit is made, Z contains those vectors already found.

     IERR is set to Zero       for normal return, 3*N+1      if M exceeds MM.
     4*N+R      if the eigenvector corresponding to the R-th
        eigenvalue fails to converge in 5 iterations.

     RV1 , RV2, RV3, RV4, RV5, and RV6 are temporary storage arrays. The ALGOL
     procedure STURMCNT contained in TRISTURM appears in TSTURM in-line.
     Questions and comments should be directed to B. S. Garbow, APPLIED
     MATHEMATICS DIVISION, ARGONNE NATIONAL LABORATORY