JCublasJava/src/main/java/jcuda/jcublas/JCublas.java
public static void cublasDtbmv(char uplo, char trans, char diag, int n, int k, Pointer A, int lda, Pointer x, int incx)
    {
        cublasDtbmvNative(uplo, trans, diag, n, k, A, lda, x, incx);
        checkResultBLAS();
    }
public static void cublasDtbmv(char uplo, char trans, char diag, int n, int k, Pointer A, int lda, Pointer x, int incx)
    {
        cublasDtbmvNative(uplo, trans, diag, n, k, A, lda, x, incx);
        checkResultBLAS();
    }
public static void cublasDtbmv ( char uplo , char trans , char diag , int n , int k , Pointer A , int lda , Pointer x , int incx ) { cublasDtbmvNative ( uplo , trans , diag , n , k , A , lda , x , incx ) ; checkResultBLAS ( ) ; }
<pre>
void
cublasDtbmv (char uplo, char trans, char diag, int n, int k, const double *A,
int lda, double *x, int incx)

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

Input
-----
uplo   specifies whether the matrix A is an upper or lower triangular band
matrix. If uplo == 'U' or 'u', A is an upper triangular band matrix.
If uplo == 'L' or 'l', A is a lower triangular band matrix.
trans  specifies op(A). If transa == 'N' or 'n', op(A) = A. If trans == 'T',
't', 'C', or 'c', op(A) = 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.
k      specifies the number of super- or sub-diagonals. If uplo == 'U' or
'u', k specifies the number of super-diagonals. If uplo == 'L' or
'l', k specifies the number of sub-diagonals. k must at least be
zero.
A      double precision array of dimension (lda, n). If uplo == 'U' or 'u',
the leading (k + 1) x n part of the array A must contain the upper
triangular band matrix, supplied column by column, with the leading
diagonal of the matrix in row (k + 1) of the array, the first
super-diagonal starting at position 2 in row k, and so on. The top
left k x k triangle of the array A is not referenced. If uplo == 'L'
or 'l', the leading (k + 1) x n part of the array A must constain the
lower triangular band matrix, supplied column by column, with the
leading diagonal of the matrix in row 1 of the array, the first
sub-diagonal startingat position 1 in row 2, and so on. The bottom
right k x k triangle of the array is not referenced.
lda    is the leading dimension of A. It must be at least (k + 1).
x      double precision 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/dtbmv.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 or k < 0, or if incx == 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 cublasDtbmv ( char uplo char trans char diag int n int k const double * A int lda double * x int incx )