Developer Reference for Intel® oneAPI Math Kernel Library for C
p?laevswp
Moves the eigenvectors from where they are computed to ScaLAPACK standard block cyclic array.
Syntax
void pslaevswp(MKL_INT *n, float *zin, MKL_INT *ldzi, float *z, MKL_INT *iz, MKL_INT *jz,
MKL_INT *descz, MKL_INT *nvs, MKL_INT *key, float *work, MKL_INT *lwork);
void pdlaevswp(MKL_INT *n, double *zin, MKL_INT *ldzi, double *z, MKL_INT *iz,
MKL_INT *jz, MKL_INT *descz, MKL_INT *nvs, MKL_INT *key, double *work,
MKL_INT *lwork);
void pclaevswp(MKL_INT *n, float *zin, MKL_INT *ldzi, MKL_Complex8 *z, MKL_INT *iz,
MKL_INT *jz, MKL_INT *descz, MKL_INT *nvs, MKL_INT *key, float *rwork,
MKL_INT *lrwork);
void pzlaevswp(MKL_INT *n, double *zin, MKL_INT *ldzi, MKL_Complex16 *z, MKL_INT *iz,
MKL_INT *jz, MKL_INT *descz, MKL_INT *nvs, MKL_INT *key, double *rwork,
MKL_INT *lrwork);
Include Files
mkl_scalapack.h
Description
pslaevswp pdlaevswp pclaevswp pzlaevswp The p?laevswp routine function moves the eigenvectors (potentially unsorted) from where they are computed, to a ScaLAPACK standard block cyclic array, sorted so that the corresponding eigenvalues are sorted.
Input Parameters
np = the number of rows local to a given process.
nq = the number of columns local to a given process.
n
(global)
The order of the matrix A . n ≥ 0.
- zin
-
(local). REAL for pslaevswp DOUBLE PRECISION for pdlaevswp COMPLEX for pclaevswp COMPLEX*16 for pzlaevswp .
Array of size ldzi * nvs [ iam +1] . The eigenvectors on input. iam is a process rank from [0, nprocs ) interval. Each eigenvector resides entirely in one process. Each process holds a contiguous set of nvs [ iam +1] eigenvectors. The global number of the first eigenvector that the process holds is: ((sum for i =[ 0, iam ] of nvs [ i ] )+1).
- ldzi
-
(local)
The leading dimension of the zin array.
iz , jz
(global) The row and column indices in the global matrix Z indicating the first row and the first column of the submatrix Z , respectively.
descz
(global and local)
Array of size dlen_ . The array descriptor for the distributed matrix Z.
nvs
(global)
Array of size nprocs +1
nvs [ i ] = number of eigenvectors held by processes [0, i )
nvs [0] = number of eigenvectors held by processes [0, 0) = 0
nvs [ nprocs ]= number of eigenvectors held by [0, nprocs )= total number of eigenvectors .
key
(global)
Array of size n . Indicates the actual index (after sorting) for each of the eigenvectors.
- rwork
-
(local). REAL for pslaevswp DOUBLE PRECISION for pdlaevswp COMPLEX for pclaevswp COMPLEX*16 for pzlaevswp . Array of size lrwork .
- lrwork
-
(local)
Size of work.
Output Parameters
- z
-
(local). REAL for pslaevswp DOUBLE PRECISION for pdlaevswp COMPLEX for pclaevswp COMPLEX*16 for pzlaevswp .
Array of global size n * n and of local size lld_z * nq . The eigenvectors on output. The eigenvectors are distributed in a block cyclic manner in both dimensions, with a block size of nb .