Previous: sptcon Up: ../lapack-s.html Next: sptrfs


spteqr


 NAME
      SPTEQR - compute all eigenvalues and, optionally, eigenvec-
      tors of a symmetric positive definite tridiagonal matrix by
      first factoring the matrix using SPTTRF, and then calling
      SBDSQR to compute the singular values of the bidiagonal fac-
      tor

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

          CHARACTER      COMPZ

          INTEGER        INFO, LDZ, N

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

 PURPOSE
      SPTEQR computes all eigenvalues and, optionally, eigenvec-
      tors of a symmetric positive definite tridiagonal matrix by
      first factoring the matrix using SPTTRF, and then calling
      SBDSQR 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 SSYTRD or SSPTRD or SSBTRD 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) REAL 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) REAL 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) REAL 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).

      WORK    (workspace) REAL array, dimension (max(1,4*N-4))
              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.