# p?lansy, p?lanhe

Returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value of any element, of a real symmetric or a complex Hermitian matrix.

## Syntax

val = pslansy(norm, uplo, n, a, ia, ja, desca, work)

val = pdlansy(norm, uplo, n, a, ia, ja, desca, work)

val = pclansy(norm, uplo, n, a, ia, ja, desca, work)

val = pzlansy(norm, uplo, n, a, ia, ja, desca, work)

val = pclanhe(norm, uplo, n, a, ia, ja, desca, work)

val = pzlanhe(norm, uplo, n, a, ia, ja, desca, work)

## Description

The routines return 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).

uplo

  (global) CHARACTER. Specifies whether the upper or lower triangular part of the symmetric matrix sub(A) is to be referenced.

  = 'U': Upper triangular part of sub(A) is referenced,

  = 'L': Lower triangular part of sub(A) is referenced.

n

  (global) INTEGER.

  The number of columns to be operated on i.e the number of columns of the distributed submatrix sub(A). When `n = 0`, p?lansy is set to zero. n ≥ 0.

a

  (local).

  Real for pslansy

  DOUBLE PRECISION for pdlansy

  COMPLEX for pclansy, pclanhe

  COMPLEX*16 for pzlansy, pzlanhe.

  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).

  If `uplo = 'U'`, the leading n-by-n upper triangular part of sub(A) contains the upper triangular matrix whose norm is to be computed, and the strictly lower triangular part of this matrix is not referenced. If `uplo = 'L'`, the leading n-by-n lower triangular part of sub(A) contains the lower triangular matrix whose norm is to be computed, and the strictly upper triangular part of sub(A) is not referenced.

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 pslansy

  DOUBLE PRECISION for pdlansy

  COMPLEX for pclansy, pclanhe

  COMPLEX*16 for pzlansy, pzlanhe.

  Array DIMENSION (lwork).

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

  `2*nq0+np0+ldw` if norm = '1', 'O' or 'o', 'I' or 'i',

  where ldw is given by:

  `if( nprow.ne.npcol ) then`

  `ldw = mb_a*ceil(ceil(np0/mb_a)/(lcm/nprow))`

  `else`

  `ldw = 0`

  `end if`

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

  where lcm is the least common multiple of nprow and `npcol, lcm = ilcm( nprow, npcol )` and ceil denotes the ceiling operation (iceil).

  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 functions; 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