Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?hfrk
Performs a Hermitian rank-k operation for matrix in RFP format.
Syntax
call chfrk(transr, uplo, trans, n, k, alpha, a, lda, beta, c)
call zhfrk(transr, uplo, trans, n, k, alpha, a, lda, beta, c)
Include Files
mkl.fi
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
transr
CHARACTER*1 .
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
CHARACTER*1 . 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
CHARACTER*1 . 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
INTEGER . Specifies the order of the matrix C . The value of n must be at least zero.
k
INTEGER . 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
No return value.