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

Fortran:

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)

C:

float pslange (char *norm , MKL_INT *m , MKL_INT *n , float *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , float *work );

double pdlange (char *norm , MKL_INT *m , MKL_INT *n , double *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , double *work );

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

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

Include Files

  • C: mkl_scalapack.h

Description

The p?lange 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 size (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, size (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 size (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

REAL for pslange/pclange

DOUBLE PRECISION for pdlange/pzlange

The value returned by the routine.

For more complete information about compiler optimizations, see our Optimization Notice.