- Notifications
You must be signed in to change notification settings - Fork55
Julia bindings to the FFTW library for fast Fourier transforms
License
JuliaMath/FFTW.jl
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This package provides Julia bindings to theFFTW library forfast Fourier transforms (FFTs), as well as functionality useful for signal processing.These functions were formerly a part of Base Julia.
]add FFTWusing FFTWfft([0;1;2;1])
returns
4-element Array{Complex{Float64},1}: 4.0 + 0.0im -2.0 + 0.0im 0.0 + 0.0im -2.0 + 0.0im
The documentation of generic FFT functionality can be found in theAbstractFFTs.jl package. Additional functionalities supported by the FFTW library are documented in the present package.
Alternatively, the FFTs in Intel's Math Kernel Library (MKL) can be usedby runningFFTW.set_provider!("mkl")
. MKL will be provided throughMKL_jll
.This change of provider is persistent and has to be done only once, i.e., the package will use MKL when building and updating.Note however that MKL provides only a subset of the functionality provided by FFTW. SeeIntel'sdocumentationfor more information about potential differences or gaps in functionality.In case MKL does not fit the needs (anymore),FFTW.set_provider!("fftw")
allows to revert the change of provider.
The FFTW library will be downloaded on versions of Julia where it is no longer distributedas part of Julia.Note that FFTW is licensed under GPLv2 or higher (seeits license file), but the bindingsto 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'slicensing terms.Code using alternative implementations of the FFTW API, such asMKL's FFTW3 interfaceare instead subject to the alternative's license.If you distribute a derived or combined work, i.e. a program that links to and is distributedwith 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 FFTWor MKL to provide the backend, then the GPL probably doesn't have much effect on you.
About
Julia bindings to the FFTW library for fast Fourier transforms