Intel® oneAPI Math Kernel Library Developer Reference - C
The mkl_types.hfile defines datatypes specific to Intel® oneAPI Math Kernel Library.
C/C++ Type | Fortran Type | LP32 Equivalent (Size in Bytes) | LP64 Equivalent (Size in Bytes) | ILP64 Equivalent (Size in Bytes) |
---|---|---|---|---|
MKL_INT (MKL integer) |
INTEGER (default INTEGER) |
C/C++: int Fortran: INTEGER*4 (4 bytes) |
C/C++: int Fortran: INTEGER*4 (4 bytes) |
C/C++: long long (or define MKL_ILP64 macros Fortran: INTEGER*8 (8 bytes) |
MKL_UINT (MKL unsigned integer) |
N/A |
C/C++: unsigned int (4 bytes) |
C/C++: unsigned int (4 bytes) |
C/C++: unsigned long long (8 bytes) |
MKL_LONG (MKL long integer) |
N/A |
C/C++: long (4 bytes) |
C/C++: long (Windows: 4 bytes) (Linux, Mac: 8 bytes) |
C/C++: long (8 bytes) |
MKL_Complex8 (Like C99 complex float) |
COMPLEX*8 |
(8 bytes) |
(8 bytes) |
(8 bytes) |
MKL_Complex16 (Like C99 complex double) |
COMPLEX*16 |
(16 bytes) |
(16 bytes) |
(16 bytes) |
You can redefine datatypes specific to Intel® oneAPI Math Kernel Library. One reason to do this is if you have your own types which are binary-compatible with Intel® oneAPI Math Kernel Library datatypes, with the same representation or memory layout. To redefine a datatype, use one of these methods:
#define MKL_INT size_t #include "mkl.h"
...-DMKL_INT=size_t...
As the user, if you redefine Intel® oneAPI Math Kernel Library datatypes you are responsible for making sure that your definition is compatible with that of Intel® oneAPI Math Kernel Library. If not, it might cause unpredictable results or crash the application.