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


SYNOPSIS

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

           CHARACTER      COMPZ

           INTEGER        INFO, LDZ, N

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

           COMPLEX        Z( LDZ, * )


PURPOSE

       CPTEQR computes all eigenvalues and, optionally, eigenvec­
       tors of a symmetric positive definite  tridiagonal  matrix
       by  first factoring the matrix using SPTTRF and then call­
       ing CBDSQR 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 CHETRD, CHPTRD, or CHB­
       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) REAL array, dimension (N)
               On entry, the n diagonal elements of the tridiago­
               nal  matrix.   On  normal  exit,  D  contains  the


       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', 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) REAL 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