Previous: dptcon Up: ../lapack-d.html Next: dptrfs


dpteqr


 NAME
      DPTEQR - compute all eigenvalues and, optionally, eigenvec-
      tors 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 fac-
      tor

 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 calling
      DBDSQR to compute the singular values of the bidiagonal fac-
      tor.

      This routine computes the eigenvalues of the positive defin-
      ite tridiagonal matrix to high relative accuracy.  This
      means that if the eigenvalues range over many orders of mag-
      nitude in size, then the small eigenvalues and corresponding
      eigenvectors will be computed more accurately than, for
      example, with the standard 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. (The reduction to
      tridiagonal form, however, may preclude the possibility of
      obtaining high relative accuracy 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 tridiagonal
              matrix.  On normal exit, D contains the eigenvalues,
              in descending order.

      E       (input/output) DOUBLE PRECISION array, dimension (N-
              1)
              On entry, the (n-1) subdiagonal elements of the tri-
              diagonal 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 referenced.

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

 (max(1,4*N-4))
      WORK    (workspace) DOUBLE PRECISION array, dimension
              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:  if INFO = i, and i is: <= N  the Cholesky fac-
              torization 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.