Quantcast
Channel: Fortran
Viewing all articles
Browse latest Browse all 3108

p?laqge

$
0
0

Scales a general rectangular matrix, using row and column scaling factors computed by p?geequ .

Syntax

FORTRAN:

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)

C:

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

  • C: mkl_scalapack.h

Description

The p?laqge routine 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 to be operated on, that is, the number of rows of the distributed submatrix sub(A). (m0).

n

(global) INTEGER.

The number of columns to be operated on, that is, the number of columns of the distributed submatrix sub(A). (n0).

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 array A indicating the first row and the first column of the submatrix sub(A), respectively.

desca

(global and local) INTEGER array, 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, 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, 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)).

Anglais

Viewing all articles
Browse latest Browse all 3108

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>