Contents
dsteqr - compute all eigenvalues and, optionally, eigenvec-
tors of a symmetric tridiagonal matrix using the implicit QL
or QR method
SUBROUTINE DSTEQR(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
CHARACTER * 1 COMPZ
INTEGER N, LDZ, INFO
DOUBLE PRECISION D(*), E(*), Z(LDZ,*), WORK(*)
SUBROUTINE DSTEQR_64(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
CHARACTER * 1 COMPZ
INTEGER*8 N, LDZ, INFO
DOUBLE PRECISION 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(8), DIMENSION(:) :: D, E, WORK
REAL(8), DIMENSION(:,:) :: Z
SUBROUTINE STEQR_64(COMPZ, N, D, E, Z, [LDZ], [WORK], [INFO])
CHARACTER(LEN=1) :: COMPZ
INTEGER(8) :: N, LDZ, INFO
REAL(8), DIMENSION(:) :: D, E, WORK
REAL(8), DIMENSION(:,:) :: Z
C INTERFACE
#include <sunperf.h>
void dsteqr(char compz, int n, double *d, double *e, double
*z, int ldz, int *info);
void dsteqr_64(char compz, long n, double *d, double *e,
double *z, long ldz, long *info);
dsteqr 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.
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.