1 /* 2 Wrappers for mkl_cspblas_ routines. 3 A more elegant way to do this would be to use an approach like that used in petsclbaslapack_mangle.h, 4 but since the MKL sparse BLAS routines are not going to be as widely used, and because 5 we don't have to worry about Fortran name mangling, this seems OK for now. 6 */ 7 8 #if !defined(PETSC_USE_COMPLEX) 9 # if defined(PETSC_USE_REAL_SINGLE) 10 # define mkl_cspblas_xcsrgemv(transa,m,a,ia,ja,x,y) mkl_cspblas_scsrgemv(transa,m,a,ia,ja,x,y) 11 # elif defined(PETSC_USE_REAL_DOUBLE) 12 # define mkl_cspblas_xcsrgemv(transa,m,a,ia,ja,x,y) mkl_cspblas_dcsrgemv(transa,m,a,ia,ja,x,y) 13 # endif 14 #else 15 # if defined(PETSC_USE_REAL_SINGLE) 16 # define mkl_cspblas_xcsrgemv(transa,m,a,ia,ja,x,y) mkl_cspblas_ccsrgemv(transa,m,a,ia,ja,x,y) 17 # elif defined(PETSC_USE_REAL_DOUBLE) 18 # define mkl_cspblas_xcsrgemv(transa,m,a,ia,ja,x,y) mkl_cspblas_zcsrgemv(transa,m,a,ia,ja,x,y) 19 # endif 20 #endif 21