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

solves one of the systems of equations op(A)*x = b, where op(A) is either
op(A) = A , op(A) = transpose(A) or op(A) = conjugate(transpose(A)).
b and x are n element vectors, and A is an n x n unit or non-unit,
upper or lower triangular band matrix with k + 1 diagonals. No test
for singularity or near-singularity is included in this function.
Such tests must be performed before calling this function.

Input
-----
uplo   specifies whether the matrix is an upper or lower triangular band
matrix as follows: 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 trans == 'N' or 'n', op(A) = A. If trans == 'T',
't', op(A) = transpose(A). If trans == 'C' or 'c',
op(A) = conjugate(transpose(A)).
diag   specifies whether A is unit triangular. If diag == 'U' or 'u', A is
assumed to be unit triangular; thas is, diagonal elements are not
read and are assumed to be unity. 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 complex 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 starting at position 1 in row 2, and so on. The bottom
right k x k triangle of the array is not referenced.
x      double precision complex array of length at least (1+(n-1)*abs(incx)).
incx   storage spacing between elements of x. It must not be zero.

Output
------
x      updated to contain the solution vector x that solves op(A) * x = b.

Reference: http://www.netlib.org/blas/ztbsv.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, n < 0 or n > 1016
CUBLAS_STATUS_ARCH_MISMATCH    if invoked on device without DP support
CUBLAS_STATUS_EXECUTION_FAILED if function failed to launch on GPU
</pre>