DSTEQR(3)                  MathKeisan LAPACK routine                 DSTEQR(3)



NAME
       DSTEQR  -  all eigenvalues and, optionally, eigenvectors of a symmetric
       tridiagonal matrix using the implicit QL or QR method

SYNOPSIS
       SUBROUTINE DSTEQR( COMPZ, N, D, E, Z, LDZ, WORK, INFO )

           CHARACTER      COMPZ

           INTEGER        INFO, LDZ, N

           DOUBLE         PRECISION D( * ), E( * ), WORK( * ), Z( LDZ, * )

PURPOSE
       DSTEQR computes all eigenvalues and, optionally, eigenvectors of a sym-
       metric  tridiagonal  matrix  using  the  implicit QL or QR method.  The
       eigenvectors of a full or band symmetric matrix can also  be  found  if
       DSYTRD  or  DSPTRD  or  DSBTRD  has  been used to reduce this matrix to
       tridiagonal form.


ARGUMENTS
       COMPZ   (input) CHARACTER*1
               = 'N':  Compute eigenvalues only.
               = 'V':  Compute eigenvalues and eigenvectors  of  the  original
               symmetric  matrix.   On  entry,  Z  must contain the orthogonal
               matrix used to reduce the original matrix to tridiagonal  form.
               = 'I':  Compute eigenvalues and eigenvectors of the tridiagonal
               matrix.  Z is initialized to the identity matrix.

       N       (input) INTEGER
               The order of the matrix.  N >= 0.

       D       (input/output) DOUBLE PRECISION array, dimension (N)
               On entry, the diagonal elements of the tridiagonal matrix.   On
               exit, if INFO = 0, the eigenvalues in ascending order.

       E       (input/output) DOUBLE PRECISION array, dimension (N-1)
               On  entry,  the  (n-1)  subdiagonal elements of the tridiagonal
               matrix.  On exit, E has been destroyed.

       Z       (input/output) DOUBLE PRECISION array, dimension (LDZ, N)
               On entry, if  COMPZ =  'V',  then  Z  contains  the  orthogonal
               matrix  used in the reduction to tridiagonal form.  On exit, if
               INFO = 0, then if  COMPZ =  'V',  Z  contains  the  orthonormal
               eigenvectors  of  the original symmetric matrix, and if COMPZ =
               'I', Z contains the orthonormal eigenvectors of  the  symmetric
               tridiagonal  matrix.  If COMPZ = 'N', then Z is not referenced.

       LDZ     (input) INTEGER
               The leading dimension of the array Z.  LDZ >= 1, and if  eigen-
               vectors are desired, then  LDZ >= max(1,N).

       WORK    (workspace) DOUBLE PRECISION array, dimension (max(1,2*N-2))
               If COMPZ = 'N', then WORK is not referenced.

       INFO    (output) INTEGER
               = 0:  successful exit
               < 0:  if INFO = -i, the i-th argument had an illegal value
               > 0:  the algorithm has failed to find all the eigenvalues in a
               total of 30*N iterations; if INFO = i, then  i  elements  of  E
               have  not  converged  to  zero;  on  exit,  D and E contain the
               elements of a symmetric tridiagonal matrix  which  is  orthogo-
               nally similar to the original matrix.



 LAPACK routine (version 3.1)    November 2006                       DSTEQR(3)