Visible to Intel only — GUID: GUID-2E413992-3DB0-4AB1-9BAD-DD8D5195FB81
Visible to Intel only — GUID: GUID-2E413992-3DB0-4AB1-9BAD-DD8D5195FB81
Creating the Wrapper Library
Two header files are used to compile the C wrapper library: fftw2_mkl.h and fftw.h. The fftw2_mkl.h file is located in the .\share\mkl\interfaces\fftw2xc\wrappers subdirectory within the Intel® oneAPI Math Kernel Library (oneMKL) directory.
The file fftw.h, used to compile libraries and located in the .\include\fftw subdirectory within the Intel® oneAPI Math Kernel Library (oneMKL) directory, slightly differs from the original FFTW (www.fftw.org) header filefftw.h.
The source code for the wrappers, makefiles, and files with lists of functions are located in the .\share\mkl\interfaces\fftw2xc subdirectory within the Intel® oneAPI Math Kernel Library (oneMKL) directory.
A wrapper library contains wrappers for complex and real transforms in a serial and multi-threaded mode for double- or single-precision floating-point data types. A makefile parameter manages the data type.
Parameters of a makefile also specify the platform (required), compiler, and data precision. The makefile comment heading provides the exact description of these parameters.
To build the library, run the make command on Linux* OS or the nmake command on Windows* OS with appropriate parameters.
For example, on Linux OS the command
make libintel64
builds a double-precision wrapper library for Intel® 64 architecture based applications using the Intel® oneAPI DPC++/C++ Compiler or the Intel® Fortran Compiler (Compilers and data precision are chosen by default.)
The makefile creates the library in the lib subdirectory of the Intel® oneAPI Math Kernel Library (oneMKL) directory.
In the names of a wrapper library, the suffix corresponds to the compiler used and the letter preceding the underscore is "c" for the C programming language.
For example,
fftw2xc_double_intel.lib (on Windows OS); libfftw2xc_double_intel.a (on Linux OS);
fftw2xc_single_msvs.lib (on Windows OS); libfftw2xc_single_gnu.a (on Linux OS).