Visible to Intel only — GUID: GUID-B1F4B0A2-8BD1-4FF0-8059-3E71A30288B9
Visible to Intel only — GUID: GUID-B1F4B0A2-8BD1-4FF0-8059-3E71A30288B9
?hfrk
Performs a Hermitian rank-k operation for matrix in RFP format.
Syntax
lapack_int LAPACKE_chfrk( int matrix_layout, char transr, char uplo, char trans, lapack_int n, lapack_int k, float alpha, const lapack_complex_float* a, lapack_int lda, float beta, lapack_complex_float* c );
lapack_int LAPACKE_zhfrk( int matrix_layout, char transr, char uplo, char trans, lapack_int n, lapack_int k, double alpha, const lapack_complex_double* a, lapack_int lda, double beta, lapack_complex_double* c );
Include Files
- mkl.h
Description
The ?hfrk routines perform a matrix-matrix operation using Hermitian matrices. The operation is defined as
C := alpha*A*AH + beta*C,
or
C := alpha*AH*A + beta*C,
where:
alpha and beta are real scalars,
C is an n-by-n Hermitian matrix in RFP format,
A is an n-by-k matrix in the first case and a k-by-n matrix in the second case.
Input Parameters
- matrix_layout
-
Specifies whether matrix storage layout is row major (LAPACK_ROW_MAJOR) or column major ( LAPACK_COL_MAJOR ).
- transr
-
if transr = 'N' or 'n', the normal form of RFP C is stored;
if transr = 'C' or 'c', the conjugate-transpose form of RFP C is stored.
- uplo
-
Specifies whether the upper or lower triangular part of the array c is used.
If uplo = 'U' or 'u', then the upper triangular part of the array c is used.
If uplo = 'L' or 'l', then the low triangular part of the array c is used.
- trans
-
Specifies the operation:
if trans = 'N' or 'n', then C := alpha*A*AH + beta*C;
if trans = 'C' or 'c', then C := alpha*AH*A + beta*C.
- n
-
Specifies the order of the matrix C. The value of n must be at least zero.
- k
-
On entry with trans = 'N' or 'n', k specifies the number of columns of the matrix a, and on entry with trans = 'T' or 't' or 'C' or 'c', k specifies the number of rows of the matrix a.
The value of k must be at least zero.
- alpha
-
Specifies the scalar alpha.
- a
-
Array, size max(1,lda*ka), where ka is in the following table:
Col_major
Row_major
trans = 'N'
k n trans = 'T'
n k - lda
-
Specifies the leading dimension of a as declared in the calling (sub)program. lda is defined by the following table:
Col_major
Row_major
trans = 'N'
max(1,n) max(1,k) trans = 'T'
max(1,k) max(1,n) - beta
-
Specifies the scalar beta.
- c
-
Array, size (n*(n+1)/2 ). Before entry contains the Hermitian matrix C in in RFP format.
Output Parameters
- c
-
If trans = 'N' or 'n', then c contains C := alpha*A*AH + beta*C;
if trans = 'C' or 'c', then c contains C := alpha*AH*A + beta*C ;
Return Values
This function returns a value info.
If info = 0, the execution is successful.
If info < 0, the i-th parameter had an illegal value.
If info = -1011, memory allocation error occurred.