cblas_?herk
cblas_?herk
Performs a Hermitian rank-k update.
Syntax
void
cblas_cherk
(
const
CBLAS_LAYOUT
Layout
,
const
CBLAS_UPLO
uplo
,
const
CBLAS_TRANSPOSE
trans
,
const
MKL_INT
n
,
const
MKL_INT
k
,
const
float
alpha
,
const
void
*a
,
const
MKL_INT
lda
,
const
float
beta
,
void
*c
,
const
MKL_INT
ldc
);
void
cblas_zherk
(
const
CBLAS_LAYOUT
Layout
,
const
CBLAS_UPLO
uplo
,
const
CBLAS_TRANSPOSE
trans
,
const
MKL_INT
n
,
const
MKL_INT
k
,
const
double
alpha
,
const
void
*a
,
const
MKL_INT
lda
,
const
double
beta
,
void
*c
,
const
MKL_INT
ldc
);
Include Files
- mkl.h
Description
The
?herk
routines perform a rank-k matrix-matrix operation using a general matrix
The operation is defined as:A
and a Hermitian matrix C
.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,A
is an n
-by-k
matrix in the first case and a k
-by-n
matrix in the second case.Input Parameters
- Layout
- Specifies whether two-dimensional array storage is row-major (CblasRowMajor) or column-major (CblasColMajor).
- uplo
- Specifies whether the upper or lower triangular part of the arraycis used.If, then the upper triangular part of the arrayuplo=CblasUppercis used.If, then the low triangular part of the arrayuplo=CblasLowercis used.
- trans
- Specifies the operation:iftrans=CblasNoTrans, then;C:=alpha*A*AH+beta*Ciftrans=CblasConjTrans, then.C:=alpha*AH*A+beta*C
- n
- Specifies the order of the matrixThe value ofC.nmust be at least zero.
- k
- Withtrans=CblasNoTrans,kspecifies the number of columns of the matrixA, and withtrans=CblasConjTrans,kspecifies the number of rows of the matrixA.The value ofkmust be at least zero.
- alpha
- Specifies the scalaralpha.
- a
- trans=CblasNoTranstrans=CblasConjTransLayout=CblasColMajorArray, sizelda*k.Before entry, the leadingn-by-kpart of the arrayamust contain the matrixA.Array, sizelda*n.Before entry, the leadingk-by-npart of the arrayamust contain the matrixA.Layout=CblasRowMajorArray, sizelda*n.Before entry, the leadingk-by-npart of the arrayamust contain the matrixA.Array, sizelda*k.Before entry, the leadingn-by-kpart of the arrayamust contain the matrixA.
- lda
- trans=CblasNoTranstrans=CblasConjTransLayout=CblasColMajorldamust be at leastmax(1,.n)ldamust be at leastmax(1,k)Layout=CblasRowMajorldamust be at leastmax(1,k)ldamust be at leastmax(1,.n)
- beta
- Specifies the scalarbeta.
- c
- Array, sizeldcbyn.Before entry with, the leadinguplo=CblasUppern-by-nupper triangular part of the arraycmust contain the upper triangular part of the Hermitian matrix and the strictly lower triangular part ofcis not referenced.Before entry with, the leadinguplo=CblasLowern-by-nlower triangular part of the arraycmust contain the lower triangular part of the Hermitian matrix and the strictly upper triangular part ofcis not referenced.The imaginary parts of the diagonal elements need not be set, they are assumed to be zero.
- ldc
- Specifies the leading dimension ofcas declared in the calling (sub)program. The value ofldcmust be at leastmax(1,.n)
Output Parameters
- c
- With, the upper triangular part of the arrayuplo=CblasUppercis overwritten by the upper triangular part of the updated matrix.With, the lower triangular part of the arrayuplo=CblasLowercis overwritten by the lower triangular part of the updated matrix.The imaginary parts of the diagonal elements are set to zero.