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:

  • 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...

Note

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.

Select sticky button color: 
Orange (only for download buttons)
For more complete information about compiler optimizations, see our Optimization Notice.