JCublasJava/src/main/java/jcuda/jcublas/JCublas.java
public static void cublasZhpmv(char uplo, int n, cuDoubleComplex alpha, Pointer AP, Pointer x, int incx, cuDoubleComplex beta, Pointer y, int incy)
    {
        cublasZhpmvNative(uplo, n, alpha, AP, x, incx, beta, y, incy);
        checkResultBLAS();
    }
public static void cublasZhpmv(char uplo, int n, cuDoubleComplex alpha, Pointer AP, Pointer x, int incx, cuDoubleComplex beta, Pointer y, int incy)
    {
        cublasZhpmvNative(uplo, n, alpha, AP, x, incx, beta, y, incy);
        checkResultBLAS();
    }
public static void cublasZhpmv ( char uplo , int n , cuDoubleComplex alpha , Pointer AP , Pointer x , int incx , cuDoubleComplex beta , Pointer y , int incy ) { cublasZhpmvNative ( uplo , n , alpha , AP , x , incx , beta , y , incy ) ; checkResultBLAS ( ) ; }
<pre>
void
cublasZhpmv (char uplo, int n, cuDoubleComplex alpha, const cuDoubleComplex *AP, 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 with n elements. A is an hermitian n x n matrix
consisting of double precision complex elements that is supplied in packed form.

Input
-----
uplo   specifies whether the matrix data is stored in the upper or the lower
triangular part of array AP. If uplo == 'U' or 'u', then the upper
triangular part of A is supplied in AP. If uplo == 'L' or 'l', then
the lower triangular part of A is supplied in AP.
n      specifies the number of rows and columns of the matrix A. It must be
at least zero.
alpha  double precision complex scalar multiplier applied to A*x.
AP     double precision complex array with at least ((n * (n + 1)) / 2) elements. If
uplo == 'U' or 'u', the array AP contains the upper triangular part
of the hermitian matrix A, packed sequentially, column by column;
that is, if i <= j, then A[i,j] is stored is AP[i+(j*(j+1)/2)]. If
uplo == 'L' or 'L', the array AP contains the lower triangular part
of the hermitian matrix A, packed sequentially, column by column;
that is, if i >= j, then A[i,j] is stored in AP[i+((2*n-j+1)*j)/2].
The imaginary parts of the diagonal elements need not be set, they
are assumed to be zero.
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 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/zhpmv.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 cublasZhpmv ( char uplo int n cuDoubleComplex alpha const cuDoubleComplex * AP const cuDoubleComplex * x int incx cuDoubleComplex beta cuDoubleComplex * y int incy )