xref: /petsc/src/mat/impls/baij/seq/baijmkl/baijmkl.h (revision d2522c19e8fa9bca20aaca277941d9a63e71db6a)
1 #define MKL_Complex16 PetscScalar
2 #define MKL_Complex8  PetscScalar
3 #define PetscCallMKL(stat) \
4   do { \
5     if (stat != SPARSE_STATUS_SUCCESS) { PetscFunctionReturn(PETSC_ERR_LIB); } \
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