JCublasJava/src/main/java/jcuda/jcublas/JCublas.java
public static void cublasCtpsv(char uplo, char trans, char diag, int n, Pointer AP, Pointer x, int incx)
    {
        cublasCtpsvNative(uplo, trans, diag, n, AP, x, incx);
        checkResultBLAS();
    }
public static void cublasCtpsv(char uplo, char trans, char diag, int n, Pointer AP, Pointer x, int incx)
    {
        cublasCtpsvNative(uplo, trans, diag, n, AP, x, incx);
        checkResultBLAS();
    }
public static void cublasCtpsv ( char uplo , char trans , char diag , int n , Pointer AP , Pointer x , int incx ) { cublasCtpsvNative ( uplo , trans , diag , n , AP , x , incx ) ; checkResultBLAS ( ) ; }
<pre>
void
cublasCtpsv (char uplo, char trans, char diag, int n, const cuComplex *AP,
cuComplex *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)). b and
x are n element complex vectors, and A is an n x n unit or non-unit,
upper or lower triangular matrix. No test for singularity or near-singularity
is included in this routine. Such tests must be performed before calling this routine.

Input
-----
uplo   specifies whether the matrix is an upper or lower triangular matrix
as follows: If uplo == 'U' or 'u', A is an upper triangluar matrix.
If uplo == 'L' or 'l', A is a lower triangular matrix.
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)).
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.
AP     single precision complex array with at least ((n*(n+1))/2) elements.
If uplo == 'U' or 'u', the array AP contains the upper triangular
matrix A, packed sequentially, column by column; that is, if i <= j, then
A[i,j] is stored is AP[i+(j*(j+1)/2)]. If uplo == 'L' or 'L', the
array AP contains the lower triangular 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]. When diag = 'U' or 'u', the diagonal elements
of A are not referenced and are assumed to be unity.
x      single 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/ctpsv.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 or n > 2035
CUBLAS_STATUS_EXECUTION_FAILED if function failed to launch on GPU
</pre>
<pre > void cublasCtpsv ( char uplo char trans char diag int n const cuComplex * AP cuComplex * X int incx )