JCublasJava/src/main/java/jcuda/jcublas/JCublas.java
public static void cublasZtpmv(char uplo, char trans, char diag, int n, Pointer AP, Pointer x, int incx)
    {
        cublasZtpmvNative(uplo, trans, diag, n, AP, x, incx);
        checkResultBLAS();
    }
public static void cublasZtpmv(char uplo, char trans, char diag, int n, Pointer AP, Pointer x, int incx)
    {
        cublasZtpmvNative(uplo, trans, diag, n, AP, x, incx);
        checkResultBLAS();
    }
public static void cublasZtpmv ( char uplo , char trans , char diag , int n , Pointer AP , Pointer x , int incx ) { cublasZtpmvNative ( uplo , trans , diag , n , AP , x , incx ) ; checkResultBLAS ( ) ; }
<pre>
void
cublasZtpmv (char uplo, char trans, char diag, int n, const cuDoubleComplex *AP,
cuDoubleComplex *x, int incx);

performs one of the matrix-vector operations x = op(A) * x, where op(A) = A,
op(A) = transpose(A) or op(A) = conjugate(transpose(A)) . x is an n element
double precision complex vector, and A is an n x n, unit or non-unit, upper
or lower triangular matrix composed of double precision complex elements.

Input
-----
uplo   specifies whether the matrix A is an upper or lower triangular
matrix. If uplo == 'U' or 'u', then A is an upper triangular matrix.
If uplo == 'L' or 'l', then A is a lower triangular matrix.
trans  specifies op(A). If transa == 'N' or 'n', op(A) = A. If trans == 'T',
or 't', op(A) = transpose(A). If trans == 'C' or 'c',
op(A) = conjugate(transpose(A)).

diag   specifies whether or not matrix A is unit triangular. If diag == 'U'
or 'u', A is assumed to be unit triangular. If diag == 'N' or 'n', A
is not assumed to be unit triangular.
n      specifies the number of rows and columns of the matrix A. n must be
at least zero. In the current implementation n must not exceed 4070.
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 symmetric matrix A, packed sequentially, column by column;
that is, if i <= j, then A[i,j] is stored in AP[i+(j*(j+1)/2)]. If
uplo == 'L' or 'L', the array AP contains the lower triangular part
of the symmetric 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].
x      double precision complex array of length at least (1 + (n - 1) * abs(incx)).
On entry, x contains the source vector. On exit, x is overwritten
with the result vector.
incx   specifies the storage spacing for elements of x. incx must not be
zero.

Output
------
x      updated according to x = op(A) * x,

Reference: http://www.netlib.org/blas/ztpmv.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 incx == 0 or n < 0
CUBLAS_STATUS_ALLOC_FAILED     if function cannot allocate enough internal scratch vector memory
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 cublasZtpmv ( char uplo char trans char diag int n const cuDoubleComplex * AP cuDoubleComplex * x int incx ) ;