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

performs the matrix-vector operation

y = alpha*A*x + beta*y

Alpha and beta are double precision complex scalars, and x and y are double
precision complex vectors, each with n elements. A is a hermitian n x n matrix
consisting of double precision complex elements that is stored in either upper or
lower storage mode.

Input
-----
uplo   specifies whether the upper or lower triangular part of the array A
is to be referenced. If uplo == 'U' or 'u', the hermitian matrix A
is stored in upper storage mode, i.e. only the upper triangular part
of A is to be referenced while the lower triangular part of A is to
be inferred. If uplo == 'L' or 'l', the hermitian matrix A is stored
in lower storage mode, i.e. only the lower triangular part of A is
to be referenced while the upper triangular part of A is to be
inferred.
n      specifies the number of rows and the number of columns of the
hermitian matrix A. n must be at least zero.
alpha  double precision complex scalar multiplier applied to A*x.
A      double precision complex array of dimensions (lda, n). If uplo == 'U' or 'u',
the leading n x n 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. If uplo == 'L' or 'l',
the leading n x n 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    leading dimension of A. It must be at least max (1, n).
x      double precision complex array of length at least (1 + (n - 1) * abs(incx)).
incx   storage spacing between elements of x. incx must not be zero.
beta   double precision complex scalar multiplier applied to vector y.
y      double precision complex array of length at least (1 + (n - 1) * abs(incy)).
If beta is zero, y is not read.
incy   storage spacing between elements of y. incy must not be zero.

Output
------
y      updated according to y = alpha*A*x + beta*y

Reference: http://www.netlib.org/blas/zhemv.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 if incx or incy == 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 cublasZhemv ( char uplo int n cuDoubleComplex alpha const cuDoubleComplex * A int lda const cuDoubleComplex * x int incx cuDoubleComplex beta cuDoubleComplex * y int incy )