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

performs one of the matrix-vector operations

y = alpha*op(A)*x + beta*y,  op(A)=A or op(A) = transpose(A)

alpha and beta are double precision complex scalars. x and y are double precision
complex vectors. A is an m by n band matrix consisting of double precision complex elements
with kl sub-diagonals and ku super-diagonals.

Input
-----
trans  specifies op(A). If trans == '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)).
m      specifies the number of rows of the matrix A. m must be at least
zero.
n      specifies the number of columns of the matrix A. n must be at least
zero.
kl     specifies the number of sub-diagonals of matrix A. It must be at
least zero.
ku     specifies the number of super-diagonals of matrix A. It must be at
least zero.
alpha  double precision complex scalar multiplier applied to op(A).
A      double precision complex array of dimensions (lda, n). The leading
(kl + ku + 1) x n part of the array A must contain the band matrix A,
supplied column by column, with the leading diagonal of the matrix
in row (ku + 1) of the array, the first super-diagonal starting at
position 2 in row ku, the first sub-diagonal starting at position 1
in row (ku + 2), and so on. Elements in the array A that do not
correspond to elements in the band matrix (such as the top left
ku x ku triangle) are not referenced.
lda    leading dimension of A. lda must be at least (kl + ku + 1).
x      double precision complex array of length at least (1+(n-1)*abs(incx)) when
trans == 'N' or 'n' and at least (1+(m-1)*abs(incx)) otherwise.
incx   specifies the increment for the elements of x. incx must not be zero.
beta   double precision complex scalar multiplier applied to vector y. If beta is
zero, y is not read.
y      double precision complex array of length at least (1+(m-1)*abs(incy)) when
trans == 'N' or 'n' and at least (1+(n-1)*abs(incy)) otherwise. If
beta is zero, y is not read.
incy   On entry, incy specifies the increment for the elements of y. incy
must not be zero.

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

Reference: http://www.netlib.org/blas/zgbmv.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>