public static extern void cublasZrotg(ref cuDoubleComplex host_ca, cuDoubleComplex cb, ref double host_sc, ref cuDoubleComplex host_cs);
 public static extern void cublasZhpr2(char uplo, int n, cuDoubleComplex alpha, CUdeviceptr x, int incx, CUdeviceptr y, int incy, CUdeviceptr AP);
 public static extern void cublasZrot(int n, CUdeviceptr x, int incx, CUdeviceptr y, int incy, double sc, cuDoubleComplex cs);
 public static extern void cublasZgeru(int m, int n, cuDoubleComplex alpha, CUdeviceptr x, int incx, CUdeviceptr y, int incy, CUdeviceptr A, int lda);
 public static extern void cublasZhpmv(char uplo, int n, cuDoubleComplex alpha, CUdeviceptr AP, CUdeviceptr x, int incx, cuDoubleComplex beta, CUdeviceptr y, int incy);
 public static extern void cublasZsyrk(char uplo, char trans, int n, int k, cuDoubleComplex alpha, CUdeviceptr A, int lda, cuDoubleComplex beta, CUdeviceptr C, int ldc);
 public CUBLASStatusv2 cublasZrotg(cublasHandle handle, ref cuDoubleComplex a, ref cuDoubleComplex b, ref double c, ref cuDoubleComplex s)
 {
     return cublasZrotg_v2(handle, ref a, ref b, ref c, ref s);
 }
 private static extern CUBLASStatusv2 cublasZdotc_v2(cublasHandle handle, int n, IntPtr x, int incx, IntPtr y, int incy, ref cuDoubleComplex result);
 public static extern void cublasZaxpy(int n, cuDoubleComplex alpha, CUdeviceptr x, int incx, CUdeviceptr y, int incy);
 public CUBLASStatusv2 cublasZaxpy(cublasHandle handle, int n, ref cuDoubleComplex alpha, IntPtr x, int incx, IntPtr y, int incy)
 {
     return cublasZaxpy_v2(handle, n, ref alpha, x, incx, y, incy);
 }
 public CUBLASStatusv2 cublasZdotc(cublasHandle handle, int n, IntPtr x, int incx, IntPtr y, int incy, ref cuDoubleComplex result)
 {
     return cublasZdotc_v2(handle, n, x, incx, y, incy, ref result);
 }
 private static extern CUBLASStatusv2 cublasZrotg_v2(cublasHandle handle, ref cuDoubleComplex a, ref cuDoubleComplex b, ref double c, ref cuDoubleComplex s);
 private static extern CUBLASStatusv2 cublasZrot_v2(cublasHandle handle,  int n, IntPtr x, int incx, IntPtr y, int incy, ref double c, ref cuDoubleComplex s);
 private static extern CUBLASStatusv2 cublasZaxpy_v2(cublasHandle handle, int n, ref cuDoubleComplex alpha, IntPtr x, int incx, IntPtr y, int incy);
 public static extern void cublasZscal(int n, cuDoubleComplex alpha, CUdeviceptr x, int incx);
 public static extern void cublasZgemm(char transa, char transb, int m, int n, int k, cuDoubleComplex alpha, CUdeviceptr A, int lda, CUdeviceptr B, int ldb, cuDoubleComplex beta, CUdeviceptr C, int ldc);
 public static extern void cublasZsymm(char side, char uplo, int m, int n, cuDoubleComplex alpha, CUdeviceptr A, int lda, CUdeviceptr B, int ldb, cuDoubleComplex beta, CUdeviceptr C, int ldc);
 public static extern void cublasZgemv(char trans, int m, int n, cuDoubleComplex alpha, CUdeviceptr A, int lda, CUdeviceptr x, int incx, cuDoubleComplex beta, CUdeviceptr y, int incy);
 public static extern void cublasZtrsm(char side, char uplo, char transa, char diag, int m, int n, cuDoubleComplex alpha, CUdeviceptr A, int lda, CUdeviceptr B, int ldb);
 public CUBLASStatusv2 cublasZrot(cublasHandle handle, int n, IntPtr x, int incx, IntPtr y, int incy, ref double c, ref cuDoubleComplex s)
 {
     return cublasZrot_v2(handle, n, x, incx, y, incy, ref c, ref s);
 }