package fftw3

  1. Overview
  2. Docs
Binding to the Fast Fourier Transform library FFTW


Dune Dependency





Interface to FFTW, version 3


The FFTW, version 3, with its development files (fftw3.h) must be installed on your system. For example, on Debian or Ubuntu, you need to install the package libfftw3-dev (see the package conf-fftw3 for other distributions — click the “Edit” link).


The easier way to install this library is by using opam:

opam install fftw3

If you cloned this repository, you can use Dune to compile it:

dune build @install

If your fftw3 header files or libraries are not where you C compiler expects to find them and pkg-config does not return the right location either, you need to tell the discover script where to find them by setting the environment variable FFTW3_CFLAGS:

FFTW3_CFLAGS="-I/opt/local/include" LDFLAGS="-L/opt/local/lib"

Of course, replace /opt/local/include (resp. /opt/local/lib) by the actual paths of your header files (resp. library).


Fftw3 contains two submodules differing only by precision Fftw3.D for double precision and Fftw3.S for single precision. Note that the functions of the single precision module will raise Failure if the corresponding FFTW3 library was not discovered by the configure script. See the mli file for more details or consult the documentation online.


Some examples need additional libraries:

If these are not detected by the configure script, the corresponding examples will not be compiled or will have less features.


To report bugs, use the Github issues page.


If you want to participate to the development of Fftw3, make a fork of the project and submit a pull request.


FFtw3 is released under the LGPL with the special exception of the standard library. See the file LICENSE for more details.

Although not required, it will be appreciated if your product mentions it uses these bindings.