# p?lascl

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

## Syntax

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)

## Description

This 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). `(m≥0)`.

n

  (global) INTEGER.

  The number of columns to be operated on, that is, the number of columns of the distributed submatrix sub(A). `(n≥0)`.

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 DIMENSION`(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 DIMENSION (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`.

Parent topic: Auxiliary Routines