# p?lange

Returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value of any element, of a general rectangular matrix.

## Syntax

val = pslange(norm, m, n, a, ia, ja, desca, work)

val = pdlange(norm, m, n, a, ia, ja, desca, work)

val = pclange(norm, m, n, a, ia, ja, desca, work)

val = pzlange(norm, m, n, a, ia, ja, desca, work)

## Description

The routine returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a distributed matrix `sub(A) = `A(ia:ia+m-1`, `ja:ja+n-1)``.

## Input Parameters

norm

  (global) CHARACTER. Specifies what value is returned by the routine:

  = 'M' or 'm': `val = max(abs(Aij))`, largest absolute value of the matrix A, it s not a matrix norm.

  = '1' or 'O' or 'o': `val = norm1(A)`, 1-norm of the matrix A (maximum column sum),

  = 'I' or 'i': `val = normI(A)`, infinity norm of the matrix A (maximum row sum),

  = 'F', 'f', 'E' or 'e': `val = normF(A)`, Frobenius norm of the matrix A (square root of sum of squares).

m

  (global). INTEGER.

  The number of rows to be operated on, that is, the number of rows of the distributed submatrix sub(A). When `m = 0`, p?lange is set to zero. 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). When `n = 0`, p?lange is set to zero. n ≥ 0.

a

  (local).

  Real for pslange

  DOUBLE PRECISION for pdlange

  COMPLEX for pclange

  COMPLEX*16 for pzlange.

  Pointer into the local memory to an array of DIMENSION (lld_a, LOCc(ja+n-1)) containing the local pieces of 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, DIMENSION (dlen_). The array descriptor for the distributed matrix A.

work

  (local).

  Real for pslange

  DOUBLE PRECISION for pdlange

  COMPLEX for pclange

  COMPLEX*16 for pzlange.

  Array DIMENSION (lwork).

  `lwork ≥ 0` if `norm = 'M'` or 'm' (not referenced),

  nq0 if `norm = '1'`, 'O' or 'o',

  mp0 if `norm = 'I'` or 'i',

  0 if `norm = 'F'`, 'f', 'E' or 'e' (not referenced),

  where

  `iroffa = mod(ia-1, mb_a), icoffa = mod(ja-1, nb_a)`,

  `iarow = indxg2p(ia, mb_a, myrow, rsrc_a, nprow)`,

  `iacol = indxg2p(ja, nb_a, mycol, csrc_a, npcol)`,

  `mp0 = numroc(m+iroffa, mb_a, myrow, iarow, nprow),`

  `nq0 = numroc(n+icoffa, nb_a, mycol, iacol, npcol)`,

  indxg2p and numroc are ScaLAPACK tool routines; myrow, mycol, nprow, and npcol can be determined by calling the subroutine blacs_gridinfo.

## Output Parameters

val

  The value returned by the routine.

Parent topic: Auxiliary Routines