p?laevswp
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
The
p?laevswp
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 matrixA.n≥0.
- zin
- (local).Array of size. The eigenvectors on input.ldzi*nvs[iam+1]iamis a process rank from [0,nprocs) interval. Each eigenvector resides entirely in one process. Each process holds a contiguous set ofnvs[eigenvectors. The global number of the first eigenvector that the process holds is: ((sum foriam+1]i=[0,] ofiamnvs[)+1).i]
- ldzi
- (local)The leading dimension of thezinarray.
- iz,jz
- (global) The row and column indices in the global matrixZindicating the first row and the first column of the submatrixZ, respectively.
- descz
- (global and local)Array of sizedlen_. The array descriptor for the distributed matrix Z.
- nvs
- (global)Array of sizenprocs+1nvs[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 sizen. Indicates the actual index (after sorting) for each of the eigenvectors.
- rwork
- (local).Array of sizelrwork.
- lrwork
- (local)Size ofwork.
Output Parameters
- z
- (local).Array of global sizen*nand of local size. The eigenvectors on output. The eigenvectors are distributed in a block cyclic manner in both dimensions, with a block size oflld_z*nqnb.