code: func (impl *Standard) Stpsv(ul blas.Uplo, tA blas.Transpose, d blas.Diag, n int, aP, x []float32, incX int) {
  	// declared at cublasgen.h:844:17 enum CUBLAS_STATUS { ... } cublasStpsv ...
  	if impl.e != nil {
  		return
  	}
  
  	if tA != blas.NoTrans && tA != blas.Trans && tA != blas.ConjTrans {
  		panic("blas: illegal transpose")
  	}
  	if n < 0 {
  		panic("blas: n < 0")
  	}
  	if incX == 0 {
  		panic("blas: zero x index increment")
  	}
  	if (incX > 0 && (n-1)*incX >= len(x)) || (incX < 0 && (1-n)*incX >= len(x)) {
  		panic("blas: x index out of range")
  	}
  	if n == 0 {
  		return
  	}
  	impl.e = status(C.cublasStpsv(C.cublasHandle_t(impl.h), uplo2cublasUplo(ul), trans2cublasTrans(tA), diag2cublasDiag(d), C.int(n), (*C.float)(&aP[0]), (*C.float)(&x[0]), C.int(incX)))
  }
docs: // Stpsv solves
  //  A * x = b if tA == blas.NoTrans
  //  A^T * x = b if tA == blas.Trans or blas.ConjTrans
  // where A is an n×n triangular matrix in packed format and x is a vector.
  // At entry to the function, x contains the values of b, and the result is
  // stored in place into x.
  //
  // No test for singularity or near-singularity is included in this
  // routine. Such tests must be performed before calling this routine.