JCublasJava/src/main/java/jcuda/jcublas/JCublas.java
public static void cublasZher(char uplo, int n, double alpha, Pointer x, int incx, Pointer A, int lda)
    {
        cublasZherNative(uplo, n, alpha, x, incx, A, lda);
        checkResultBLAS();
    }
public static void cublasZher(char uplo, int n, double alpha, Pointer x, int incx, Pointer A, int lda)
    {
        cublasZherNative(uplo, n, alpha, x, incx, A, lda);
        checkResultBLAS();
    }
public static void cublasZher ( char uplo , int n , double alpha , Pointer x , int incx , Pointer A , int lda ) { cublasZherNative ( uplo , n , alpha , x , incx , A , lda ) ; checkResultBLAS ( ) ; }
<pre>
void
cublasZher (char uplo, int n, double alpha, const cuDoubleComplex *x, int incx,
cuDoubleComplex *A, int lda)

performs the hermitian rank 1 operation

A = alpha * x * conjugate(transpose(x) + A,

where alpha is a double precision real scalar, x is an n element double
precision complex vector and A is an n x n hermitian matrix consisting of
double precision complex elements. Matrix A is stored in column major format,
and lda is the leading dimension of the two-dimensional array
containing A.

Input
-----
uplo   specifies whether the matrix data is stored in the upper or
the lower triangular part of array A. If uplo = 'U' or 'u',
then only the upper triangular part of A may be referenced.
If uplo = 'L' or 'l', then only the lower triangular part of
A may be referenced.
n      specifies the number of rows and columns of the matrix A. It
must be at least 0.
alpha  double precision real scalar multiplier applied to
x * conjugate(transpose(x))
x      double precision complex array of length at least (1 + (n - 1) * abs(incx))
incx   specifies the storage spacing between elements of x. incx must
not be zero.
A      double precision complex array of dimensions (lda, n). If uplo = 'U' or
'u', then A must contain the upper triangular part of a hermitian
matrix, and the strictly lower triangular part is not referenced.
If uplo = 'L' or 'l', then A contains the lower triangular part
of a 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, and on exit they
are set to zero.
lda    leading dimension of the two-dimensional array containing A. lda
must be at least max(1, n).

Output
------
A      updated according to A = alpha * x * conjugate(transpose(x)) + A

Reference: http://www.netlib.org/blas/zher.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 n < 0, or incx == 0
CUBLAS_STATUS_ARCH_MISMATCH    if invoked on device without DP support
CUBLAS_STATUS_EXECUTION_FAILED if function failed to launch on GPU
</pre>
<pre > void cublasZher ( char uplo int n double alpha const cuDoubleComplex * x int incx cuDoubleComplex * A int lda )