Developer Reference for Intel® oneAPI Math Kernel Library for C
p?laqge
Scales a general rectangular matrix, using row and column scaling factors computed by p?geequ .
Syntax
voidpslaqge ( MKL_INT*m , MKL_INT*n , float*a , MKL_INT*ia , MKL_INT*ja , MKL_INT*desca , float*r , float*c , float*rowcnd , float*colcnd , float*amax , char*equed );
voidpdlaqge ( MKL_INT*m , MKL_INT*n , double*a , MKL_INT*ia , MKL_INT*ja , MKL_INT*desca , double*r , double*c , double*rowcnd , double*colcnd , double*amax , char*equed );
voidpclaqge ( MKL_INT*m , MKL_INT*n , MKL_Complex8*a , MKL_INT*ia , MKL_INT*ja , MKL_INT*desca , float*r , float*c , float*rowcnd , float*colcnd , float*amax , char*equed );
voidpzlaqge ( MKL_INT*m , MKL_INT*n , MKL_Complex16*a , MKL_INT*ia , MKL_INT*ja , MKL_INT*desca , double*r , double*c , double*rowcnd , double*colcnd , double*amax , char*equed );
Include Files
mkl_scalapack.h
Description
pslaqge pdlaqge pclaqge pzlaqge The p?laqge routine function equilibrates a general m -by- n distributed matrix sub( A ) = A(ia:ia+m-1 , ja:ja+n-1) using the row and scaling factors in the vectors r and c computed by p?geequ (Computes row and column scaling factors intended to equilibrate a general rectangular distributed matrix and reduce its condition number.) .
Input Parameters
m
(global)
The number of rows in the distributed matrix sub( A ). (m ≥0) .
n
(global)
The number of columns in the distributed matrix sub( A ). (n ≥0) .
- a
-
(local). REAL for pslaqge DOUBLE PRECISION for pdlaqge COMPLEX for pclaqge COMPLEX*16 for pzlaqge .
Pointer into the local memory to an array of size (lld_a, LOCc(ja+n-1))lld_a * LOCc(ja+n-1) .
On entry, this array contains the distributed matrix sub( A ).
ia , ja
(global) The row and column indices in the global matrix A indicating the first row and the first column of the matrix sub( A ), respectively.
desca
(global and local) array of size dlen_ . The array descriptor for the distributed matrix A .
- r
-
(local). REAL for pslaqge DOUBLE PRECISION for pdlaqge COMPLEX for pclaqge COMPLEX*16 for pzlaqge . Array of size LOCr(m_a) . The row scale factors for sub( A ). r is aligned with the distributed matrix A , and replicated across every process column. r is tied to the distributed matrix A .
- c
-
(local). REAL for pslaqge DOUBLE PRECISION for pdlaqge COMPLEX for pclaqge COMPLEX*16 for pzlaqge . Array of size LOCc(n_a) . The row scale factors for sub( A ). c is aligned with the distributed matrix A , and replicated across every process column. c is tied to the distributed matrix A .
- rowcnd
-
(local). REAL for pslaqge DOUBLE PRECISION for pdlaqge COMPLEX for pclaqge COMPLEX*16 for pzlaqge .
The global ratio of the smallest r [ i ] to the largest r [ i ] , ia-1 ≤ i ≤ ia+m -2 .
- colcnd
-
(local). REAL for pslaqge DOUBLE PRECISION for pdlaqge COMPLEX for pclaqge COMPLEX*16 for pzlaqge .
The global ratio of the smallest c [ i ] to the largest c [ i ], ia-1 ≤ i ≤ ia+n -2 .
amax
(global).
DOUBLE PRECISION for pdlaqge COMPLEX for pclaqge COMPLEX*16 for pzlaqge . Absolute value of largest distributed submatrix entry.
Output Parameters
- a
-
(local). On exit, the equilibrated distributed matrix. See equed for the form of the equilibrated distributed submatrix.
equed
(global)
Specifies the form of equilibration that was done. = ‘N’ : No equilibration = ‘R’ : Row equilibration, that is, sub( A ) has been pre-multiplied by diag(r(ia:ia+m-1))diag(r[ia-1:ia+m-2]) , = ‘C’ : column equilibration, that is, sub( A ) has been post-multiplied by diag(c(ja:ja+n-1))diag(c[ja-1:ja+n-2]) , = ‘B’ : Both row and column equilibration, that is, sub( A ) has been replaced by diag(r(ia:ia+m-1))* sub(A) * diag(c(ja:ja+n-1))diag(r[ia-1:ia+m-2])* sub(A) * diag(c[ja-1:ja+n-2]) .