xref: /petsc/src/mat/impls/baij/seq/baijmkl/baijmkl.h (revision 2d30e087755efd99e28fdfe792ffbeb2ee1ea928)
1 #define MKL_Complex16 PetscScalar
2 #define MKL_Complex8  PetscScalar
3 #define PetscCallMKL(stat) \
4   do { PetscCheck(stat == SPARSE_STATUS_SUCCESS, PETSC_COMM_SELF, PETSC_ERR_LIB, "Error in MKL sparse matrix call"); } while (0)
5 #if !defined(PETSC_USE_COMPLEX)
6 #if defined(PETSC_USE_REAL_SINGLE)
7 #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)
8 #elif defined(PETSC_USE_REAL_DOUBLE)
9 #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)
10 #endif
11 #else
12 #if defined(PETSC_USE_REAL_SINGLE)
13 #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)
14 #elif defined(PETSC_USE_REAL_DOUBLE)
15 #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)
16 #endif
17 #endif
18 
19 #if !defined(PETSC_USE_COMPLEX)
20 #if defined(PETSC_USE_REAL_SINGLE)
21 #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_s_mv(operation, alpha, A, descr, x, beta, y)
22 #elif defined(PETSC_USE_REAL_DOUBLE)
23 #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_d_mv(operation, alpha, A, descr, x, beta, y)
24 #endif
25 #else
26 #if defined(PETSC_USE_REAL_SINGLE)
27 #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_c_mv(operation, alpha, A, descr, x, beta, y)
28 #elif defined(PETSC_USE_REAL_DOUBLE)
29 #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_z_mv(operation, alpha, A, descr, x, beta, y)
30 #endif
31 #endif
32