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