JCublasJava/src/main/java/jcuda/jcublas/JCublas.java
public static void cublasZsymm(char side, char uplo, int m, int n, cuDoubleComplex alpha, Pointer A, int lda, Pointer B, int ldb, cuDoubleComplex beta, Pointer C, int ldc)
    {
        cublasZsymmNative(side, uplo, m, n, alpha, A, lda, B, ldb, beta, C, ldc);
        checkResultBLAS();
    }
public static void cublasZsymm(char side, char uplo, int m, int n, cuDoubleComplex alpha, Pointer A, int lda, Pointer B, int ldb, cuDoubleComplex beta, Pointer C, int ldc)
    {
        cublasZsymmNative(side, uplo, m, n, alpha, A, lda, B, ldb, beta, C, ldc);
        checkResultBLAS();
    }
<pre>
void
cublasZsymm (char side, char uplo, int m, int n, cuDoubleComplex alpha,
const cuDoubleComplex *A, int lda, const cuDoubleComplex *B, int ldb,
cuDoubleComplex beta, cuDoubleComplex *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 double precision complex scalars, A is a symmetric matrix
consisting of double precision complex elements and stored in either lower or upper
storage mode, and B and C are m x n matrices consisting of double precision
complex elements.

Input
-----
side   specifies whether the symmetric 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 symmetric matrix A is stored in upper or lower
storage mode, as follows. If uplo == 'U' or 'u', only the upper
triangular part of the symmetric 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 symmetric 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 symmetric 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 symmetric
matrix A when side == 'R' or 'r'. n must be at least zero.
alpha  double precision scalar multiplier applied to A * B, or B * A
A      double precision 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 symmetric matrix,
such that when uplo == 'U' or 'u', the leading m x m part stores the
upper triangular part of the symmetric 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
symmetric 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 symmetric matrix, such that when uplo == 'U' or 'u',
the leading n x n part stores the upper triangular part of the
symmetric 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 symmetric matrix and the
strictly upper triangular part is not referenced.
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      double precision 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   double precision scalar multiplier applied to C. If beta is zero, C
does not have to be a valid input
C      double precision 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/zsymm.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_ARCH_MISMATCH    if invoked on device without DP support
CUBLAS_STATUS_EXECUTION_FAILED if function failed to launch on GPU
</pre>