CSTEQR  -  compute all eigenvalues and, optionally, eigen­
       vectors  of  a  symmetric  tridiagonal  matrix  using  the
       implicit QL or QR method


SYNOPSIS

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

           CHARACTER      COMPZ

           INTEGER        INFO, LDZ, N

           REAL           D( * ), E( * ), WORK( * )

           COMPLEX        Z( LDZ, * )


PURPOSE

       CSTEQR computes all eigenvalues and, optionally, eigenvec­
       tors of a symmetric tridiagonal matrix using the  implicit
       QL  or  QR method. The eigenvectors of a full or band com­
       plex Hermitian matrix can also be found if CHETRD or  CHP­
       TRD  or  CHBTRD  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  Hermitian matrix.  On entry, Z must
               contain the unitary  matrix  used  to  reduce  the
               original matrix to tridiagonal form.  = 'I':  Com­
               pute eigenvalues and eigenvectors of the tridiago­
               nal  matrix.   Z  is  initialized  to the identity
               matrix.

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

       D       (input/output) REAL 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) REAL array, dimension (N-1)
               On entry, the (n-1) subdiagonal  elements  of  the
               tridiagonal   matrix.    On   exit,   E  has  been
               destroyed.

       Z       (input/output) COMPLEX array, dimension (LDZ, N)
               On entry, if  COMPZ = 'V',  then  Z  contains  the
               unitary  matrix used in the reduction to tridiago­
               nal form.  On exit, if INFO = 0, then if  COMPZ  =
               'V',  Z  contains  the orthonormal eigenvectors of

               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 eigenvectors  are  desired,  then   LDZ  >=
               max(1,N).

       WORK    (workspace) REAL 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 ille­
               gal 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  unitarily
               similar to the original matrix.


Man(1) output converted with man2html