Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 3/22/2024
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

float pslansy (char *norm , char *uplo , MKL_INT *n , float *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , float *work );

double pdlansy (char *norm , char *uplo , MKL_INT *n , double *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , double *work );

float pclansy (char *norm , char *uplo , MKL_INT *n , MKL_Complex8 *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , float *work );

double pzlansy (char *norm , char *uplo , MKL_INT *n , MKL_Complex16 *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , double *work );

float pclanhe (char *norm , char *uplo , MKL_INT *n , MKL_Complex8 *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , float *work );

double pzlanhe (char *norm , char *uplo , MKL_INT *n , MKL_Complex16 *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , double *work );

Include Files

  • mkl_scalapack.h

Description

The p?lansy and p?lanhefunctions 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) Specifies what value is returned by the function:

= '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) 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)

The number of columns in the distributed matrix sub(A). When n = 0, p?lansy is set to zero. n 0.

a

(local).

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) 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) array of size dlen_. The array descriptor for the distributed matrix A.

work

(local).

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 function blacs_gridinfo.

Output Parameters

val

The value returned by the function.

See Also