p?laqsy
p?laqsy
Scales a symmetric/Hermitian matrix, using scaling factors computed by
p?poequ
.Syntax
void
pslaqsy
(
char
*uplo
,
MKL_INT
*n
,
float
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
float
*sr
,
float
*sc
,
float
*scond
,
float
*amax
,
char
*equed
);
void
pdlaqsy
(
char
*uplo
,
MKL_INT
*n
,
double
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
double
*sr
,
double
*sc
,
double
*scond
,
double
*amax
,
char
*equed
);
void
pclaqsy
(
char
*uplo
,
MKL_INT
*n
,
MKL_Complex8
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
float
*sr
,
float
*sc
,
float
*scond
,
float
*amax
,
char
*equed
);
void
pzlaqsy
(
char
*uplo
,
MKL_INT
*n
,
MKL_Complex16
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
double
*sr
,
double
*sc
,
double
*scond
,
double
*amax
,
char
*equed
);
Include Files
- mkl_scalapack.h
Description
The using the scaling factors in the vectors
p?laqsy
function
equilibrates a symmetric distributed matrix sub(A
) = A
(ia
:ia
+n
-1, ja
:ja
+n
-1)sr
and sc
. The scaling factors are computed by p?poequ
.Input Parameters
- uplo
- (global) Specifies the upper or lower triangular part of the symmetric distributed matrixsub(is to be referenced:A)='U': Upper triangular part;='L': Lower triangular part.
- n
- (global)The order of the distributed matrix sub(A)..n≥0
- a
- (local).Pointer into the local memory to an array of size.lld_a*LOCc(ja+n-1)On entry, this array contains the local pieces of the distributed matrix sub(A). On entry, the local pieces of the distributed symmetric matrix sub(A).If, the leadinguplo='U'n-by-nupper triangular part of sub(A) contains the upper triangular part of the matrix, and the strictly lower triangular part of sub(A) is not referenced.If, the leadinguplo='L'n-by-nlower triangular part of sub(A) contains the lower triangular part of the matrix, and the strictly upper triangular part of sub(A) is not referenced.
- ia,ja
- (global)The row and column indices in the global matrixAindicating the first row and the first column of the matrix sub(A), respectively.
- desca
- (global and local) array of sizedlen_. The array descriptor for the distributed matrix A.
- sr
- (local)Array of sizeLOCr(m_a). The scale factors forthe matrixA(ia:ia+m-1,ja:ja+n-1).sris aligned with the distributed matrixA, and replicated across every process column.sris tied to the distributed matrixA.
- sc
- (local)Array of sizeLOCc(m_a). The scale factors forthe matrixA(ia:ia+m-1,ja:ja+n-1).scis aligned with the distributed matrixA, and replicated across every process column.scis tied to the distributed matrixA.
- scond
- (global).Ratio of the smallestsr[(respectivelyi]sc[) to the largestj]sr[(respectivelyi]sc[), withj].ia-1 ≤i<ia+n-1 andja-1 ≤j<ja+n-1
- amax
- (global).Absolute value of largest distributed submatrix entry.
Output Parameters
- a
- On exit,if, the equilibrated matrix:equed='Y'diag(.sr, ...,iasr) * sub(ia+n-1A) * diag(sc, ...,jasc)ja+n-1
- equed
- (global).Specifies whether or not equilibration was done.='N': No equilibration.='Y': Equilibration was done, that is, sub(A) has been replaced by:diag(.sr, ...,iasr) * sub(ia+n-1A) * diag(sc, ...,jasc)ja+n-1