Page
Library
Module
Module type
Parameter
Class
Class type
Source
Fftw3.S
SourceSingle precision FFTW. This is only available if the single precision FFTW3 library was found when this module was compiled (if not, all functions raise Failure
).
Precision of float numbers.
Precision of complex numbers.
Float of the precision of this module. Use this to create precision independent code.
Complex of the precision of this module. Use this to create precision independent code.
FFTW plan.
c2c plan
usual discrete Fourier transform, from complex to complex
r2c plan
real to complex transform
c2r plan
complex to real transform
r2r plan
real to real transform
Direction of the transform — see the FFTW manual.
type measure =
| Estimate
No measurements are made, use a simple heuristic to pick a (probably sub-optimal) plan quickly.
*)| Measure
Find an optimized plan by actually computing several FFTs and measuring their execution time.
*)| Patient
Like Measure
, but considers a wider range of algorithms and often produces a "more optimal" plan at the expense of several times longer planning time.
| Exhaustive
Like Patient
, but considers an even wider range of algorithms, including many that are thought unlikely to be fast, to produce the most optimal plan but with a substantially increased planning time.
Planning-rigor flags.
type r2r_kind =
| R2HC
real to halfcomplex
*)| HC2R
halfcomplex to real
*)| DHT
discrete Hartley Transform
*)| REDFT00
real-even DFT: even around j=0 and even around j=n-1
*)| REDFT01
real-even DFT: even around j=0 and odd around j=n
*)| REDFT10
real-even DFT: even around j=-0.5 and even around j=n-0.5
*)| REDFT11
real-even DFT: even around j=-0.5 and odd around j=n-0.5
*)| RODFT00
real-odd DFT; odd around j=-1 and odd around j=n
*)| RODFT01
real-odd DFT; odd around j=-1 and even around j=n-1
*)| RODFT10
real-odd DFT; odd around j=-0.5 and odd around j=n-0.5
*)| RODFT11
real-odd DFT; odd around j=-0.5 and even around j=n-0.5
*)Real-to-Real transform kinds. The real-even (resp. real-odd) DFT are somtimes called Discrete Cosine Transform (DCT) (resp. Discrete Sine Transform (DST)). Note that the explanations of the various transforms are for an input array of dimension n
and C layout (i.e. the input array is input[0..n-1]
). The logical size N
is N=2(n-1)
for REDFT00
, N=2(n+1)
for RODFT00
, and N=2n
otherwise. See the FFTW manual for more details.
Exception raised to indicate that a plan could not be created.
exec plan
executes the plan
on the arrays given at the creation of this plan. This is the normal way to execute any kind of plan.
This function is thread safe (and may run the actual computation on a different core than the main program).