# ?lascl

Multiplies a general rectangular matrix by a real scalar defined as cto/cfrom.

## Syntax

call slascl( type, kl, ku, cfrom, cto, m, n, a, lda, info )

call dlascl( type, kl, ku, cfrom, cto, m, n, a, lda, info )

call clascl( type, kl, ku, cfrom, cto, m, n, a, lda, info )

call zlascl( type, kl, ku, cfrom, cto, m, n, a, lda, info )

## Description

The routine ?lascl multiplies the m-by-n real/complex matrix A by the real scalar `cto/cfrom`. The operation is performed without over/underflow as long as the final result `cto*A(i,j)/cfrom` does not over/underflow.

type specifies that A may be full, upper triangular, lower triangular, upper Hessenberg, or banded.

## Input Parameters

type

  CHARACTER*1. This parameter specifies the storage type of the input matrix.

  = 'G': A is a full matrix.

  = 'L': A is a lower triangular matrix.

  = 'U': A is an upper triangular matrix.

  = 'H': A is an upper Hessenberg matrix.

  = 'B': A is a symmetric band matrix with lower bandwidth kl and upper bandwidth ku and with the only the lower half stored

  = 'Q': A is a symmetric band matrix with lower bandwidth kl and upper bandwidth ku and with the only the upper half stored.

  = 'Z': A is a band matrix with lower bandwidth kl and upper bandwidth ku.

kl

  INTEGER. The lower bandwidth of A. Referenced only if `type = 'B'`, 'Q' or 'Z'.

ku

  INTEGER. The upper bandwidth of A. Referenced only if `type = 'B'`, 'Q' or 'Z'.

cfrom, cto

  REAL for slascl/clascl

  DOUBLE PRECISION for dlascl/zlascl

  The matrix 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

  INTEGER. The number of rows of the matrix A. `m ≥ 0`.

n

  INTEGER. The number of columns of the matrix A. n ≥ 0.

a

  REAL for slascl

  DOUBLE PRECISION for dlascl

  COMPLEX for clascl

  COMPLEX*16 for zlascl

  Array, DIMENSION (lda, n). The matrix to be multiplied by cto/cfrom. See type for the storage type.

lda

  INTEGER. The leading dimension of the array a.

  `lda ≥ max(1,m)`.

## Output Parameters

a

  The multiplied matrix A.

info

  INTEGER.

  If `info = 0` - successful exit

  If `info = -i < 0`, the i-th argument had an illegal value.

Parent topic: Auxiliary Routines