p?stedc
p?stedc
Computes all eigenvalues and eigenvectors of a symmetric tridiagonal matrix in parallel.
Syntax
void psstedc
(
const
char*
compz
,
const
MKL_INT*
n
,
float*
d
,
float*
e
,
float*
q
,
const
MKL_INT*
iq
,
const
MKL_INT*
jq
,
const
MKL_INT*
descq
,
float*
work
,
MKL_INT*
lwork
,
MKL_INT*
iwork
,
const
MKL_INT*
liwork
,
MKL_INT*
info
);
void pdstedc
(
const
char*
compz
,
const
MKL_INT*
n
,
double*
d
,
double*
e
,
double*
q
,
const
MKL_INT*
iq
,
const
MKL_INT*
jq
,
const
MKL_INT*
descq
,
double*
work
,
MKL_INT*
lwork
,
MKL_INT*
iwork
,
const
MKL_INT*
liwork
,
MKL_INT*
info
);
Include Files
- mkl_scalapack.h
Description
p?stedc
computes all eigenvalues and eigenvectors of a symmetric tridiagonal matrix in parallel, using the divide and conquer algorithm.Input Parameters
- compz
- = '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,Zcontains the orthogonal matrix used to reduce the original matrix to tridiagonal form. (NOT IMPLEMENTED YET)
- n
- (global)The order of the tridiagonal matrixT.n>= 0.
- d
- (global)Array, size (n)On entry, the diagonal elements of the tridiagonal matrix.
- e
- (global)Array, size (n-1).On entry, the subdiagonal elements of the tridiagonal matrix.
- iq
- (global)Q's global row index, which points to the beginning of the submatrix which is to be operated on.
- jq
- (global)Q's global column index, which points to the beginning of the submatrix which is to be operated on.
- descq
- (global and local)Array of sizedlen_.The array descriptor for the distributed matrixQ.
- work
- (local)Array, size (lwork)
- lwork
- (local)The size of the arraywork.lwork= 6*n+ 2*NP*NQNP =numroc(n, NB, MYROW, DESCQ(rsrc_), NPROW )NQ =numroc(n, NB, MYCOL, DESCQ(csrc_), NPCOL )numrocis a ScaLAPACK tool function.Iflwork= -1, thelworkis global input and a workspace query is assumed; the routine only calculates the minimum size for theworkarray. The required workspace is returned as the first element ofworkand no error message is issued bypxerbla.
- iwork
- (local)Array, size (liwork)
- liwork
- The size of the arrayiwork.liwork= 2 + 7*n+ 8*NPCOL
Output Parameters
- d
- On exit, ifinfo= 0, the eigenvalues in descending order.
- q
- (local)Array, local size (lld_q, LOCc(jq+n-1))qcontains the orthonormal eigenvectors of the symmetric tridiagonal matrix.On output,qis distributed across the P processes in block cyclic format.
- work
- On output,work[0]returns the workspace needed.
- iwork
- On exit, ifliwork> 0,iwork[0]returns the optimalliwork.
- info
- (global)= 0: successful exit.< 0: If thei-th argument is an array and thej-th entry had an illegal value, theninfo= -(i*100+j), if thei-th argument is a scalar and had an illegal value, theninfo= -i.> 0: The algorithm failed to compute theinfo/(n+1)-th eigenvalue while working on the submatrix lying in global rows and columns mod(info,n+1).