Developer Reference for Intel® oneAPI Math Kernel Library for C
A newer version of this document is available. Customers should click here to go to the newest version.
p?laevswp
Moves the eigenvectors from where they are computed to ScaLAPACK standard block cyclic array.
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 );
- mkl_scalapack.h
The p?laevswpfunction 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.
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).
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).
Array of size lrwork.
- lrwork
-
(local)
Size of work.
- z
-
(local).
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.