xref: /petsc/src/mat/impls/baij/seq/baijmkl/baijmkl.h (revision 7efe37a1cedd385a2f501b843d47cdf14dfb49ea)
1 #define MKL_Complex16 PetscScalar
2 #define MKL_Complex8  PetscScalar
3 #define PetscCallMKL(stat) \
4   do { \
5     PetscCheck(stat == SPARSE_STATUS_SUCCESS, PETSC_COMM_SELF, PETSC_ERR_LIB, "Error in MKL sparse matrix call"); \
6   } while (0)
7 #if !defined(PETSC_USE_COMPLEX)
8   #if defined(PETSC_USE_REAL_SINGLE)
9     #define mkl_sparse_x_create_bsr(A, indexing, block_layout, rows, cols, block_size, rows_start, rows_end, col_indx, values) mkl_sparse_s_create_bsr(A, indexing, block_layout, rows, cols, block_size, rows_start, rows_end, col_indx, values)
10   #elif defined(PETSC_USE_REAL_DOUBLE)
11     #define mkl_sparse_x_create_bsr(A, indexing, block_layout, rows, cols, block_size, rows_start, rows_end, col_indx, values) mkl_sparse_d_create_bsr(A, indexing, block_layout, rows, cols, block_size, rows_start, rows_end, col_indx, values)
12   #endif
13 #else
14   #if defined(PETSC_USE_REAL_SINGLE)
15     #define mkl_sparse_x_create_bsr(A, indexing, block_layout, rows, cols, block_size, rows_start, rows_end, col_indx, values) mkl_sparse_c_create_bsr(A, indexing, block_layout, rows, cols, block_size, rows_start, rows_end, col_indx, values)
16   #elif defined(PETSC_USE_REAL_DOUBLE)
17     #define mkl_sparse_x_create_bsr(A, indexing, block_layout, rows, cols, block_size, rows_start, rows_end, col_indx, values) mkl_sparse_z_create_bsr(A, indexing, block_layout, rows, cols, block_size, rows_start, rows_end, col_indx, values)
18   #endif
19 #endif
20 
21 #if !defined(PETSC_USE_COMPLEX)
22   #if defined(PETSC_USE_REAL_SINGLE)
23     #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_s_mv(operation, alpha, A, descr, x, beta, y)
24   #elif defined(PETSC_USE_REAL_DOUBLE)
25     #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_d_mv(operation, alpha, A, descr, x, beta, y)
26   #endif
27 #else
28   #if defined(PETSC_USE_REAL_SINGLE)
29     #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_c_mv(operation, alpha, A, descr, x, beta, y)
30   #elif defined(PETSC_USE_REAL_DOUBLE)
31     #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_z_mv(operation, alpha, A, descr, x, beta, y)
32   #endif
33 #endif
34