p?lascl

Multiplies a general rectangular matrix by a real scalar defined as Cto/Cfrom.

Syntax

Fortran:

call pslascl(type, cfrom, cto, m, n, a, ia, ja, desca, info)

call pdlascl(type, cfrom, cto, m, n, a, ia, ja, desca, info)

call pclascl(type, cfrom, cto, m, n, a, ia, ja, desca, info)

call pzlascl(type, cfrom, cto, m, n, a, ia, ja, desca, info)

C:

void pslascl (char *type , float *cfrom , float *cto , MKL_INT *m , MKL_INT *n , float *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , MKL_INT *info );

void pdlascl (char *type , double *cfrom , double *cto , MKL_INT *m , MKL_INT *n , double *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , MKL_INT *info );

void pclascl (char *type , float *cfrom , float *cto , MKL_INT *m , MKL_INT *n , MKL_Complex8 *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , MKL_INT *info );

void pzlascl (char *type , double *cfrom , double *cto , MKL_INT *m , MKL_INT *n , MKL_Complex16 *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , MKL_INT *info );

Include Files

  • C: mkl_scalapack.h

Description

The p?lascl routine multiplies the m-by-n real/complex distributed matrix sub(A) denoting A(ia:ia+m-1, ja:ja+n-1) by the real/complex scalar cto/cfrom. This is done without over/underflow as long as the final result cto*A(i,j)/cfrom does not over/underflow. type specifies that sub(A) may be full, upper triangular, lower triangular or upper Hessenberg.

Input Parameters

type

(global) CHARACTER.

type indicates the storage type of the input distributed matrix.

if type = 'G': sub(A) is a full matrix,

if type = 'L': sub(A) is a lower triangular matrix,

if type = 'U': sub(A) is an upper triangular matrix,

if type = 'H': sub(A) is an upper Hessenberg matrix.

cfrom, cto

(global)

REAL for pslascl/pclascl

DOUBLE PRECISION for pdlascl/pzlascl.

The distributed matrix sub(A) is multiplied by cto/cfrom . A(i,j) is computed without over/underflow if the final result cto*A(i,j)/cfrom can be represented without over/underflow. cfrom must be nonzero.

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 input/local output)

REAL for pslascl

DOUBLE PRECISION for pdlascl

COMPLEX for pclascl

COMPLEX*16 for pzlascl.

Pointer into the local memory to an array of size(lld_a, LOCc(ja+n-1)).

This array contains the local pieces of the distributed matrix sub(A).

ia, ja

(global) INTEGER.

The column and row indices in the global array A indicating the first row and column of the submatrix sub(A), respectively.

desca

(global and local) INTEGER.

Array of size (dlen_).The array descriptor for the distributed matrix A.

Output Parameters

a

(local).

On exit, this array contains the local pieces of the distributed matrix multiplied by cto/cfrom.

info

(local)

INTEGER.

if info = 0: the execution is successful.

if info < 0: If the i-th argument is an array and the j-entry had an illegal value, then info = -(i*100+j),

if the i-th argument is a scalar and had an illegal value, then info = -i.

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