claed0 - compute all eigenvalues and corresponding eigenvectors of an unreduced symmetric tridiagonal matrix using the divide and conquer method. Used by cstedc
SUBROUTINE CLAED0(QSIZ, N, D, E, Q, LDQ, QSTORE, LDQS, RWORK, IWORK, INFO) INTEGER INFO, LDQ, LDQS, N, QSIZ INTEGER IWORK(*) REAL D(*), E(*), RWORK(*) COMPLEX Q(LDQ,*), QSTORE(LDQS,*) SUBROUTINE CLAED0_64(QSIZ, N, D, E, Q, LDQ, QSTORE, LDQS, RWORK, IWORK, INFO) INTEGER*8 INFO, LDQ, LDQS, N, QSIZ INTEGER*8 IWORK(*) REAL D(*), E(*), RWORK(*) COMPLEX Q(LDQ,*), QSTORE(LDQS,*) F95 INTERFACE SUBROUTINE LAED0(QSIZ, N, D, E, Q, LDQ, QSTORE, LDQS, RWORK, IWORK, INFO) INTEGER :: QSIZ, N, LDQ, LDQS, INFO INTEGER, DIMENSION(:) :: IWORK REAL, DIMENSION(:) :: D, E, RWORK COMPLEX, DIMENSION(:,:) :: Q, QSTORE SUBROUTINE LAED0_64(QSIZ, N, D, E, Q, LDQ, QSTORE, LDQS, RWORK, IWORK, INFO) INTEGER(8) :: QSIZ, N, LDQ, LDQS, INFO INTEGER(8), DIMENSION(:) :: IWORK REAL, DIMENSION(:) :: D, E, RWORK COMPLEX, DIMENSION(:,:) :: Q, QSTORE C INTERFACE #include <sunperf.h> void claed0 (int qsiz, int n, float *d, float *e, floatcomplex *q, int ldq, floatcomplex *qstore, int ldqs, int *info); void claed0_64 (long qsiz, long n, float *d, float *e, floatcomplex *q, long ldq, floatcomplex *qstore, long ldqs, long *info);
Oracle Solaris Studio Performance Library claed0(3P)
NAME
claed0 - compute all eigenvalues and corresponding eigenvectors of an
unreduced symmetric tridiagonal matrix using the divide and conquer
method. Used by cstedc
SYNOPSIS
SUBROUTINE CLAED0(QSIZ, N, D, E, Q, LDQ, QSTORE, LDQS, RWORK, IWORK,
INFO)
INTEGER INFO, LDQ, LDQS, N, QSIZ
INTEGER IWORK(*)
REAL D(*), E(*), RWORK(*)
COMPLEX Q(LDQ,*), QSTORE(LDQS,*)
SUBROUTINE CLAED0_64(QSIZ, N, D, E, Q, LDQ, QSTORE, LDQS, RWORK, IWORK,
INFO)
INTEGER*8 INFO, LDQ, LDQS, N, QSIZ
INTEGER*8 IWORK(*)
REAL D(*), E(*), RWORK(*)
COMPLEX Q(LDQ,*), QSTORE(LDQS,*)
F95 INTERFACE
SUBROUTINE LAED0(QSIZ, N, D, E, Q, LDQ, QSTORE, LDQS, RWORK, IWORK,
INFO)
INTEGER :: QSIZ, N, LDQ, LDQS, INFO
INTEGER, DIMENSION(:) :: IWORK
REAL, DIMENSION(:) :: D, E, RWORK
COMPLEX, DIMENSION(:,:) :: Q, QSTORE
SUBROUTINE LAED0_64(QSIZ, N, D, E, Q, LDQ, QSTORE, LDQS, RWORK, IWORK,
INFO)
INTEGER(8) :: QSIZ, N, LDQ, LDQS, INFO
INTEGER(8), DIMENSION(:) :: IWORK
REAL, DIMENSION(:) :: D, E, RWORK
COMPLEX, DIMENSION(:,:) :: Q, QSTORE
C INTERFACE
#include <sunperf.h>
void claed0 (int qsiz, int n, float *d, float *e, floatcomplex *q, int
ldq, floatcomplex *qstore, int ldqs, int *info);
void claed0_64 (long qsiz, long n, float *d, float *e, floatcomplex *q,
long ldq, floatcomplex *qstore, long ldqs, long *info);
PURPOSE
Using the divide and conquer method, claed0 computes all eigenvalues of
a symmetric tridiagonal matrix which is one diagonal block of those
from reducing a dense or band Hermitian matrix and corresponding eigen-
vectors of the dense or band matrix.
ARGUMENTS
QSIZ (input)
QSIZ is INTEGER
The dimension of the unitary matrix used to reduce the full
matrix to tridiagonal form. QSIZ >= N if ICOMPQ = 1.
N (input)
N is INTEGER
The dimension of the symmetric tridiagonal matrix. N >= 0.
D (input/output)
D is REAL array, dimension (N)
On entry, the diagonal elements of the tridiagonal matrix.
On exit, the eigenvalues in ascending order.
E (input/output)
E is REAL array, dimension (N-1)
On entry, the off-diagonal elements of the tridiagonal
matrix.
On exit, E has been destroyed.
Q (input/output)
Q is COMPLEX array, dimension (LDQ,N)
On entry, Q must contain an QSIZ x N matrix whose columns
unitarily orthonormal. It is a part of the unitary matrix
that reduces the full dense Hermitian matrix to a (reducible)
symmetric tridiagonal matrix.
LDQ (input)
LDQ is INTEGER
The leading dimension of the array Q.
LDQ >= max(1,N).
IWORK (output)
IWORK is INTEGER array,
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 )
RWORK (output)
RWORK is REAL array,
dimension (1 + 3*N + 2*N*lg N + 3*N**2)
( lg( N ) = smallest integer k
such that 2^k >= N )
QSTORE (output)
QSTORE is COMPLEX array, dimension (LDQS, N)
Used to store parts of the eigenvector matrix when the updat-
ing matrix multiplies take place.
LDQS (input)
LDQS is INTEGER
The leading dimension of the array QSTORE.
LDQS >= max(1,N).
INFO (output)
INFO is INTEGER
= 0: successful exit.
< 0: if INFO = -i, the i-th argument had an illegal 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).
7 Nov 2015 claed0(3P)