Visible to Intel only — GUID: GUID-87C37CDA-0447-464D-BA74-329057CB05C4
Visible to Intel only — GUID: GUID-87C37CDA-0447-464D-BA74-329057CB05C4
C Datatypes Specific to Intel MKL
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:
- Insert the #define statement redefining the datatype before the mkl.h header file #include statement. For example,
#define MKL_INT size_t #include "mkl.h"
- Use the compiler -D option to redefine the datatype. For example,
...-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.