Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

Creating the Wrapper Library

Three header files are used to compile the Fortran wrapper library:
fftw2_mkl.h
,
fftw2_f77_mkl.h
, and
fftw.h
. The
fftw2_mkl.h
and
fftw2_f77_mkl.h
files are located in the
.\interfaces\fftw2xf\wrappers
subdirectory in the
Intel® MKL
directory.
The file
fftw.h
, used to compile libraries and located in the
.\include\fftw
subdirectory in the
Intel® MKL
directory, slightly differs from the original FFTW (www.fftw.org) header file
fftw.h
.
The source code for the wrappers, makefiles, and files with lists of functions are located in the
.\interfaces\fftw2xf
subdirectory in the
Intel® MKL
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.
Because a C compiler builds the Fortran wrapper library, function names in the wrapper library and Fortran object module may be different. The file
fftw2_f77_mkl.h
in the
.\interfaces\fftw2xf\source
subdirectory in the
Intel® MKL
directory defines function names according to the names in the Fortran module. If a required name is missing in the file, you can modify the file to add the name before building the library.
To build the library, run the
make
command on Linux* OS and macOS* 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® C++ Compiler or the Intel® Fortran Compiler (Compilers and data precision are chosen by default.)
Each makefile creates the library in the directory with
Intel® MKL
libraries corresponding to the platform used. For example,
./lib/ia32
(on Linux OS and macOS) or
.\lib\ia32
(on Windows* OS).
In the names of a wrapper library, the suffix corresponds to the compiler used and the letter preceding the underscore is
"f"
for the Fortran
programming language.
For example,
fftw2xf_intel.lib
(on Windows OS);
libfftw2xf_intel.a
(on Linux OS and macOS);

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804