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

solves a system of equations op(A) * x = b, where op(A) is either A,
transpose(A) or conjugate(transpose(A)). b and x are double precision
complex vectors consisting of n elements, and A is an n x n matrix
composed of a unit or non-unit, upper or lower triangular matrix.
Matrix A is stored in column major format, and lda is the leading
dimension of the two-dimensional array containing A.

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 data is stored in the upper or the
lower triangular part of array A. If uplo = 'U' or 'u', then only
the upper triangular part of A may be referenced. If uplo = 'L' or
'l', then only the lower triangular part of A may be referenced.
trans  specifies op(A). If transa = 'n' or 'N', op(A) = A. If transa = 't',
'T', 'c', or 'C', op(A) = transpose(A)
diag   specifies whether or not A is a unit triangular matrix like so:
if diag = 'U' or 'u', A is assumed to be unit triangular. If
diag = 'N' or 'n', then A is not assumed to be unit triangular.
n      specifies the number of rows and columns of the matrix A. It
must be at least 0.
A      is a double precision complex array of dimensions (lda, n). If uplo = 'U'
or 'u', then A must contains the upper triangular part of a symmetric
matrix, and the strictly lower triangular parts is not referenced.
If uplo = 'L' or 'l', then A contains the lower triangular part of
a symmetric matrix, and the strictly upper triangular part is not
referenced.
lda    is the leading dimension of the two-dimensional array containing A.
lda must be at least max(1, n).
x      double precision complex array of length at least (1 + (n - 1) * abs(incx)).
On entry, x contains the n element right-hand side vector b. On exit,
it is overwritten with the solution vector x.
incx   specifies the storage spacing between elements of x. incx 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/ztrsv.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 if n < 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 cublasZtrsv ( char uplo char trans char diag int n const cuDoubleComplex * A int lda cuDoubleComplex * x int incx )