Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

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 p?lansy and p?lanheroutines 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 in the distributed matrix 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 size (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 matrix A indicating the first row and the first column of the matrix sub(A), respectively.

desca

(global and local) INTEGER array of size dlen_. The array descriptor for the distributed matrix A.

work

(local).

REAL for pslansy, pclansy, pclanhe

DOUBLE PRECISION for pdlansy, pzlansy, pzlanhe

Array of size lwork.

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

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

where ldw is given by:

if( nprownpcol ) then

ldw = mb_a*iceil(iceil(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 iceil(x,y) is a ScaLAPACK function that returns ceiling (x/y).

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

ilcm, iceil, 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.

See Also