Contents


NAME

     ssteqr - compute all eigenvalues and, optionally,  eigenvec-
     tors of a symmetric tridiagonal matrix using the implicit QL
     or QR method

SYNOPSIS

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

     CHARACTER * 1 COMPZ
     INTEGER N, LDZ, INFO
     REAL D(*), E(*), Z(LDZ,*), WORK(*)

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

     CHARACTER * 1 COMPZ
     INTEGER*8 N, LDZ, INFO
     REAL D(*), E(*), Z(LDZ,*), WORK(*)

  F95 INTERFACE
     SUBROUTINE STEQR(COMPZ, N, D, E, Z, [LDZ], [WORK], [INFO])

     CHARACTER(LEN=1) :: COMPZ
     INTEGER :: N, LDZ, INFO
     REAL, DIMENSION(:) :: D, E, WORK
     REAL, DIMENSION(:,:) :: Z

     SUBROUTINE STEQR_64(COMPZ, N, D, E, Z, [LDZ], [WORK], [INFO])

     CHARACTER(LEN=1) :: COMPZ
     INTEGER(8) :: N, LDZ, INFO
     REAL, DIMENSION(:) :: D, E, WORK
     REAL, DIMENSION(:,:) :: Z

  C INTERFACE
     #include <sunperf.h>

     void ssteqr(char compz, int n, float *d, float *e, float *z,
               int ldz, int *info);

     void ssteqr_64(char compz, long n, float *d, float *e, float
               *z, long ldz, long *info);

PURPOSE

     ssteqr computes all eigenvalues and,  optionally,  eigenvec-
     tors of a symmetric tridiagonal matrix using the implicit QL
     or 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.

ARGUMENTS

     COMPZ (input)
               = 'N':  Compute eigenvalues only.
               = 'V':  Compute eigenvalues  and  eigenvectors  of
               the  original  symmetric matrix.  On entry, Z must
               contain the orthogonal matrix used to  reduce  the
               original matrix to tridiagonal form.  = 'I':  Com-
               pute eigenvalues and eigenvectors of the tridiago-
               nal  matrix.   Z  is  initialized  to the identity
               matrix.

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

     D (input/output)
               On entry, the diagonal elements of the tridiagonal
               matrix.   On exit, if INFO = 0, the eigenvalues in
               ascending order.

     E (input/output)
               On entry, the (n-1) subdiagonal  elements  of  the
               tridiagonal  matrix.   On  exit,  E  has been des-
               troyed.

     Z (input) On entry, if  COMPZ = 'V',  then  Z  contains  the
               orthogonal  matrix used in the reduction to tridi-
               agonal form.  On exit, if INFO = 0, then if  COMPZ
               =  'V', Z contains the orthonormal eigenvectors of
               the original symmetric matrix, and if COMPZ = 'I',
               Z  contains  the  orthonormal  eigenvectors of the
               symmetric tridiagonal matrix.   If  COMPZ  =  'N',
               then Z is not referenced.

     LDZ (input)
               The leading dimension of the array Z.  LDZ  >=  1,
               and  if  eigenvectors  are  desired,  then  LDZ >=
               max(1,N).

     WORK (workspace)
               dimension(max(1,2*N-2)) If COMPZ = 'N', then  WORK
               is not referenced.
     INFO (output)
               = 0:  successful exit
               < 0:  if INFO = -i, the i-th argument had an ille-
               gal value
               > 0:  the algorithm has failed  to  find  all  the
               eigenvalues in a total of 30*N iterations; if INFO
               = i, then i elements of E have  not  converged  to
               zero;  on  exit, D and E contain the elements of a
               symmetric tridiagonal matrix which is orthogonally
               similar to the original matrix.