JCublasJava/src/main/java/jcuda/jcublas/JCublas.java
public static void cublasChemm(char side, char uplo, int m, int n, cuComplex alpha, Pointer A, int lda, Pointer B, int ldb, cuComplex beta, Pointer C, int ldc)
    {
        cublasChemmNative(side, uplo, m, n, alpha, A, lda, B, ldb, beta, C, ldc);
        checkResultBLAS();
    }
public static void cublasChemm(char side, char uplo, int m, int n, cuComplex alpha, Pointer A, int lda, Pointer B, int ldb, cuComplex beta, Pointer C, int ldc)
    {
        cublasChemmNative(side, uplo, m, n, alpha, A, lda, B, ldb, beta, C, ldc);
        checkResultBLAS();
    }
<pre>
void
cublasChemm (char side, char uplo, int m, int n, cuComplex alpha,
const cuComplex *A, int lda, const cuComplex *B, int ldb,
cuComplex beta, cuComplex *C, int ldc);

performs one of the matrix-matrix operations

C = alpha * A * B + beta * C, or
C = alpha * B * A + beta * C,

where alpha and beta are single precision complex scalars, A is a hermitian matrix
consisting of single precision complex elements and stored in either lower or upper
storage mode, and B and C are m x n matrices consisting of single precision
complex elements.

Input
-----
side   specifies whether the hermitian matrix A appears on the left side
hand side or right hand side of matrix B, as follows. If side == 'L'
or 'l', then C = alpha * A * B + beta * C. If side = 'R' or 'r',
then C = alpha * B * A + beta * C.
uplo   specifies whether the hermitian matrix A is stored in upper or lower
storage mode, as follows. If uplo == 'U' or 'u', only the upper
triangular part of the hermitian matrix is to be referenced, and the
elements of the strictly lower triangular part are to be infered from
those in the upper triangular part. If uplo == 'L' or 'l', only the
lower triangular part of the hermitian matrix is to be referenced,
and the elements of the strictly upper triangular part are to be
infered from those in the lower triangular part.
m      specifies the number of rows of the matrix C, and the number of rows
of matrix B. It also specifies the dimensions of hermitian matrix A
when side == 'L' or 'l'. m must be at least zero.
n      specifies the number of columns of the matrix C, and the number of
columns of matrix B. It also specifies the dimensions of hermitian
matrix A when side == 'R' or 'r'. n must be at least zero.
alpha  single precision complex scalar multiplier applied to A * B, or B * A
A      single precision complex array of dimensions (lda, ka), where ka is m when
side == 'L' or 'l' and is n otherwise. If side == 'L' or 'l' the
leading m x m part of array A must contain the hermitian matrix,
such that when uplo == 'U' or 'u', the leading m x m part stores the
upper triangular part of the hermitian matrix, and the strictly lower
triangular part of A is not referenced, and when uplo == 'U' or 'u',
the leading m x m part stores the lower triangular part of the
hermitian matrix and the strictly upper triangular part is not
referenced. If side == 'R' or 'r' the leading n x n part of array A
must contain the hermitian matrix, such that when uplo == 'U' or 'u',
the leading n x n part stores the upper triangular part of the
hermitian matrix and the strictly lower triangular part of A is not
referenced, and when uplo == 'U' or 'u', the leading n x n part
stores the lower triangular part of the hermitian matrix and the
strictly upper triangular part is not referenced. The imaginary parts
of the diagonal elements need not be set, they are assumed to be zero.
lda    leading dimension of A. When side == 'L' or 'l', it must be at least
max(1, m) and at least max(1, n) otherwise.
B      single precision complex array of dimensions (ldb, n). On entry, the leading
m x n part of the array contains the matrix B.
ldb    leading dimension of B. It must be at least max (1, m).
beta   single precision complex scalar multiplier applied to C. If beta is zero, C
does not have to be a valid input
C      single precision complex array of dimensions (ldc, n)
ldc    leading dimension of C. Must be at least max(1, m)

Output
------
C      updated according to C = alpha * A * B + beta * C, or C = alpha *
B * A + beta * C

Reference: http://www.netlib.org/blas/chemm.f

Error status for this function can be retrieved via cublasGetError().

Error Status
------------
CUBLAS_STATUS_NOT_INITIALIZED  if CUBLAS library has not been initialized
CUBLAS_STATUS_INVALID_VALUE    if m or n are < 0
CUBLAS_STATUS_EXECUTION_FAILED if function failed to launch on GPU
</pre>