Intel® oneAPI Math Kernel Library Developer Reference - Fortran
Computes all eigenvalues and eigenvectors of a symmetric tridiagonal matrix in parallel.
call psstedc (compz, n, d, e, q, iq, jq, descq, work, lwork, iwork, liwork, info )
call pdstedc (compz, n, d, e, q, iq, jq, descq, work, lwork, iwork, liwork, info )
p?stedc computes all eigenvalues and eigenvectors of a symmetric tridiagonal matrix in parallel, using the divide and conquer algorithm.
CHARACTER*1.
= 'N': Compute eigenvalues only. (NOT IMPLEMENTED YET)
= 'I': Compute eigenvectors of tridiagonal matrix also.
= 'V': Compute eigenvectors of original dense symmetric matrix also. On entry, Z contains the orthogonal matrix used to reduce the original matrix to tridiagonal form. (NOT IMPLEMENTED YET)
(global)
INTEGER.
The order of the tridiagonal matrix T. n >= 0.
(global)
REAL for psstedc
DOUBLE PRECISION for pdstedc
Array, size (n)
On entry, the diagonal elements of the tridiagonal matrix.
(global)
REAL for psstedc
DOUBLE PRECISION for pdstedc
Array, size (n-1).
On entry, the subdiagonal elements of the tridiagonal matrix.
(global)
INTEGER.
Q's global row index, which points to the beginning of the submatrix which is to be operated on.
(global)
INTEGER.
Q's global column index, which points to the beginning of the submatrix which is to be operated on.
(global and local)
INTEGER.
Array of size dlen_.
The array descriptor for the distributed matrix Q.
(local)
REAL for psstedc
DOUBLE PRECISION for pdstedc
Array, size (lwork)
(local)
INTEGER.
The size of the array work.
lwork = 6*n + 2*NP*NQ
NP = numroc( n, NB, MYROW, DESCQ( rsrc_ ), NPROW )
NQ = numroc( n, NB, MYCOL, DESCQ( csrc_ ), NPCOL )
numroc is a ScaLAPACK tool function.
If lwork = -1, the lwork is global input and a workspace query is assumed; the routine only calculates the minimum size for the work array. The required workspace is returned as the first element of work and no error message is issued by pxerbla.
(local)
INTEGER.
Array, size (liwork)
INTEGER.
The size of the array iwork.
liwork = 2 + 7*n + 8*NPCOL
d |
On exit, if info = 0, the eigenvalues in descending order. |
q |
(local) REAL for psstedc DOUBLE PRECISION for pdstedc Array, local size ( lld_q, LOCc(jq+n-1)) q contains the orthonormal eigenvectors of the symmetric tridiagonal matrix. On output, q is distributed across the P processes in block cyclic format. |
work |
On output, work(1) returns the workspace needed. |
iwork |
On exit, if liwork > 0, iwork(1) returns the optimal liwork. |
info |
(global) INTEGER. = 0: successful exit. < 0: If the i-th argument is an array and the j-th entry had an illegal value, then info = -(i*100+j), if the i-th argument is a scalar and had an illegal value, then info = -i. > 0: The algorithm failed to compute the info/(n+1)-th eigenvalue while working on the submatrix lying in global rows and columns mod(info,n+1). |