Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
p?laqge
Scales a general rectangular matrix, using row and column scaling factors computed by p?geequ .
Syntax
call pslaqge ( m , n , a , ia , ja , desca , r , c , rowcnd , colcnd , amax , equed )
call pdlaqge ( m , n , a , ia , ja , desca , r , c , rowcnd , colcnd , amax , equed )
call pclaqge ( m , n , a , ia , ja , desca , r , c , rowcnd , colcnd , amax , equed )
call pzlaqge ( m , n , a , ia , ja , desca , r , c , rowcnd , colcnd , amax , 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) INTEGER .
The number of rows in the distributed matrix sub( A ). (m ≥0) .
n
(global) INTEGER .
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)) .
On entry, this array contains the distributed matrix sub( A ).
ia , ja
(global) INTEGER . 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) INTEGER 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 ≤ i ≤ ia+m -1 .
- 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 ≤ i ≤ ia+n -1 .
amax
(global). REAL for pslaqge
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) CHARACTER .
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]) .