Developer Reference for Intel® oneAPI Math Kernel Library for C
?hfrk
Performs a Hermitian rank-k operation for matrix in RFP format.
Syntax
lapack_int LAPACKE_chfrk ( intmatrix_layout , chartransr , charuplo , chartrans , lapack_intn , lapack_intk , floatalpha , const lapack_complex_float*a , lapack_intlda , floatbeta , lapack_complex_float*c );
lapack_int LAPACKE_zhfrk ( intmatrix_layout , chartransr , charuplo , chartrans , lapack_intn , lapack_intk , doublealpha , const lapack_complex_double*a , lapack_intlda , doublebeta , lapack_complex_double*c );
Include Files
mkl.h
Description
chfrk zhfrk hfrk
The ?hfrk routines perform a matrix-matrix operation using Hermitian matrices. The operation is defined as
C := alpha * A * A:code:`H` + beta * C ,
or
C := alpha * A:code:`H` * 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*A^{H} + beta*C ; if trans = 'C' or 'c' , then C := alpha*A^{H}*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
-
COMPLEX for chfrk DOUBLE COMPLEX for zhfrk Specifies the scalar alpha .
- a
-
COMPLEX for chfrk DOUBLE COMPLEX for zhfrk Array, DIMENSION (lda,ka) , where ka is k when trans = 'N' or ‘n’ , and is n otherwise. Before entry with trans = 'N' or ‘n’ , the leading n -by- k part of the array a must contain the matrix A , otherwise the leading k -by- n part of the array a must contain the matrix A .
- lda
-
INTEGER . Specifies the leading dimension of a as declared in the calling (sub)program. When trans = 'N' or ‘n’ , then lda must be at least max(1,n) , otherwise lda must be at least max(1, k) .
- a
-
Array, size max(1,lda*ka) , where ka is in the following table: Col_major Row_major trans = ‘N’ kntrans = ‘T’ nk Before entry with trans = 'N' or ‘n’ , the leading n -by- k part of the array a must contain the matrix A , otherwise the leading k -by- n part of the array a must contain the matrix A .
- 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
-
COMPLEX for chfrk DOUBLE COMPLEX for zhfrk Specifies the scalar beta .
- c
-
COMPLEX for chfrk DOUBLE COMPLEX for zhfrk 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*A^{H} + beta*C ; if trans = 'C' or 'c' , then c contains C := alpha*A^{H}*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.