public static extern void cublasChpmv(char uplo, int n, cuFloatComplex alpha, CUdeviceptr AP, CUdeviceptr x, int incx, cuFloatComplex beta, CUdeviceptr y, int incy);
 public static extern void cublasChpr2(char uplo, int n, cuFloatComplex alpha, CUdeviceptr x, int incx, CUdeviceptr y, int incy, CUdeviceptr AP);
 public static extern void cublasCgeru(int m, int n, cuFloatComplex alpha, CUdeviceptr x, int incx, CUdeviceptr y, int incy, CUdeviceptr A, int lda);
 public static extern void cublasCher(char uplo, int n, cuFloatComplex alpha, CUdeviceptr x, int incx, CUdeviceptr A, int lda);
 public static extern void cublasCsyrk(char uplo, char trans, int n, int k, cuFloatComplex alpha, CUdeviceptr A, int lda, cuFloatComplex beta, CUdeviceptr C, int ldc);
 private static extern CUBLASStatusv2 cublasCaxpy_v2(cublasHandle handle, int n, ref cuFloatComplex alpha, IntPtr x, int incx, IntPtr y, int incy);
 public CUBLASStatusv2 cublasCrot(cublasHandle handle, int n, IntPtr x, int incx, IntPtr y, int incy, ref float c, ref cuFloatComplex s)
 {
     return cublasCrot_v2(handle, n, x, incx, y, incy, ref c, ref s);
 }
 public static extern void cublasCscal(int n, cuFloatComplex alpha, CUdeviceptr x, int incx);
 private static extern CUBLASStatusv2 cublasCdotc_v2(cublasHandle handle, int n, IntPtr x, int incx, IntPtr y, int incy, ref cuFloatComplex result);
 public CUBLASStatusv2 cublasCdotc(cublasHandle handle, int n, IntPtr x, int incx, IntPtr y, int incy, ref cuFloatComplex result)
 {
     return cublasCdotc_v2(handle, n, x, incx, y, incy, ref result);
 }
 public CUBLASStatusv2 cublasCaxpy(cublasHandle handle, int n, ref cuFloatComplex alpha, IntPtr x, int incx, IntPtr y, int incy)
 {
     return cublasCaxpy_v2(handle, n, ref alpha, x, incx, y, incy);
 }
 private static extern CUBLASStatusv2 cublasCrotg_v2(cublasHandle handle, ref cuFloatComplex a, ref cuFloatComplex b, ref float c, ref cuFloatComplex s);
 private static extern CUBLASStatusv2 cublasCrot_v2(cublasHandle handle,  int n, IntPtr x, int incx, IntPtr y, int incy, ref float c, ref cuFloatComplex s);
 public static extern void cublasCrot(int n, CUdeviceptr x, int incx, CUdeviceptr y, int incy, float c, cuFloatComplex s);
 public static extern void cublasCaxpy(int n, cuFloatComplex alpha, CUdeviceptr x, int incx, CUdeviceptr y, int incy);
 public static extern void cublasCrotg(CUdeviceptr pca, cuFloatComplex cb, CUdeviceptr psc, CUdeviceptr pcs);
 public static extern void cublasCgemm(char transa, char transb, int m, int n, int k, cuFloatComplex alpha, CUdeviceptr A, int lda, CUdeviceptr B, int ldb, cuFloatComplex beta, CUdeviceptr C, int ldc);
 public static extern void cublasCsymm(char side, char uplo, int m, int n, cuFloatComplex alpha, CUdeviceptr A, int lda, CUdeviceptr B, int ldb, cuFloatComplex beta, CUdeviceptr C, int ldc);
 public static extern void cublasCgemv(char trans, int m, int n, cuFloatComplex alpha, CUdeviceptr A, int lda, CUdeviceptr x, int incx, cuFloatComplex beta, CUdeviceptr y, int incy);
 public static extern void cublasCtrsm(char side, char uplo, char transa, char diag, int m, int n, cuFloatComplex alpha, CUdeviceptr A, int lda, CUdeviceptr B, int ldb);
 public CUBLASStatusv2 cublasCrotg(cublasHandle handle, ref cuFloatComplex a, ref cuFloatComplex b, ref float c, ref cuFloatComplex s)
 {
     return cublasCrotg_v2(handle, ref a, ref b, ref c, ref s);
 }