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)

Description

The p?laqgeroutine 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.

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), iaiia+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), iaiia+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)),

= 'C': column equilibration, that is, sub(A) has been post-multiplied by diag(c(ja:ja+n-1)),

= '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)).

See Also

For more complete information about compiler optimizations, see our Optimization Notice.