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