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


SYNOPSIS

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

           CHARACTER      COMPZ

           INTEGER        INFO, LDZ, N

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


PURPOSE

       DPTEQR 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  DBDSQR 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 symmetric positive def­
       inite  matrix can also be found if DSYTRD, DSPTRD, or DSB­
       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 symmetric
               matrix  also.   Array  Z  contains  the orthogonal
               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 tridiago­
               nal  matrix.   On  normal  exit,  D  contains  the


       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',  the  orthogonal  matrix
               used  in  the  reduction  to tridiagonal form.  On
               exit, if COMPZ = 'V', the orthonormal eigenvectors
               of  the original symmetric 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