Julia bindings to the FFTW library for fast Fourier transforms
Clone or download
stevengj store prefs in depot_path/prefs (#81)
* store prefs in depot_path/prefs

As a stopgap until we get proper package options (JuliaLang/Juleps#38), store JULIA_FFTW_PROVIDER preference in depot_path/prefs/FFTW so that it isn't forgotten when FFTW.jl is updated. See also JuliaPy/PyCall.jl#589

* whoops, forgot mkpath
Latest commit 20bd7b2 Oct 12, 2018



This package provides Julia bindings to the FFTW library for fast Fourier transforms (FFTs), as well as functionality useful for signal processing. These functions were formerly a part of Base Julia.

Alternatively, the FFTs in Intel's Math Kernel Library (MKL) can be used by setting an environment variable JULIA_FFTW_PROVIDER to MKL and running Pkg.build("FFTW"). If Julia was built with MKL, then Julia's MKL will be used for FFTs; otherwise the Conda.jl package will be used to download MKL via the mkl_fft Anaconda package. Setting this environment variable only needs to be done for the first build of the package; after that, the package will remember to use MKL when building and updating. Note however that MKL provides only a subset of the functionality provided by FFTW. See Intel's documentation for more information about potential differences or gaps in functionality.

The FFTW library will be downloaded on versions of Julia where it is no longer distributed as part of Julia. Note that FFTW is licensed under GPLv2 or higher (see its license file), but the bindings to the library in this package, FFTW.jl, are licensed under MIT. This means that code using the FFTW library via the FFTW.jl bindings is subject to FFTW's licensing terms. Code using alternative implementations of the FFTW API, such as MKL's FFTW3 interface are instead subject to the alternative's license. If you distribute a derived or combined work, i.e. a program that links to and is distributed with the FFTW library, then that distribution falls under the terms of the GPL. If you just distribute source code that links to FFTW.jl, and users have to download FFTW or MKL to provide the backend, then the GPL probably doesn't have much effect on you.

Travis AppVeyor Coveralls