cblas_?hemm
Computes a matrixmatrix product where one input matrix is Hermitian.
Syntax

void cblas_chemm (const CBLAS_LAYOUT Layout, const CBLAS_SIDE side, const CBLAS_UPLO uplo, const MKL_INT m, const MKL_INT n, const void *alpha, const void *a, const MKL_INT lda, const void *b, const MKL_INT ldb, const void *beta, void *c, const MKL_INT ldc);
void cblas_zhemm (const CBLAS_LAYOUT Layout, const CBLAS_SIDE side, const CBLAS_UPLO uplo, const MKL_INT m, const MKL_INT n, const void *alpha, const void *a, const MKL_INT lda, const void *b, const MKL_INT ldb, const void *beta, void *c, const MKL_INT ldc);
Include Files
 mkl.h
Description
The ?hemm routines compute a scalarmatrixmatrix product using a Hermitian matrix A and a general matrix B and add the result to a scalarmatrix product using a general matrix C. The operation is defined as
C := alpha*A*B + beta*C
or
C := alpha*B*A + beta*C,
where:
alpha and beta are scalars,
A is a Hermitian matrix,
B and C are mbyn matrices.
Input Parameters
 Layout

Specifies whether twodimensional array storage is rowmajor (CblasRowMajor) or columnmajor (CblasColMajor).
 side

Specifies whether the Hermitian matrix A appears on the left or right in the operation as follows:
if side = CblasLeft, then C := alpha*A*B + beta*C;
if side = CblasRight, then C := alpha*B*A + beta*C.
 uplo

Specifies whether the upper or lower triangular part of the Hermitian matrix A is used:
If uplo = CblasUpper, then the upper triangular part of the Hermitian matrix A is used.
If uplo = CblasLower, then the low triangular part of the Hermitian matrix A is used.
 m

Specifies the number of rows of the matrix C.
The value of m must be at least zero.
 n

Specifies the number of columns of the matrix C.
The value of n must be at least zero.
 alpha

Specifies the scalar alpha.
 a

Array, size lda* ka, where ka is m when side = CblasLeft and is n otherwise. Before entry with side = CblasLeft, the mbym part of the array a must contain the Hermitian matrix, such that when uplo = CblasUpper, the leading mbym upper triangular part of the array a must contain the upper triangular part of the Hermitian matrix and the strictly lower triangular part of a is not referenced, and when uplo = CblasLower, the leading mbym lower triangular part of the array a must contain the lower triangular part of the Hermitian matrix, and the strictly upper triangular part of a is not referenced.
Before entry with side = CblasRight, the nbyn part of the array a must contain the Hermitian matrix, such that when uplo = CblasUpper, the leading nbyn upper triangular part of the array a must contain the upper triangular part of the Hermitian matrix and the strictly lower triangular part of a is not referenced, and when uplo = CblasLower, the leading nbyn lower triangular part of the array a must contain the lower triangular part of the Hermitian matrix, and the strictly upper triangular part of a is not referenced. The imaginary parts of the diagonal elements need not be set, they are assumed to be zero.
 lda

Specifies the leading dimension of a as declared in the calling (sub) program. When side = CblasLeft then lda must be at least max(1, m), otherwise lda must be at least max(1,n).
 b

For Layout = CblasColMajor: array, size ldb*n. The leading mbyn part of the array b must contain the matrix B.
For Layout = CblasRowMajor: array, size ldb*m. The leading nbym part of the array b must contain the matrix B
 ldb

Specifies the leading dimension of b as declared in the calling (sub)program. When Layout = CblasColMajor, ldb must be at least max(1, m); otherwise, ldb must be at least max(1, n).
 beta

Specifies the scalar beta.
When beta is supplied as zero, then c need not be set on input.
 c

For Layout = CblasColMajor: array, size ldc*n. Before entry, the leading mbyn part of the array c must contain the matrix C, except when beta is zero, in which case c need not be set on entry.
For Layout = CblasRowMajor: array, size ldc*m. Before entry, the leading nbym part of the array c must contain the matrix C, except when beta is zero, in which case c need not be set on entry.
 ldc

Specifies the leading dimension of c as declared in the calling (sub)program. When Layout = CblasColMajor, ldc must be at least max(1, m); otherwise, ldc must be at least max(1, n).
Output Parameters
 c

Overwritten by the mbyn updated matrix.