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)