ZPTEQR  -  compute all eigenvalues and, optionally, eigen­
       vectors  of  a  symmetric  positive  definite  tridiagonal
       matrix by first factoring the matrix using DPTTRF and then
       calling ZBDSQR to compute the singular values of the bidi­
       agonal factor


SYNOPSIS

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

           CHARACTER      COMPZ

           INTEGER        INFO, LDZ, N

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

           COMPLEX*16     Z( LDZ, * )


PURPOSE

       ZPTEQR computes all eigenvalues and, optionally, eigenvec­
       tors of a symmetric positive definite  tridiagonal  matrix
       by  first factoring the matrix using DPTTRF and then call­
       ing ZBDSQR to compute the singular values of the  bidiago­
       nal  factor.  This routine computes the eigenvalues of the
       positive definite  tridiagonal  matrix  to  high  relative
       accuracy.   This  means that if the eigenvalues range over
       many orders of magnitude in size, then the small eigenval­
       ues  and  corresponding eigenvectors will be computed more
       accurately than, for example, with the standard QR method.

       The  eigenvectors of a full or band positive definite Her­
       mitian matrix can also be found if ZHETRD, ZHPTRD, or ZHB­
       TRD  has  been  used  to reduce this matrix to tridiagonal
       form.  (The reduction to tridiagonal  form,  however,  may
       preclude  the possibility of obtaining high relative accu­
       racy in the small eigenvalues of the original  matrix,  if
       these eigenvalues range over many orders of magnitude.)


ARGUMENTS

       COMPZ   (input) CHARACTER*1
               = 'N':  Compute eigenvalues only.
               = 'V':  Compute eigenvectors of original Hermitian
               matrix also.  Array Z contains the unitary  matrix
               used  to reduce the original matrix to tridiagonal
               form.  = 'I':  Compute eigenvectors of tridiagonal
               matrix also.

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

       D       (input/output) DOUBLE PRECISION array, dimension
               (N)
               On  entry,  the  n  diagonal   elements   of   the

               the eigenvalues, in descending 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) COMPLEX*16 array, dimension (LDZ,
               N)
               On entry, if COMPZ = 'V', the unitary matrix  used
               in the reduction to tridiagonal form.  On exit, if
               COMPZ = 'V', the orthonormal eigenvectors  of  the
               original  Hermitian  matrix;  if  COMPZ = 'I', the
               orthonormal  eigenvectors   of   the   tridiagonal
               matrix.   If  INFO  >  0  on  exit, Z contains the
               eigenvectors  associated  with  only  the   stored
               eigenvalues.   If  COMPZ = 'N', then Z is not ref­
               erenced.

       LDZ     (input) INTEGER
               The leading dimension of the array Z.  LDZ  >=  1,
               and if COMPZ = 'V' or 'I', LDZ >= max(1,N).

       WORK    (workspace) DOUBLE PRECISION array, dimension
               (4*N)

       INFO    (output) INTEGER
               = 0:  successful exit.
               < 0:  if INFO = -i, the i-th argument had an ille­
               gal value.
               >  0:   if  INFO = i, and i is: <= N  the Cholesky
               factorization of the matrix could not be performed
               because  the i-th principal minor was not positive
               definite.  > N   the SVD algorithm failed to  con­
               verge;  if  INFO = N+i, i off-diagonal elements of
               the bidiagonal factor did not converge to zero.


Man(1) output converted with man2html