C Datatypes Specific to Intel MKL

The mkl_types.h file defines datatypes specific to Intel MKL.

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 MKL. One reason to do this is if you have your own types which are binary-compatible with Intel MKL datatypes, with the same representation or memory layout. To redefine a datatype, use one of these methods:

Note iconNote

As the user, if you redefine Intel MKL datatypes you are responsible for making sure that your definition is compatible with that of Intel MKL. If not, it might cause unpredictable results or crash the application.