1*3ea99036SJacob Faibussowitsch #ifndef BAIJMKL_H 2*3ea99036SJacob Faibussowitsch #define BAIJMKL_H 3*3ea99036SJacob Faibussowitsch 47072be85SIrina Sokolova #define MKL_Complex16 PetscScalar 57072be85SIrina Sokolova #define MKL_Complex8 PetscScalar 69371c9d4SSatish Balay #define PetscCallMKL(stat) \ 7d71ae5a4SJacob Faibussowitsch do { \ 8d71ae5a4SJacob Faibussowitsch PetscCheck(stat == SPARSE_STATUS_SUCCESS, PETSC_COMM_SELF, PETSC_ERR_LIB, "Error in MKL sparse matrix call"); \ 9d71ae5a4SJacob Faibussowitsch } while (0) 107072be85SIrina Sokolova #if !defined(PETSC_USE_COMPLEX) 117072be85SIrina Sokolova #if defined(PETSC_USE_REAL_SINGLE) 127072be85SIrina Sokolova #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) 137072be85SIrina Sokolova #elif defined(PETSC_USE_REAL_DOUBLE) 147072be85SIrina Sokolova #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) 157072be85SIrina Sokolova #endif 167072be85SIrina Sokolova #else 177072be85SIrina Sokolova #if defined(PETSC_USE_REAL_SINGLE) 187072be85SIrina Sokolova #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) 197072be85SIrina Sokolova #elif defined(PETSC_USE_REAL_DOUBLE) 207072be85SIrina Sokolova #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) 217072be85SIrina Sokolova #endif 227072be85SIrina Sokolova #endif 237072be85SIrina Sokolova 247072be85SIrina Sokolova #if !defined(PETSC_USE_COMPLEX) 257072be85SIrina Sokolova #if defined(PETSC_USE_REAL_SINGLE) 267072be85SIrina Sokolova #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_s_mv(operation, alpha, A, descr, x, beta, y) 277072be85SIrina Sokolova #elif defined(PETSC_USE_REAL_DOUBLE) 287072be85SIrina Sokolova #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_d_mv(operation, alpha, A, descr, x, beta, y) 297072be85SIrina Sokolova #endif 307072be85SIrina Sokolova #else 317072be85SIrina Sokolova #if defined(PETSC_USE_REAL_SINGLE) 327072be85SIrina Sokolova #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_c_mv(operation, alpha, A, descr, x, beta, y) 337072be85SIrina Sokolova #elif defined(PETSC_USE_REAL_DOUBLE) 347072be85SIrina Sokolova #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_z_mv(operation, alpha, A, descr, x, beta, y) 357072be85SIrina Sokolova #endif 367072be85SIrina Sokolova #endif 37*3ea99036SJacob Faibussowitsch 38*3ea99036SJacob Faibussowitsch #endif 39