Crate fftw3[stability] [-]  [+] [src]

High-level bindings to FFTW3: Fastest Fourier Transform in the West.

At the moment, this only provides one-dimensional complex-to-complex transforms via c2c_1d, with no explicit plan reuse.

There are some modules that provide helpers to make using the low-level interface manually slightly nicer and safer, in particular the lock module assists with keeping the use of FFTW3 threadsafe, and the plan module gives a nicer interface to creating and using plans.

Licensing

The FFTW3 library is licensed under GPLv2 (or later) with non-free/commercial licenses available from MIT via the FFTW website. On the other hand, these bindings are dual-licensed MIT/Apache-2.0, however, any application using FFTW3 via these bindings must still be distributed under the terms of the GPL (unless a non-free license has been arranged). The explicit difference in licenses is to enable code-reuse between these bindings and bindings to other FFT libraries.

Modules

lock

Some functions in FFTW are not thread-safe, and one should ensure that only one thread is executing these at a time. This module provides a lock for this purpose.

plan

Helpers for managing plans.

Enums

FftError

Errors that can occur while planning or running a fourier transform.

Functions

c2c_1d

Perform a complex-to-complex one-dimensional Fourier transform of in_, writing to out.