Intel® oneAPI Math Kernel Library Developer Reference - C

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:

Note

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.