PLASMA
Parallel Linear Algebra Software for Multicore Architectures
lansy/he: Symmetric/Hermitian matrix norm

1, Frobenius, or Infinity norm; or largest element More...

Functions

float plasma_clanhe (plasma_enum_t norm, plasma_enum_t uplo, int n, plasma_complex32_t *pA, int lda)
 
void plasma_omp_clanhe (plasma_enum_t norm, plasma_enum_t uplo, plasma_desc_t A, float *work, float *value, plasma_sequence_t *sequence, plasma_request_t *request)
 
double plasma_zlanhe (plasma_enum_t norm, plasma_enum_t uplo, int n, plasma_complex64_t *pA, int lda)
 
void plasma_omp_zlanhe (plasma_enum_t norm, plasma_enum_t uplo, plasma_desc_t A, double *work, double *value, plasma_sequence_t *sequence, plasma_request_t *request)
 

Detailed Description

1, Frobenius, or Infinity norm; or largest element

Function Documentation

float plasma_clanhe ( plasma_enum_t  norm,
plasma_enum_t  uplo,
int  n,
plasma_complex32_t *  pA,
int  lda 
)

Returns the norm of a Hermitian matrix as

clanhe = ( max(abs(A(i,j))), NORM = PlasmaMaxNorm ( ( norm1(A), NORM = PlasmaOneNorm ( ( normI(A), NORM = PlasmaInfNorm ( ( normF(A), NORM = PlasmaFrobeniusNorm

where norm1 denotes the one norm of a matrix (maximum column sum), normI denotes the infinity norm of a matrix (maximum row sum) and normF denotes the Frobenius norm of a matrix (square root of sum of squares). Note that max(abs(A(i,j))) is not a consistent matrix norm.

Parameters
[in]norm
  • PlasmaMaxNorm: Max norm
  • PlasmaOneNorm: One norm
  • PlasmaInfNorm: Infinity norm
  • PlasmaFrobeniusNorm: Frobenius norm
[in]uplo
  • PlasmaUpper: Upper triangle of A is stored;
  • PlasmaLower: Lower triangle of A is stored.
[in]nThe order of the matrix A. n >= 0.
[in,out]pAOn entry, the Hermitian matrix A. If uplo = PlasmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If uplo = PlasmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
[in]ldaThe leading dimension of the array A. lda >= max(1,m).
Return values
floatThe specified norm of the Hermitian matrix A.
See also
plasma_omp_clanhe
plasma_clanhe
void plasma_omp_clanhe ( plasma_enum_t  norm,
plasma_enum_t  uplo,
plasma_desc_t  A,
float *  work,
float *  value,
plasma_sequence_t *  sequence,
plasma_request_t *  request 
)

Calculates the max, one, infinity or Frobenius norm of a Hermitian matrix. Non-blocking equivalent of plasma_clanhe(). May return before the computation is finished. Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors. Allows for pipelining of operations at runtime.

Parameters
[in]norm
  • PlasmaMaxNorm: Max norm
  • PlasmaOneNorm: One norm
  • PlasmaInfNorm: Infinity norm
  • PlasmaFrobeniusNorm: Frobenius norm
[in]uplo
  • PlasmaUpper: Upper triangle of A is stored;
  • PlasmaLower: Lower triangle of A is stored.
[in]AThe descriptor of matrix A.
[out]workWorkspace of size:
  • PlasmaMaxNorm: A.mt*A.nt
  • PlasmaOneNorm: A.mt*A.n + A.n
  • PlasmaInfNorm: A.mt*A.n + A.n
  • PlasmaFrobeniusNorm: 2*A.mt*A.nt
[out]valueThe calculated value of the norm requested.
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes).
[out]requestIdentifies this function call (for exception handling purposes).
Return values
voidErrors are returned by setting sequence->status and request->status to error values. The sequence->status and request->status should never be set to PlasmaSuccess (the initial values) since another async call may be setting a failure value at the same time.
See also
plasma_clanhe
plasma_omp_clanhe
double plasma_zlanhe ( plasma_enum_t  norm,
plasma_enum_t  uplo,
int  n,
plasma_complex64_t *  pA,
int  lda 
)

Returns the norm of a Hermitian matrix as

zlanhe = ( max(abs(A(i,j))), NORM = PlasmaMaxNorm ( ( norm1(A), NORM = PlasmaOneNorm ( ( normI(A), NORM = PlasmaInfNorm ( ( normF(A), NORM = PlasmaFrobeniusNorm

where norm1 denotes the one norm of a matrix (maximum column sum), normI denotes the infinity norm of a matrix (maximum row sum) and normF denotes the Frobenius norm of a matrix (square root of sum of squares). Note that max(abs(A(i,j))) is not a consistent matrix norm.

Parameters
[in]norm
  • PlasmaMaxNorm: Max norm
  • PlasmaOneNorm: One norm
  • PlasmaInfNorm: Infinity norm
  • PlasmaFrobeniusNorm: Frobenius norm
[in]uplo
  • PlasmaUpper: Upper triangle of A is stored;
  • PlasmaLower: Lower triangle of A is stored.
[in]nThe order of the matrix A. n >= 0.
[in,out]pAOn entry, the Hermitian matrix A. If uplo = PlasmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If uplo = PlasmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
[in]ldaThe leading dimension of the array A. lda >= max(1,m).
Return values
doubleThe specified norm of the Hermitian matrix A.
See also
plasma_omp_zlanhe
plasma_clanhe
void plasma_omp_zlanhe ( plasma_enum_t  norm,
plasma_enum_t  uplo,
plasma_desc_t  A,
double *  work,
double *  value,
plasma_sequence_t *  sequence,
plasma_request_t *  request 
)

Calculates the max, one, infinity or Frobenius norm of a Hermitian matrix. Non-blocking equivalent of plasma_zlanhe(). May return before the computation is finished. Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors. Allows for pipelining of operations at runtime.

Parameters
[in]norm
  • PlasmaMaxNorm: Max norm
  • PlasmaOneNorm: One norm
  • PlasmaInfNorm: Infinity norm
  • PlasmaFrobeniusNorm: Frobenius norm
[in]uplo
  • PlasmaUpper: Upper triangle of A is stored;
  • PlasmaLower: Lower triangle of A is stored.
[in]AThe descriptor of matrix A.
[out]workWorkspace of size:
  • PlasmaMaxNorm: A.mt*A.nt
  • PlasmaOneNorm: A.mt*A.n + A.n
  • PlasmaInfNorm: A.mt*A.n + A.n
  • PlasmaFrobeniusNorm: 2*A.mt*A.nt
[out]valueThe calculated value of the norm requested.
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes).
[out]requestIdentifies this function call (for exception handling purposes).
Return values
voidErrors are returned by setting sequence->status and request->status to error values. The sequence->status and request->status should never be set to PlasmaSuccess (the initial values) since another async call may be setting a failure value at the same time.
See also
plasma_zlanhe
plasma_omp_clanhe