# p?rscl

Multiplies a vector by the reciprocal of a real scalar.

## Syntax

call psrscl(n, sa, sx, ix, jx, descx, incx)

call pdrscl(n, sa, sx, ix, jx, descx, incx)

call pcsrscl(n, sa, sx, ix, jx, descx, incx)

call pzdrscl(n, sa, sx, ix, jx, descx, incx)

## Description

The p?rscl routine multiplies an n-element real/complex vector sub(X) by the real scalar 1/a. This is done without overflow or underflow as long as the final result sub(X)/a does not overflow or underflow.

sub(X) denotes X`(ix:ix+n-1, jx:jx)`, if `incx = 1`,

and X `(ix:ix, jx:jx+n-1)`, if `incx = m_x`.

## Input Parameters

n

(global) INTEGER.

The number of components of the distributed vector sub(X). `n ≥ 0`.

sa

REAL for psrscl/pcsrscl

DOUBLE PRECISION for pdrscl/pzdrscl.

The scalar a that is used to divide each component of the vector sub(X). This parameter must be 0.

sx

REAL forpsrscl

DOUBLE PRECISION for pdrscl

COMPLEX for pcsrscl

COMPLEX*16 for pzdrscl.

Array containing the local pieces of a distributed matrix of size of at least `((jx-1)*m_x + ix + (n-1)*abs(incx))`. This array contains the entries of the distributed vector sub(X).

ix

(global) INTEGER.The row index of the submatrix of the distributed matrix X to operate on.

jx

(global) INTEGER.

The column index of the submatrix of the distributed matrix X to operate on.

descx

(global and local) INTEGER.

Array of size 9. The array descriptor for the distributed matrix X.

incx

(global) INTEGER.

The increment for the elements of X. This version supports only two values of incx, namely 1 and m_x.

## Output Parameters

sx

On exit, the result x/a.