DLAED0 - compute all eigenvalues and corresponding eigen
vectors of a symmetric tridiagonal matrix using the divide
and conquer method
SYNOPSIS
SUBROUTINE DLAED0( ICOMPQ, QSIZ, N, D, E, Q, LDQ, QSTORE,
LDQS, WORK, IWORK, INFO )
INTEGER ICOMPQ, INFO, LDQ, LDQS, N, QSIZ
INTEGER IWORK( * )
DOUBLE PRECISION D( * ), E( * ), Q( LDQ, * ),
QSTORE( LDQS, * ), WORK( * )
PURPOSE
DLAED0 computes all eigenvalues and corresponding eigen
vectors of a symmetric tridiagonal matrix using the divide
and conquer method.
ARGUMENTS
ICOMPQ (input) INTEGER
= 0: Compute eigenvalues only.
= 1: Compute eigenvectors of original dense sym
metric matrix also. On entry, Q contains the
orthogonal matrix used to reduce the original
matrix to tridiagonal form. = 2: Compute eigen
values and eigenvectors of tridiagonal matrix.
QSIZ (input) INTEGER
The dimension of the orthogonal matrix used to
reduce the full matrix to tridiagonal form. QSIZ
>= N if ICOMPQ = 1.
N (input) INTEGER
The dimension of the symmetric tridiagonal matrix.
N >= 0.
D (input/output) DOUBLE PRECISION array, dimension
(N)
On entry, the main diagonal of the tridiagonal
matrix. On exit, its eigenvalues.
E (input) DOUBLE PRECISION array, dimension (N-1)
The off-diagonal elements of the tridiagonal
matrix. On exit, E has been destroyed.
Q (input/output) DOUBLE PRECISION array, dimension
(LDQ, N)
On entry, Q must contain an N-by-N orthogonal
matrix. If ICOMPQ = 0 Q is not referenced. If
ICOMPQ = 1 On entry, Q is a subset of the
columns of the orthogonal matrix used to reduce the
the subset of the full matrix which is being decom
posed at this time. If ICOMPQ = 2 On entry, Q
will be the identity matrix. On exit, Q contains
the eigenvectors of the tridiagonal matrix.
LDQ (input) INTEGER
The leading dimension of the array Q. If eigenvec
tors are desired, then LDQ >= max(1,N). In any
case, LDQ >= 1.
QSTORE (workspace) DOUBLE PRECISION array, dimen
sion (LDQS, N) Referenced only when ICOMPQ = 1.
Used to store parts of the eigenvector matrix when
the updating matrix multiplies take place.
LDQS (input) INTEGER
The leading dimension of the array QSTORE. If
ICOMPQ = 1, then LDQS >= max(1,N). In any case,
LDQS >= 1.
WORK (workspace) DOUBLE PRECISION array,
If ICOMPQ = 0 or 1, the dimension of WORK must be
at least 1 + 3*N + 2*N*lg N + 2*N**2 ( lg( N ) =
smallest integer k such that 2^k >= N ) If ICOMPQ =
2, the dimension of WORK must be at least 4*N +
N**2.
IWORK (workspace) INTEGER array,
If ICOMPQ = 0 or 1, the dimension of IWORK must be
at least 6 + 6*N + 5*N*lg N. ( lg( N ) = smallest
integer k such that 2^k >= N ) If ICOMPQ = 2, the
dimension of IWORK must be at least 3 + 5*N.
INFO (output) INTEGER
= 0: successful exit.
< 0: if INFO = -i, the i-th argument had an ille
gal value.
> 0: The algorithm failed to compute an eigenvalue
while working on the submatrix lying in rows and
columns INFO/(N+1) through mod(INFO,N+1).
FURTHER DETAILS
Based on contributions by
Jeff Rutter, Computer Science Division, University of
California
at Berkeley, USA
Man(1) output converted with
man2html