Actual source code: baijmkl.h

  1: #pragma once

  3: #define MKL_Complex16 PetscScalar
  4: #define MKL_Complex8  PetscScalar
  5: #define PetscCallMKL(stat) \
  6:   do { \
  7:     PetscCheck(stat == SPARSE_STATUS_SUCCESS, PETSC_COMM_SELF, PETSC_ERR_LIB, "Error in MKL sparse matrix call"); \
  8:   } while (0)
  9: #if !defined(PETSC_USE_COMPLEX)
 10:   #if defined(PETSC_USE_REAL_SINGLE)
 11:     #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)
 12:   #elif defined(PETSC_USE_REAL_DOUBLE)
 13:     #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)
 14:   #endif
 15: #else
 16:   #if defined(PETSC_USE_REAL_SINGLE)
 17:     #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)
 18:   #elif defined(PETSC_USE_REAL_DOUBLE)
 19:     #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)
 20:   #endif
 21: #endif

 23: #if !defined(PETSC_USE_COMPLEX)
 24:   #if defined(PETSC_USE_REAL_SINGLE)
 25:     #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_s_mv(operation, alpha, A, descr, x, beta, y)
 26:   #elif defined(PETSC_USE_REAL_DOUBLE)
 27:     #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_d_mv(operation, alpha, A, descr, x, beta, y)
 28:   #endif
 29: #else
 30:   #if defined(PETSC_USE_REAL_SINGLE)
 31:     #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_c_mv(operation, alpha, A, descr, x, beta, y)
 32:   #elif defined(PETSC_USE_REAL_DOUBLE)
 33:     #define mkl_sparse_x_mv(operation, alpha, A, descr, x, beta, y) mkl_sparse_z_mv(operation, alpha, A, descr, x, beta, y)
 34:   #endif
 35: #endif