Developer Reference

  • 2021.1
  • 12/04/2020
  • Public Content
Contents

C Datatypes Specific to Intel MKL

The
mkl_types.h
file 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.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.