xref: /petsc/src/mat/impls/baij/seq/baijmkl/baijmkl.h (revision 9dd11ecf0918283bb567d8b33a92f53ac4ea7840)
1*a4963045SJacob Faibussowitsch #pragma once
23ea99036SJacob Faibussowitsch 
37072be85SIrina Sokolova #define MKL_Complex16 PetscScalar
47072be85SIrina Sokolova #define MKL_Complex8  PetscScalar
59371c9d4SSatish Balay #define PetscCallMKL(stat) \
6d71ae5a4SJacob Faibussowitsch   do { \
7d71ae5a4SJacob Faibussowitsch     PetscCheck(stat == SPARSE_STATUS_SUCCESS, PETSC_COMM_SELF, PETSC_ERR_LIB, "Error in MKL sparse matrix call"); \
8d71ae5a4SJacob Faibussowitsch   } while (0)
97072be85SIrina Sokolova #if !defined(PETSC_USE_COMPLEX)
107072be85SIrina Sokolova   #if defined(PETSC_USE_REAL_SINGLE)
117072be85SIrina 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)
127072be85SIrina Sokolova   #elif defined(PETSC_USE_REAL_DOUBLE)
137072be85SIrina 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)
147072be85SIrina Sokolova   #endif
157072be85SIrina Sokolova #else
167072be85SIrina Sokolova   #if defined(PETSC_USE_REAL_SINGLE)
177072be85SIrina 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)
187072be85SIrina Sokolova   #elif defined(PETSC_USE_REAL_DOUBLE)
197072be85SIrina 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)
207072be85SIrina Sokolova   #endif
217072be85SIrina Sokolova #endif
227072be85SIrina Sokolova 
237072be85SIrina Sokolova #if !defined(PETSC_USE_COMPLEX)
247072be85SIrina Sokolova   #if defined(PETSC_USE_REAL_SINGLE)
257072be85SIrina Sokolova     #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_s_mv(operation, alpha, A, descr, x, beta, y)
267072be85SIrina Sokolova   #elif defined(PETSC_USE_REAL_DOUBLE)
277072be85SIrina Sokolova     #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_d_mv(operation, alpha, A, descr, x, beta, y)
287072be85SIrina Sokolova   #endif
297072be85SIrina Sokolova #else
307072be85SIrina Sokolova   #if defined(PETSC_USE_REAL_SINGLE)
317072be85SIrina Sokolova     #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_c_mv(operation, alpha, A, descr, x, beta, y)
327072be85SIrina Sokolova   #elif defined(PETSC_USE_REAL_DOUBLE)
337072be85SIrina Sokolova     #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_z_mv(operation, alpha, A, descr, x, beta, y)
347072be85SIrina Sokolova   #endif
357072be85SIrina Sokolova #endif
36