| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| |
| |
| |
| |
| |
|
|
| #include <ctype.h> |
| #include <stdio.h> |
| #include <string.h> |
| #include <stddef.h> |
| #include <stdlib.h> |
| #if defined(__GNUC__) |
| #include <stdint.h> |
| #endif |
| #include "cublas.h" |
|
|
| #include "fortran_common.h" |
| #include "fortran.h" |
|
|
| int CUBLAS_INIT(void) { return (int)cublasInit(); } |
|
|
| int CUBLAS_SHUTDOWN(void) { return (int)cublasShutdown(); } |
|
|
| int CUBLAS_ALLOC(const int* n, const int* elemSize, devptr_t* devicePtr) { |
| void* tPtr; |
| int retVal; |
| retVal = (int)cublasAlloc(*n, *elemSize, &tPtr); |
| *devicePtr = (devptr_t)tPtr; |
| return retVal; |
| } |
|
|
| int CUBLAS_FREE(const devptr_t* devicePtr) { |
| void* tPtr; |
| tPtr = (void*)(*devicePtr); |
| return (int)cublasFree(tPtr); |
| } |
|
|
| int CUBLAS_SET_VECTOR( |
| const int* n, const int* elemSize, const void* x, const int* incx, const devptr_t* y, const int* incy) { |
| void* tPtr = (void*)(*y); |
| return (int)cublasSetVector(*n, *elemSize, x, *incx, tPtr, *incy); |
| } |
|
|
| int CUBLAS_GET_VECTOR(const int* n, const int* elemSize, const devptr_t* x, const int* incx, void* y, const int* incy) { |
| const void* tPtr = (const void*)(*x); |
| return (int)cublasGetVector(*n, *elemSize, tPtr, *incx, y, *incy); |
| } |
|
|
| int CUBLAS_SET_MATRIX(const int* rows, |
| const int* cols, |
| const int* elemSize, |
| const void* A, |
| const int* lda, |
| const devptr_t* B, |
| const int* ldb) { |
| void* tPtr = (void*)(*B); |
| return (int)cublasSetMatrix(*rows, *cols, *elemSize, A, *lda, tPtr, *ldb); |
| } |
|
|
| int CUBLAS_GET_MATRIX( |
| const int* rows, const int* cols, const int* elemSize, const devptr_t* A, const int* lda, void* B, const int* ldb) { |
| const void* tPtr = (const void*)(*A); |
| return (int)cublasGetMatrix(*rows, *cols, *elemSize, tPtr, *lda, B, *ldb); |
| } |
|
|
| int CUBLAS_GET_ERROR(void) { return (int)cublasGetError(); } |
|
|
| void CUBLAS_XERBLA(const char* srName, int* info) { cublasXerbla(srName, *info); } |
|
|
| |
| |
| |
|
|
| int CUBLAS_ISAMAX(const int* n, const devptr_t* devPtrx, const int* incx) { |
| float* x = (float*)(*devPtrx); |
| int retVal; |
| retVal = cublasIsamax(*n, x, *incx); |
| return retVal; |
| } |
|
|
| int CUBLAS_ISAMIN(const int* n, const devptr_t* devPtrx, const int* incx) { |
| float* x = (float*)(*devPtrx); |
| int retVal; |
| retVal = cublasIsamin(*n, x, *incx); |
| return retVal; |
| } |
|
|
| #ifdef CUBLAS_G77 |
| double CUBLAS_SASUM(const int* n, const devptr_t* devPtrx, const int* incx) |
| #else |
| float CUBLAS_SASUM(const int* n, const devptr_t* devPtrx, const int* incx) |
| #endif |
| { |
| float* x = (float*)(*devPtrx); |
| float retVal; |
| retVal = cublasSasum(*n, x, *incx); |
| return retVal; |
| } |
|
|
| void CUBLAS_SAXPY(const int* n, |
| const float* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy) { |
| float* x = (float*)(*devPtrx); |
| float* y = (float*)(*devPtry); |
| cublasSaxpy(*n, *alpha, x, *incx, y, *incy); |
| } |
|
|
| void CUBLAS_SCOPY(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy) { |
| float* x = (float*)(*devPtrx); |
| float* y = (float*)(*devPtry); |
| cublasScopy(*n, x, *incx, y, *incy); |
| } |
|
|
| #ifdef CUBLAS_G77 |
| double CUBLAS_SDOT(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy) |
| #else |
| float CUBLAS_SDOT(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy) |
| #endif |
| { |
| float* x = (float*)(*devPtrx); |
| float* y = (float*)(*devPtry); |
| return cublasSdot(*n, x, *incx, y, *incy); |
| } |
|
|
| #ifdef CUBLAS_G77 |
| double CUBLAS_SNRM2(const int* n, const devptr_t* devPtrx, const int* incx) |
| #else |
| float CUBLAS_SNRM2(const int* n, const devptr_t* devPtrx, const int* incx) |
| #endif |
| { |
| float* x = (float*)(*devPtrx); |
| return cublasSnrm2(*n, x, *incx); |
| } |
|
|
| void CUBLAS_SROT(const int* n, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const float* sc, |
| const float* ss) { |
| float* x = (float*)(*devPtrx); |
| float* y = (float*)(*devPtry); |
| cublasSrot(*n, x, *incx, y, *incy, *sc, *ss); |
| } |
|
|
| void CUBLAS_SROTG(float* sa, float* sb, float* sc, float* ss) { cublasSrotg(sa, sb, sc, ss); } |
|
|
| void CUBLAS_SROTM(const int* n, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const float* sparam) { |
| float* x = (float*)(*devPtrx); |
| float* y = (float*)(*devPtry); |
| cublasSrotm(*n, x, *incx, y, *incy, sparam); |
| } |
|
|
| void CUBLAS_SROTMG(float* sd1, float* sd2, float* sx1, const float* sy1, float* sparam) { |
| cublasSrotmg(sd1, sd2, sx1, sy1, sparam); |
| } |
|
|
| void CUBLAS_SSCAL(const int* n, const float* alpha, const devptr_t* devPtrx, const int* incx) { |
| float* x = (float*)(*devPtrx); |
| cublasSscal(*n, *alpha, x, *incx); |
| } |
|
|
| void CUBLAS_SSWAP(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy) { |
| float* x = (float*)(*devPtrx); |
| float* y = (float*)(*devPtry); |
| cublasSswap(*n, x, *incx, y, *incy); |
| } |
|
|
| void CUBLAS_CAXPY(const int* n, |
| const cuComplex* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy) { |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cuComplex* y = (cuComplex*)(*devPtry); |
| cublasCaxpy(*n, *alpha, x, *incx, y, *incy); |
| } |
|
|
| void CUBLAS_ZAXPY(const int* n, |
| const cuDoubleComplex* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy) { |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cuDoubleComplex* y = (cuDoubleComplex*)(*devPtry); |
| cublasZaxpy(*n, *alpha, x, *incx, y, *incy); |
| } |
|
|
| void CUBLAS_CCOPY(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy) { |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cuComplex* y = (cuComplex*)(*devPtry); |
| cublasCcopy(*n, x, *incx, y, *incy); |
| } |
| void CUBLAS_ZCOPY(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy) { |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cuDoubleComplex* y = (cuDoubleComplex*)(*devPtry); |
| cublasZcopy(*n, x, *incx, y, *incy); |
| } |
| void CUBLAS_CROT(const int* n, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const float* sc, |
| const cuComplex* cs) { |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cuComplex* y = (cuComplex*)(*devPtry); |
| cublasCrot(*n, x, *incx, y, *incy, *sc, *cs); |
| } |
|
|
| void CUBLAS_ZROT(const int* n, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const double* sc, |
| const cuDoubleComplex* cs) { |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cuDoubleComplex* y = (cuDoubleComplex*)(*devPtry); |
| cublasZrot(*n, x, *incx, y, *incy, *sc, *cs); |
| } |
|
|
| void CUBLAS_CROTG(cuComplex* ca, const cuComplex* cb, float* sc, cuComplex* cs) { cublasCrotg(ca, *cb, sc, cs); } |
|
|
| void CUBLAS_ZROTG(cuDoubleComplex* ca, const cuDoubleComplex* cb, double* sc, cuDoubleComplex* cs) { |
| cublasZrotg(ca, *cb, sc, cs); |
| } |
|
|
| void CUBLAS_CSCAL(const int* n, const cuComplex* alpha, const devptr_t* devPtrx, const int* incx) { |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cublasCscal(*n, *alpha, x, *incx); |
| } |
|
|
| void CUBLAS_CSROT(const int* n, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const float* sc, |
| const float* ss) { |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cuComplex* y = (cuComplex*)(*devPtry); |
| cublasCsrot(*n, x, *incx, y, *incy, *sc, *ss); |
| } |
|
|
| void CUBLAS_ZDROT(const int* n, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const double* sc, |
| const double* ss) { |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cuDoubleComplex* y = (cuDoubleComplex*)(*devPtry); |
| cublasZdrot(*n, x, *incx, y, *incy, *sc, *ss); |
| } |
|
|
| void CUBLAS_CSSCAL(const int* n, const float* alpha, const devptr_t* devPtrx, const int* incx) { |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cublasCsscal(*n, *alpha, x, *incx); |
| } |
|
|
| void CUBLAS_CSWAP(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy) { |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cuComplex* y = (cuComplex*)(*devPtry); |
| cublasCswap(*n, x, *incx, y, *incy); |
| } |
|
|
| void CUBLAS_ZSWAP(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy) { |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cuDoubleComplex* y = (cuDoubleComplex*)(*devPtry); |
| cublasZswap(*n, x, *incx, y, *incy); |
| } |
|
|
| void CUBLAS_CTRMV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cublasCtrmv(uplo[0], trans[0], diag[0], *n, A, *lda, x, *incx); |
| } |
|
|
| void CUBLAS_ZTRMV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cublasZtrmv(uplo[0], trans[0], diag[0], *n, A, *lda, x, *incx); |
| } |
| #ifdef RETURN_COMPLEX |
| cuComplex CUBLAS_CDOTU( |
| const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy) { |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cuComplex* y = (cuComplex*)(*devPtry); |
| cuComplex retVal = cublasCdotu(*n, x, *incx, y, *incy); |
| return retVal; |
| } |
| #else |
| void CUBLAS_CDOTU(cuComplex* retVal, |
| const int* n, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy) { |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cuComplex* y = (cuComplex*)(*devPtry); |
| *retVal = cublasCdotu(*n, x, *incx, y, *incy); |
| } |
| #endif |
| #ifdef RETURN_COMPLEX |
| cuComplex CUBLAS_CDOTC( |
| const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy) { |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cuComplex* y = (cuComplex*)(*devPtry); |
| cuComplex retVal = cublasCdotc(*n, x, *incx, y, *incy); |
| return retVal; |
| } |
| #else |
| void CUBLAS_CDOTC(cuComplex* retVal, |
| const int* n, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy) { |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cuComplex* y = (cuComplex*)(*devPtry); |
| *retVal = cublasCdotc(*n, x, *incx, y, *incy); |
| } |
| #endif |
| int CUBLAS_ICAMAX(const int* n, const devptr_t* devPtrx, const int* incx) { |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| return cublasIcamax(*n, x, *incx); |
| } |
|
|
| int CUBLAS_ICAMIN(const int* n, const devptr_t* devPtrx, const int* incx) { |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| return cublasIcamin(*n, x, *incx); |
| } |
|
|
| int CUBLAS_IZAMAX(const int* n, const devptr_t* devPtrx, const int* incx) { |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| return cublasIzamax(*n, x, *incx); |
| } |
|
|
| int CUBLAS_IZAMIN(const int* n, const devptr_t* devPtrx, const int* incx) { |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| return cublasIzamin(*n, x, *incx); |
| } |
|
|
| #ifdef CUBLAS_G77 |
| double CUBLAS_SCASUM(const int* n, const devptr_t* devPtrx, const int* incx) |
| #else |
| float CUBLAS_SCASUM(const int* n, const devptr_t* devPtrx, const int* incx) |
| #endif |
| { |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| return cublasScasum(*n, x, *incx); |
| } |
|
|
| double CUBLAS_DZASUM(const int* n, const devptr_t* devPtrx, const int* incx) { |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| return cublasDzasum(*n, x, *incx); |
| } |
|
|
| #ifdef CUBLAS_G77 |
| double CUBLAS_SCNRM2(const int* n, const devptr_t* devPtrx, const int* incx) |
| #else |
| float CUBLAS_SCNRM2(const int* n, const devptr_t* devPtrx, const int* incx) |
| #endif |
| { |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| return cublasScnrm2(*n, x, *incx); |
| } |
|
|
| double CUBLAS_DZNRM2(const int* n, const devptr_t* devPtrx, const int* incx) { |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| return cublasDznrm2(*n, x, *incx); |
| } |
|
|
| int CUBLAS_IDAMAX(const int* n, const devptr_t* devPtrx, const int* incx) { |
| double* x = (double*)(*devPtrx); |
| int retVal; |
| retVal = cublasIdamax(*n, x, *incx); |
| return retVal; |
| } |
|
|
| int CUBLAS_IDAMIN(const int* n, const devptr_t* devPtrx, const int* incx) { |
| double* x = (double*)(*devPtrx); |
| int retVal; |
| retVal = cublasIdamin(*n, x, *incx); |
| return retVal; |
| } |
|
|
| double CUBLAS_DASUM(const int* n, const devptr_t* devPtrx, const int* incx) { |
| double* x = (double*)(*devPtrx); |
| double retVal; |
| retVal = cublasDasum(*n, x, *incx); |
| return retVal; |
| } |
|
|
| void CUBLAS_DAXPY(const int* n, |
| const double* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy) { |
| double* x = (double*)(*devPtrx); |
| double* y = (double*)(*devPtry); |
| cublasDaxpy(*n, *alpha, x, *incx, y, *incy); |
| } |
|
|
| void CUBLAS_DCOPY(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy) { |
| double* x = (double*)(*devPtrx); |
| double* y = (double*)(*devPtry); |
| cublasDcopy(*n, x, *incx, y, *incy); |
| } |
|
|
| double CUBLAS_DDOT(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy) { |
| double* x = (double*)(*devPtrx); |
| double* y = (double*)(*devPtry); |
| return cublasDdot(*n, x, *incx, y, *incy); |
| } |
|
|
| double CUBLAS_DNRM2(const int* n, const devptr_t* devPtrx, const int* incx) { |
| double* x = (double*)(*devPtrx); |
| return cublasDnrm2(*n, x, *incx); |
| } |
|
|
| void CUBLAS_DROT(const int* n, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const double* sc, |
| const double* ss) { |
| double* x = (double*)(*devPtrx); |
| double* y = (double*)(*devPtry); |
| cublasDrot(*n, x, *incx, y, *incy, *sc, *ss); |
| } |
|
|
| void CUBLAS_DROTG(double* sa, double* sb, double* sc, double* ss) { cublasDrotg(sa, sb, sc, ss); } |
|
|
| void CUBLAS_DROTM(const int* n, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const double* sparam) { |
| double* x = (double*)(*devPtrx); |
| double* y = (double*)(*devPtry); |
| cublasDrotm(*n, x, *incx, y, *incy, sparam); |
| } |
|
|
| void CUBLAS_DROTMG(double* sd1, double* sd2, double* sx1, const double* sy1, double* sparam) { |
| cublasDrotmg(sd1, sd2, sx1, sy1, sparam); |
| } |
|
|
| void CUBLAS_DSCAL(const int* n, const double* alpha, const devptr_t* devPtrx, const int* incx) { |
| double* x = (double*)(*devPtrx); |
| cublasDscal(*n, *alpha, x, *incx); |
| } |
|
|
| void CUBLAS_DSWAP(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy) { |
| double* x = (double*)(*devPtrx); |
| double* y = (double*)(*devPtry); |
| cublasDswap(*n, x, *incx, y, *incy); |
| } |
| #ifdef RETURN_COMPLEX |
| cuDoubleComplex CUBLAS_ZDOTU( |
| const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy) { |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cuDoubleComplex* y = (cuDoubleComplex*)(*devPtry); |
| return (cublasZdotu(*n, x, *incx, y, *incy)); |
| } |
| #else |
| void CUBLAS_ZDOTU(cuDoubleComplex* retVal, |
| const int* n, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy) { |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cuDoubleComplex* y = (cuDoubleComplex*)(*devPtry); |
| *retVal = cublasZdotu(*n, x, *incx, y, *incy); |
| } |
| #endif |
| #ifdef RETURN_COMPLEX |
| cuDoubleComplex CUBLAS_ZDOTC( |
| const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy) { |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cuDoubleComplex* y = (cuDoubleComplex*)(*devPtry); |
| return (cublasZdotc(*n, x, *incx, y, *incy)); |
| } |
| #else |
| void CUBLAS_ZDOTC(cuDoubleComplex* retVal, |
| const int* n, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy) { |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cuDoubleComplex* y = (cuDoubleComplex*)(*devPtry); |
| *retVal = cublasZdotc(*n, x, *incx, y, *incy); |
| } |
| #endif |
| void CUBLAS_ZSCAL(const int* n, const cuDoubleComplex* alpha, const devptr_t* devPtrx, const int* incx) { |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cublasZscal(*n, *alpha, x, *incx); |
| } |
|
|
| void CUBLAS_ZDSCAL(const int* n, const double* alpha, const devptr_t* devPtrx, const int* incx) { |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cublasZdscal(*n, *alpha, x, *incx); |
| } |
|
|
| |
| |
| |
|
|
| void CUBLAS_SGBMV(const char* trans, |
| const int* m, |
| const int* n, |
| const int* kl, |
| const int* ku, |
| const float* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const float* beta, |
| const devptr_t* devPtry, |
| const int* incy) { |
| float* A = (float*)(*devPtrA); |
| float* x = (float*)(*devPtrx); |
| float* y = (float*)(*devPtry); |
| cublasSgbmv(trans[0], *m, *n, *kl, *ku, *alpha, A, *lda, x, *incx, *beta, y, *incy); |
| } |
|
|
| void CUBLAS_DGBMV(const char* trans, |
| const int* m, |
| const int* n, |
| const int* kl, |
| const int* ku, |
| const double* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const double* beta, |
| const devptr_t* devPtry, |
| const int* incy) { |
| double* A = (double*)(*devPtrA); |
| double* x = (double*)(*devPtrx); |
| double* y = (double*)(*devPtry); |
| cublasDgbmv(trans[0], *m, *n, *kl, *ku, *alpha, A, *lda, x, *incx, *beta, y, *incy); |
| } |
| void CUBLAS_CGBMV(const char* trans, |
| const int* m, |
| const int* n, |
| const int* kl, |
| const int* ku, |
| const cuComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const cuComplex* beta, |
| const devptr_t* devPtry, |
| const int* incy) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cuComplex* y = (cuComplex*)(*devPtry); |
| cublasCgbmv(trans[0], *m, *n, *kl, *ku, *alpha, A, *lda, x, *incx, *beta, y, *incy); |
| } |
| void CUBLAS_ZGBMV(const char* trans, |
| const int* m, |
| const int* n, |
| const int* kl, |
| const int* ku, |
| const cuDoubleComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const cuDoubleComplex* beta, |
| const devptr_t* devPtry, |
| const int* incy) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cuDoubleComplex* y = (cuDoubleComplex*)(*devPtry); |
| cublasZgbmv(trans[0], *m, *n, *kl, *ku, *alpha, A, *lda, x, *incx, *beta, y, *incy); |
| } |
|
|
| void CUBLAS_SGEMV(const char* trans, |
| const int* m, |
| const int* n, |
| const float* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const float* beta, |
| const devptr_t* devPtry, |
| const int* incy) { |
| float* A = (float*)(*devPtrA); |
| float* x = (float*)(*devPtrx); |
| float* y = (float*)(*devPtry); |
| cublasSgemv(trans[0], *m, *n, *alpha, A, *lda, x, *incx, *beta, y, *incy); |
| } |
|
|
| void CUBLAS_SGER(const int* m, |
| const int* n, |
| const float* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const devptr_t* devPtrA, |
| const int* lda) { |
| float* A = (float*)(*devPtrA); |
| float* x = (float*)(*devPtrx); |
| float* y = (float*)(*devPtry); |
| cublasSger(*m, *n, *alpha, x, *incx, y, *incy, A, *lda); |
| } |
|
|
| void CUBLAS_SSBMV(const char* uplo, |
| const int* n, |
| const int* k, |
| const float* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const float* beta, |
| const devptr_t* devPtry, |
| const int* incy) { |
| float* A = (float*)(*devPtrA); |
| float* x = (float*)(*devPtrx); |
| float* y = (float*)(*devPtry); |
| cublasSsbmv(uplo[0], *n, *k, *alpha, A, *lda, x, *incx, *beta, y, *incy); |
| } |
|
|
| void CUBLAS_DSBMV(const char* uplo, |
| const int* n, |
| const int* k, |
| const double* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const double* beta, |
| const devptr_t* devPtry, |
| const int* incy) { |
| double* A = (double*)(*devPtrA); |
| double* x = (double*)(*devPtrx); |
| double* y = (double*)(*devPtry); |
| cublasDsbmv(uplo[0], *n, *k, *alpha, A, *lda, x, *incx, *beta, y, *incy); |
| } |
|
|
| void CUBLAS_CHBMV(const char* uplo, |
| const int* n, |
| const int* k, |
| const cuComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const cuComplex* beta, |
| const devptr_t* devPtry, |
| const int* incy) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cuComplex* y = (cuComplex*)(*devPtry); |
| cublasChbmv(uplo[0], *n, *k, *alpha, A, *lda, x, *incx, *beta, y, *incy); |
| } |
|
|
| void CUBLAS_ZHBMV(const char* uplo, |
| const int* n, |
| const int* k, |
| const cuDoubleComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const cuDoubleComplex* beta, |
| const devptr_t* devPtry, |
| const int* incy) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cuDoubleComplex* y = (cuDoubleComplex*)(*devPtry); |
| cublasZhbmv(uplo[0], *n, *k, *alpha, A, *lda, x, *incx, *beta, y, *incy); |
| } |
|
|
| void CUBLAS_SSPMV(const char* uplo, |
| const int* n, |
| const float* alpha, |
| const devptr_t* devPtrAP, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const float* beta, |
| const devptr_t* devPtry, |
| const int* incy) { |
| float* AP = (float*)(*devPtrAP); |
| float* x = (float*)(*devPtrx); |
| float* y = (float*)(*devPtry); |
| cublasSspmv(uplo[0], *n, *alpha, AP, x, *incx, *beta, y, *incy); |
| } |
| void CUBLAS_DSPMV(const char* uplo, |
| const int* n, |
| const double* alpha, |
| const devptr_t* devPtrAP, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const double* beta, |
| const devptr_t* devPtry, |
| const int* incy) { |
| double* AP = (double*)(*devPtrAP); |
| double* x = (double*)(*devPtrx); |
| double* y = (double*)(*devPtry); |
| cublasDspmv(uplo[0], *n, *alpha, AP, x, *incx, *beta, y, *incy); |
| } |
| void CUBLAS_CHPMV(const char* uplo, |
| const int* n, |
| const cuComplex* alpha, |
| const devptr_t* devPtrAP, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const cuComplex* beta, |
| const devptr_t* devPtry, |
| const int* incy) { |
| cuComplex* AP = (cuComplex*)(*devPtrAP); |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cuComplex* y = (cuComplex*)(*devPtry); |
| cublasChpmv(uplo[0], *n, *alpha, AP, x, *incx, *beta, y, *incy); |
| } |
| void CUBLAS_ZHPMV(const char* uplo, |
| const int* n, |
| const cuDoubleComplex* alpha, |
| const devptr_t* devPtrAP, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const cuDoubleComplex* beta, |
| const devptr_t* devPtry, |
| const int* incy) { |
| cuDoubleComplex* AP = (cuDoubleComplex*)(*devPtrAP); |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cuDoubleComplex* y = (cuDoubleComplex*)(*devPtry); |
| cublasZhpmv(uplo[0], *n, *alpha, AP, x, *incx, *beta, y, *incy); |
| } |
|
|
| void CUBLAS_SSPR(const char* uplo, |
| const int* n, |
| const float* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtrAP) { |
| float* AP = (float*)(*devPtrAP); |
| float* x = (float*)(*devPtrx); |
| cublasSspr(uplo[0], *n, *alpha, x, *incx, AP); |
| } |
|
|
| void CUBLAS_DSPR(const char* uplo, |
| const int* n, |
| const double* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtrAP) { |
| double* AP = (double*)(*devPtrAP); |
| double* x = (double*)(*devPtrx); |
| cublasDspr(uplo[0], *n, *alpha, x, *incx, AP); |
| } |
|
|
| void CUBLAS_CHPR(const char* uplo, |
| const int* n, |
| const float* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtrAP) { |
| cuComplex* AP = (cuComplex*)(*devPtrAP); |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cublasChpr(uplo[0], *n, *alpha, x, *incx, AP); |
| } |
|
|
| void CUBLAS_ZHPR(const char* uplo, |
| const int* n, |
| const double* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtrAP) { |
| cuDoubleComplex* AP = (cuDoubleComplex*)(*devPtrAP); |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cublasZhpr(uplo[0], *n, *alpha, x, *incx, AP); |
| } |
|
|
| void CUBLAS_SSPR2(const char* uplo, |
| const int* n, |
| const float* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const devptr_t* devPtrAP) { |
| float* AP = (float*)(*devPtrAP); |
| float* x = (float*)(*devPtrx); |
| float* y = (float*)(*devPtry); |
| cublasSspr2(uplo[0], *n, *alpha, x, *incx, y, *incy, AP); |
| } |
|
|
| void CUBLAS_DSPR2(const char* uplo, |
| const int* n, |
| const double* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const devptr_t* devPtrAP) { |
| double* AP = (double*)(*devPtrAP); |
| double* x = (double*)(*devPtrx); |
| double* y = (double*)(*devPtry); |
| cublasDspr2(uplo[0], *n, *alpha, x, *incx, y, *incy, AP); |
| } |
|
|
| void CUBLAS_CHPR2(const char* uplo, |
| const int* n, |
| const cuComplex* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const devptr_t* devPtrAP) { |
| cuComplex* AP = (cuComplex*)(*devPtrAP); |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cuComplex* y = (cuComplex*)(*devPtry); |
| cublasChpr2(uplo[0], *n, *alpha, x, *incx, y, *incy, AP); |
| } |
|
|
| void CUBLAS_ZHPR2(const char* uplo, |
| const int* n, |
| const cuDoubleComplex* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const devptr_t* devPtrAP) { |
| cuDoubleComplex* AP = (cuDoubleComplex*)(*devPtrAP); |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cuDoubleComplex* y = (cuDoubleComplex*)(*devPtry); |
| cublasZhpr2(uplo[0], *n, *alpha, x, *incx, y, *incy, AP); |
| } |
|
|
| void CUBLAS_SSYMV(const char* uplo, |
| const int* n, |
| const float* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const float* beta, |
| const devptr_t* devPtry, |
| const int* incy) { |
| float* A = (float*)(*devPtrA); |
| float* x = (float*)(*devPtrx); |
| float* y = (float*)(*devPtry); |
| cublasSsymv(uplo[0], *n, *alpha, A, *lda, x, *incx, *beta, y, *incy); |
| } |
|
|
| void CUBLAS_DSYMV(const char* uplo, |
| const int* n, |
| const double* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const double* beta, |
| const devptr_t* devPtry, |
| const int* incy) { |
| double* A = (double*)(*devPtrA); |
| double* x = (double*)(*devPtrx); |
| double* y = (double*)(*devPtry); |
| cublasDsymv(uplo[0], *n, *alpha, A, *lda, x, *incx, *beta, y, *incy); |
| } |
|
|
| void CUBLAS_CHEMV(const char* uplo, |
| const int* n, |
| const cuComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const cuComplex* beta, |
| const devptr_t* devPtry, |
| const int* incy) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cuComplex* y = (cuComplex*)(*devPtry); |
| cublasChemv(uplo[0], *n, *alpha, A, *lda, x, *incx, *beta, y, *incy); |
| } |
|
|
| void CUBLAS_ZHEMV(const char* uplo, |
| const int* n, |
| const cuDoubleComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const cuDoubleComplex* beta, |
| const devptr_t* devPtry, |
| const int* incy) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cuDoubleComplex* y = (cuDoubleComplex*)(*devPtry); |
| cublasZhemv(uplo[0], *n, *alpha, A, *lda, x, *incx, *beta, y, *incy); |
| } |
|
|
| void CUBLAS_SSYR(const char* uplo, |
| const int* n, |
| const float* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtrA, |
| const int* lda) { |
| float* A = (float*)(*devPtrA); |
| float* x = (float*)(*devPtrx); |
| cublasSsyr(uplo[0], *n, *alpha, x, *incx, A, *lda); |
| } |
|
|
| void CUBLAS_SSYR2(const char* uplo, |
| const int* n, |
| const float* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const devptr_t* devPtrA, |
| const int* lda) { |
| float* A = (float*)(*devPtrA); |
| float* x = (float*)(*devPtrx); |
| float* y = (float*)(*devPtry); |
| cublasSsyr2(uplo[0], *n, *alpha, x, *incx, y, *incy, A, *lda); |
| } |
|
|
| void CUBLAS_DSYR2(const char* uplo, |
| const int* n, |
| const double* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const devptr_t* devPtrA, |
| const int* lda) { |
| double* A = (double*)(*devPtrA); |
| double* x = (double*)(*devPtrx); |
| double* y = (double*)(*devPtry); |
| cublasDsyr2(uplo[0], *n, *alpha, x, *incx, y, *incy, A, *lda); |
| } |
|
|
| void CUBLAS_CHER2(const char* uplo, |
| const int* n, |
| const cuComplex* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const devptr_t* devPtrA, |
| const int* lda) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cuComplex* y = (cuComplex*)(*devPtry); |
| cublasCher2(uplo[0], *n, *alpha, x, *incx, y, *incy, A, *lda); |
| } |
|
|
| void CUBLAS_ZHER2(const char* uplo, |
| const int* n, |
| const cuDoubleComplex* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const devptr_t* devPtrA, |
| const int* lda) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cuDoubleComplex* y = (cuDoubleComplex*)(*devPtry); |
| cublasZher2(uplo[0], *n, *alpha, x, *incx, y, *incy, A, *lda); |
| } |
|
|
| void CUBLAS_STBMV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const int* k, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| float* A = (float*)(*devPtrA); |
| float* x = (float*)(*devPtrx); |
| cublasStbmv(uplo[0], trans[0], diag[0], *n, *k, A, *lda, x, *incx); |
| } |
|
|
| void CUBLAS_DTBMV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const int* k, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| double* A = (double*)(*devPtrA); |
| double* x = (double*)(*devPtrx); |
| cublasDtbmv(uplo[0], trans[0], diag[0], *n, *k, A, *lda, x, *incx); |
| } |
|
|
| void CUBLAS_CTBMV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const int* k, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cublasCtbmv(uplo[0], trans[0], diag[0], *n, *k, A, *lda, x, *incx); |
| } |
|
|
| void CUBLAS_ZTBMV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const int* k, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cublasZtbmv(uplo[0], trans[0], diag[0], *n, *k, A, *lda, x, *incx); |
| } |
|
|
| void CUBLAS_STBSV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const int* k, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| float* A = (float*)(*devPtrA); |
| float* x = (float*)(*devPtrx); |
| cublasStbsv(uplo[0], trans[0], diag[0], *n, *k, A, *lda, x, *incx); |
| } |
|
|
| void CUBLAS_DTBSV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const int* k, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| double* A = (double*)(*devPtrA); |
| double* x = (double*)(*devPtrx); |
| cublasDtbsv(uplo[0], trans[0], diag[0], *n, *k, A, *lda, x, *incx); |
| } |
|
|
| void CUBLAS_CTBSV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const int* k, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cublasCtbsv(uplo[0], trans[0], diag[0], *n, *k, A, *lda, x, *incx); |
| } |
|
|
| void CUBLAS_ZTBSV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const int* k, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cublasZtbsv(uplo[0], trans[0], diag[0], *n, *k, A, *lda, x, *incx); |
| } |
|
|
| void CUBLAS_STPMV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const devptr_t* devPtrAP, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| float* AP = (float*)(*devPtrAP); |
| float* x = (float*)(*devPtrx); |
| cublasStpmv(uplo[0], trans[0], diag[0], *n, AP, x, *incx); |
| } |
|
|
| void CUBLAS_DTPMV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const devptr_t* devPtrAP, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| double* AP = (double*)(*devPtrAP); |
| double* x = (double*)(*devPtrx); |
| cublasDtpmv(uplo[0], trans[0], diag[0], *n, AP, x, *incx); |
| } |
|
|
| void CUBLAS_CTPMV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const devptr_t* devPtrAP, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| cuComplex* AP = (cuComplex*)(*devPtrAP); |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cublasCtpmv(uplo[0], trans[0], diag[0], *n, AP, x, *incx); |
| } |
|
|
| void CUBLAS_ZTPMV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const devptr_t* devPtrAP, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| cuDoubleComplex* AP = (cuDoubleComplex*)(*devPtrAP); |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cublasZtpmv(uplo[0], trans[0], diag[0], *n, AP, x, *incx); |
| } |
|
|
| void CUBLAS_STPSV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const devptr_t* devPtrAP, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| float* AP = (float*)(*devPtrAP); |
| float* x = (float*)(*devPtrx); |
| cublasStpsv(uplo[0], trans[0], diag[0], *n, AP, x, *incx); |
| } |
|
|
| void CUBLAS_DTPSV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const devptr_t* devPtrAP, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| double* AP = (double*)(*devPtrAP); |
| double* x = (double*)(*devPtrx); |
| cublasDtpsv(uplo[0], trans[0], diag[0], *n, AP, x, *incx); |
| } |
|
|
| void CUBLAS_CTPSV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const devptr_t* devPtrAP, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| cuComplex* AP = (cuComplex*)(*devPtrAP); |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cublasCtpsv(uplo[0], trans[0], diag[0], *n, AP, x, *incx); |
| } |
|
|
| void CUBLAS_ZTPSV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const devptr_t* devPtrAP, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| cuDoubleComplex* AP = (cuDoubleComplex*)(*devPtrAP); |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cublasZtpsv(uplo[0], trans[0], diag[0], *n, AP, x, *incx); |
| } |
|
|
| void CUBLAS_STRMV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| float* A = (float*)(*devPtrA); |
| float* x = (float*)(*devPtrx); |
| cublasStrmv(uplo[0], trans[0], diag[0], *n, A, *lda, x, *incx); |
| } |
|
|
| void CUBLAS_DTRMV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| double* A = (double*)(*devPtrA); |
| double* x = (double*)(*devPtrx); |
| cublasDtrmv(uplo[0], trans[0], diag[0], *n, A, *lda, x, *incx); |
| } |
|
|
| void CUBLAS_STRSV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| float* A = (float*)(*devPtrA); |
| float* x = (float*)(*devPtrx); |
| cublasStrsv(uplo[0], trans[0], diag[0], *n, A, *lda, x, *incx); |
| } |
|
|
| void CUBLAS_DGEMV(const char* trans, |
| const int* m, |
| const int* n, |
| const double* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const double* beta, |
| const devptr_t* devPtry, |
| const int* incy) { |
| double* A = (double*)(*devPtrA); |
| double* x = (double*)(*devPtrx); |
| double* y = (double*)(*devPtry); |
| cublasDgemv(trans[0], *m, *n, *alpha, A, *lda, x, *incx, *beta, y, *incy); |
| } |
| void CUBLAS_CGEMV(const char* trans, |
| const int* m, |
| const int* n, |
| const cuComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const cuComplex* beta, |
| devptr_t* devPtry, |
| const int* incy) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cuComplex* y = (cuComplex*)(*devPtry); |
| cublasCgemv(trans[0], *m, *n, *alpha, A, *lda, x, *incx, *beta, y, *incy); |
| } |
|
|
| void CUBLAS_ZGEMV(const char* trans, |
| const int* m, |
| const int* n, |
| const cuDoubleComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const cuDoubleComplex* beta, |
| devptr_t* devPtry, |
| const int* incy) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cuDoubleComplex* y = (cuDoubleComplex*)(*devPtry); |
| cublasZgemv(trans[0], *m, *n, *alpha, A, *lda, x, *incx, *beta, y, *incy); |
| } |
| void CUBLAS_DGER(const int* m, |
| const int* n, |
| const double* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const devptr_t* devPtrA, |
| const int* lda) { |
| double* A = (double*)(*devPtrA); |
| double* x = (double*)(*devPtrx); |
| double* y = (double*)(*devPtry); |
| cublasDger(*m, *n, *alpha, x, *incx, y, *incy, A, *lda); |
| } |
|
|
| void CUBLAS_DSYR(const char* uplo, |
| const int* n, |
| const double* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtrA, |
| const int* lda) { |
| double* A = (double*)(*devPtrA); |
| double* x = (double*)(*devPtrx); |
| cublasDsyr(uplo[0], *n, *alpha, x, *incx, A, *lda); |
| } |
|
|
| void CUBLAS_CHER(const char* uplo, |
| const int* n, |
| const float* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtrA, |
| const int* lda) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cublasCher(uplo[0], *n, *alpha, x, *incx, A, *lda); |
| } |
|
|
| void CUBLAS_ZHER(const char* uplo, |
| const int* n, |
| const double* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtrA, |
| const int* lda) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cublasZher(uplo[0], *n, *alpha, x, *incx, A, *lda); |
| } |
|
|
| void CUBLAS_DTRSV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| double* A = (double*)(*devPtrA); |
| double* x = (double*)(*devPtrx); |
| cublasDtrsv(uplo[0], trans[0], diag[0], *n, A, *lda, x, *incx); |
| } |
|
|
| void CUBLAS_CTRSV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cublasCtrsv(uplo[0], trans[0], diag[0], *n, A, *lda, x, *incx); |
| } |
|
|
| void CUBLAS_ZTRSV(const char* uplo, |
| const char* trans, |
| const char* diag, |
| const int* n, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrx, |
| const int* incx) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cublasZtrsv(uplo[0], trans[0], diag[0], *n, A, *lda, x, *incx); |
| } |
|
|
| void CUBLAS_CGERU(const int* m, |
| const int* n, |
| const cuComplex* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const devptr_t* devPtrA, |
| const int* lda) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cuComplex* y = (cuComplex*)(*devPtry); |
| cublasCgeru(*m, *n, *alpha, x, *incx, y, *incy, A, *lda); |
| } |
|
|
| void CUBLAS_CGERC(const int* m, |
| const int* n, |
| const cuComplex* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const devptr_t* devPtrA, |
| const int* lda) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* x = (cuComplex*)(*devPtrx); |
| cuComplex* y = (cuComplex*)(*devPtry); |
| cublasCgerc(*m, *n, *alpha, x, *incx, y, *incy, A, *lda); |
| } |
|
|
| void CUBLAS_ZGERU(const int* m, |
| const int* n, |
| const cuDoubleComplex* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const devptr_t* devPtrA, |
| const int* lda) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cuDoubleComplex* y = (cuDoubleComplex*)(*devPtry); |
| cublasZgeru(*m, *n, *alpha, x, *incx, y, *incy, A, *lda); |
| } |
|
|
| void CUBLAS_ZGERC(const int* m, |
| const int* n, |
| const cuDoubleComplex* alpha, |
| const devptr_t* devPtrx, |
| const int* incx, |
| const devptr_t* devPtry, |
| const int* incy, |
| const devptr_t* devPtrA, |
| const int* lda) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* x = (cuDoubleComplex*)(*devPtrx); |
| cuDoubleComplex* y = (cuDoubleComplex*)(*devPtry); |
| cublasZgerc(*m, *n, *alpha, x, *incx, y, *incy, A, *lda); |
| } |
| |
| |
| |
|
|
| void CUBLAS_SGEMM(const char* transa, |
| const char* transb, |
| const int* m, |
| const int* n, |
| const int* k, |
| const float* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb, |
| const float* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| float* A = (float*)(*devPtrA); |
| float* B = (float*)(*devPtrB); |
| float* C = (float*)(*devPtrC); |
| cublasSgemm(transa[0], transb[0], *m, *n, *k, *alpha, A, *lda, B, *ldb, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_SSYMM(const char* side, |
| const char* uplo, |
| const int* m, |
| const int* n, |
| const float* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb, |
| const float* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| float* A = (float*)(*devPtrA); |
| float* B = (float*)(*devPtrB); |
| float* C = (float*)(*devPtrC); |
| cublasSsymm(*side, *uplo, *m, *n, *alpha, A, *lda, B, *ldb, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_SSYR2K(const char* uplo, |
| const char* trans, |
| const int* n, |
| const int* k, |
| const float* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb, |
| const float* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| float* A = (float*)(*devPtrA); |
| float* B = (float*)(*devPtrB); |
| float* C = (float*)(*devPtrC); |
| cublasSsyr2k(*uplo, *trans, *n, *k, *alpha, A, *lda, B, *ldb, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_SSYRK(const char* uplo, |
| const char* trans, |
| const int* n, |
| const int* k, |
| const float* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const float* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| float* A = (float*)(*devPtrA); |
| float* C = (float*)(*devPtrC); |
| cublasSsyrk(*uplo, *trans, *n, *k, *alpha, A, *lda, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_STRMM(const char* side, |
| const char* uplo, |
| const char* transa, |
| const char* diag, |
| const int* m, |
| const int* n, |
| const float* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb) { |
| float* A = (float*)(*devPtrA); |
| float* B = (float*)(*devPtrB); |
| cublasStrmm(*side, *uplo, *transa, *diag, *m, *n, *alpha, A, *lda, B, *ldb); |
| } |
|
|
| void CUBLAS_STRSM(const char* side, |
| const char* uplo, |
| const char* transa, |
| const char* diag, |
| const int* m, |
| const int* n, |
| const float* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb) { |
| float* A = (float*)*devPtrA; |
| float* B = (float*)*devPtrB; |
| cublasStrsm(side[0], uplo[0], transa[0], diag[0], *m, *n, *alpha, A, *lda, B, *ldb); |
| } |
|
|
| void CUBLAS_CGEMM(const char* transa, |
| const char* transb, |
| const int* m, |
| const int* n, |
| const int* k, |
| const cuComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb, |
| const cuComplex* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| cuComplex* A = (cuComplex*)*devPtrA; |
| cuComplex* B = (cuComplex*)*devPtrB; |
| cuComplex* C = (cuComplex*)*devPtrC; |
| cublasCgemm(transa[0], transb[0], *m, *n, *k, *alpha, A, *lda, B, *ldb, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_CSYMM(const char* side, |
| const char* uplo, |
| const int* m, |
| const int* n, |
| const cuComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb, |
| const cuComplex* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* B = (cuComplex*)(*devPtrB); |
| cuComplex* C = (cuComplex*)(*devPtrC); |
| cublasCsymm(*side, *uplo, *m, *n, *alpha, A, *lda, B, *ldb, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_CHEMM(const char* side, |
| const char* uplo, |
| const int* m, |
| const int* n, |
| const cuComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb, |
| const cuComplex* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* B = (cuComplex*)(*devPtrB); |
| cuComplex* C = (cuComplex*)(*devPtrC); |
| cublasChemm(*side, *uplo, *m, *n, *alpha, A, *lda, B, *ldb, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_CTRMM(const char* side, |
| const char* uplo, |
| const char* transa, |
| const char* diag, |
| const int* m, |
| const int* n, |
| const cuComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* B = (cuComplex*)(*devPtrB); |
| cublasCtrmm(*side, *uplo, *transa, *diag, *m, *n, *alpha, A, *lda, B, *ldb); |
| } |
|
|
| void CUBLAS_CTRSM(const char* side, |
| const char* uplo, |
| const char* transa, |
| const char* diag, |
| const int* m, |
| const int* n, |
| const cuComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb) { |
| cuComplex* A = (cuComplex*)*devPtrA; |
| cuComplex* B = (cuComplex*)*devPtrB; |
| cublasCtrsm(side[0], uplo[0], transa[0], diag[0], *m, *n, *alpha, A, *lda, B, *ldb); |
| } |
|
|
| void CUBLAS_CSYRK(const char* uplo, |
| const char* trans, |
| const int* n, |
| const int* k, |
| const cuComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const cuComplex* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* C = (cuComplex*)(*devPtrC); |
| cublasCsyrk(*uplo, *trans, *n, *k, *alpha, A, *lda, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_CSYR2K(const char* uplo, |
| const char* trans, |
| const int* n, |
| const int* k, |
| const cuComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb, |
| const cuComplex* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* B = (cuComplex*)(*devPtrB); |
| cuComplex* C = (cuComplex*)(*devPtrC); |
| cublasCsyr2k(*uplo, *trans, *n, *k, *alpha, A, *lda, B, *ldb, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_CHERK(const char* uplo, |
| const char* trans, |
| const int* n, |
| const int* k, |
| const float* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const float* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* C = (cuComplex*)(*devPtrC); |
| cublasCherk(*uplo, *trans, *n, *k, *alpha, A, *lda, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_CHER2K(const char* uplo, |
| const char* trans, |
| const int* n, |
| const int* k, |
| const cuComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb, |
| const float* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| cuComplex* A = (cuComplex*)(*devPtrA); |
| cuComplex* B = (cuComplex*)(*devPtrB); |
| cuComplex* C = (cuComplex*)(*devPtrC); |
| cublasCher2k(*uplo, *trans, *n, *k, *alpha, A, *lda, B, *ldb, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_DGEMM(const char* transa, |
| const char* transb, |
| const int* m, |
| const int* n, |
| const int* k, |
| const double* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb, |
| const double* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| double* A = (double*)(*devPtrA); |
| double* B = (double*)(*devPtrB); |
| double* C = (double*)(*devPtrC); |
| cublasDgemm(transa[0], transb[0], *m, *n, *k, *alpha, A, *lda, B, *ldb, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_DSYMM(const char* side, |
| const char* uplo, |
| const int* m, |
| const int* n, |
| const double* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb, |
| const double* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| double* A = (double*)(*devPtrA); |
| double* B = (double*)(*devPtrB); |
| double* C = (double*)(*devPtrC); |
| cublasDsymm(*side, *uplo, *m, *n, *alpha, A, *lda, B, *ldb, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_DSYR2K(const char* uplo, |
| const char* trans, |
| const int* n, |
| const int* k, |
| const double* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb, |
| const double* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| double* A = (double*)(*devPtrA); |
| double* B = (double*)(*devPtrB); |
| double* C = (double*)(*devPtrC); |
| cublasDsyr2k(*uplo, *trans, *n, *k, *alpha, A, *lda, B, *ldb, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_DSYRK(const char* uplo, |
| const char* trans, |
| const int* n, |
| const int* k, |
| const double* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const double* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| double* A = (double*)(*devPtrA); |
| double* C = (double*)(*devPtrC); |
| cublasDsyrk(*uplo, *trans, *n, *k, *alpha, A, *lda, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_ZSYRK(const char* uplo, |
| const char* trans, |
| const int* n, |
| const int* k, |
| const cuDoubleComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const cuDoubleComplex* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* C = (cuDoubleComplex*)(*devPtrC); |
| cublasZsyrk(*uplo, *trans, *n, *k, *alpha, A, *lda, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_ZSYR2K(const char* uplo, |
| const char* trans, |
| const int* n, |
| const int* k, |
| const cuDoubleComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb, |
| const cuDoubleComplex* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* B = (cuDoubleComplex*)(*devPtrB); |
| cuDoubleComplex* C = (cuDoubleComplex*)(*devPtrC); |
| cublasZsyr2k(*uplo, *trans, *n, *k, *alpha, A, *lda, B, *ldb, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_DTRMM(const char* side, |
| const char* uplo, |
| const char* transa, |
| const char* diag, |
| const int* m, |
| const int* n, |
| const double* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb) { |
| double* A = (double*)(*devPtrA); |
| double* B = (double*)(*devPtrB); |
| cublasDtrmm(*side, *uplo, *transa, *diag, *m, *n, *alpha, A, *lda, B, *ldb); |
| } |
|
|
| void CUBLAS_ZTRMM(const char* side, |
| const char* uplo, |
| const char* transa, |
| const char* diag, |
| const int* m, |
| const int* n, |
| const cuDoubleComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* B = (cuDoubleComplex*)(*devPtrB); |
| cublasZtrmm(*side, *uplo, *transa, *diag, *m, *n, *alpha, A, *lda, B, *ldb); |
| } |
|
|
| void CUBLAS_DTRSM(const char* side, |
| const char* uplo, |
| const char* transa, |
| const char* diag, |
| const int* m, |
| const int* n, |
| const double* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb) { |
| double* A = (double*)*devPtrA; |
| double* B = (double*)*devPtrB; |
| cublasDtrsm(side[0], uplo[0], transa[0], diag[0], *m, *n, *alpha, A, *lda, B, *ldb); |
| } |
|
|
| void CUBLAS_ZTRSM(const char* side, |
| const char* uplo, |
| const char* transa, |
| const char* diag, |
| const int* m, |
| const int* n, |
| const cuDoubleComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb) { |
| cuDoubleComplex* A = (cuDoubleComplex*)*devPtrA; |
| cuDoubleComplex* B = (cuDoubleComplex*)*devPtrB; |
| cublasZtrsm(side[0], uplo[0], transa[0], diag[0], *m, *n, *alpha, A, *lda, B, *ldb); |
| } |
|
|
| void CUBLAS_ZGEMM(const char* transa, |
| const char* transb, |
| const int* m, |
| const int* n, |
| const int* k, |
| const cuDoubleComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb, |
| const cuDoubleComplex* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| cuDoubleComplex* A = (cuDoubleComplex*)*devPtrA; |
| cuDoubleComplex* B = (cuDoubleComplex*)*devPtrB; |
| cuDoubleComplex* C = (cuDoubleComplex*)*devPtrC; |
| cublasZgemm(transa[0], transb[0], *m, *n, *k, *alpha, A, *lda, B, *ldb, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_ZHERK(const char* uplo, |
| const char* trans, |
| const int* n, |
| const int* k, |
| const double* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const double* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* C = (cuDoubleComplex*)(*devPtrC); |
| cublasZherk(*uplo, *trans, *n, *k, *alpha, A, *lda, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_ZHER2K(const char* uplo, |
| const char* trans, |
| const int* n, |
| const int* k, |
| const cuDoubleComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb, |
| const double* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* B = (cuDoubleComplex*)(*devPtrB); |
| cuDoubleComplex* C = (cuDoubleComplex*)(*devPtrC); |
| cublasZher2k(*uplo, *trans, *n, *k, *alpha, A, *lda, B, *ldb, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_ZSYMM(const char* side, |
| const char* uplo, |
| const int* m, |
| const int* n, |
| const cuDoubleComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb, |
| const cuDoubleComplex* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* B = (cuDoubleComplex*)(*devPtrB); |
| cuDoubleComplex* C = (cuDoubleComplex*)(*devPtrC); |
| cublasZsymm(*side, *uplo, *m, *n, *alpha, A, *lda, B, *ldb, *beta, C, *ldc); |
| } |
|
|
| void CUBLAS_ZHEMM(const char* side, |
| const char* uplo, |
| const int* m, |
| const int* n, |
| const cuDoubleComplex* alpha, |
| const devptr_t* devPtrA, |
| const int* lda, |
| const devptr_t* devPtrB, |
| const int* ldb, |
| const cuDoubleComplex* beta, |
| const devptr_t* devPtrC, |
| const int* ldc) { |
| cuDoubleComplex* A = (cuDoubleComplex*)(*devPtrA); |
| cuDoubleComplex* B = (cuDoubleComplex*)(*devPtrB); |
| cuDoubleComplex* C = (cuDoubleComplex*)(*devPtrC); |
| cublasZhemm(*side, *uplo, *m, *n, *alpha, A, *lda, B, *ldb, *beta, C, *ldc); |
| } |
|
|