cl-fftw ยป API

Core constants (cl-fftw/core package):

+forward+
Designates a forward Fourier transform
+backward+
Designates an inverse Fourier transform

Management of plans. Here and below you can choose cl-fftw/double and/or cl-fftw/single package:

create-fft-plan(dimensions sign)
Create a plan for FFT transform (complex input). Sign is +forward+(-1) for forward transform and +backward(+1) for inverse transform. The plan must be destroyed later with destroy-plan.
create-rfft-plan(dimensions)
Create a plan for the real-input forward FFT transform (RFFT). The plan must be destroyed later with destroy-plan.
create-irfft-plan(dimensions)
Create a plan for the real-input inverse FFT transform (IRFFT). The plan must be destroyed later with destroy-plan.
destroy-plan(plan)
Destroy a FFT/RFFT/IRFFT plan.
with-plan((plan constructor dimensions &optional sign) &body body)
Create an FFT plan with constructor and make sure it is destroyed when control leaves body.

Basic FFT functions:

fft(plan array)
Perform FFT transform. array's and plan's dimensions must be the same.
rfft(plan array)
Perform RFFT transform. array's and plan's dimensions must be the same.
irfft(plan array)
Perform IRFFT transform. array's and plan's dimensions must be compatible.

"Fast" FFT functions (no plan creation required):

%fft(array sign)
Perform FFT transform. This is a version of FFT without previously created plan.
%rfft(array)
Perform RFFT transform. This is a version of RFFT without previously created plan.
%irfft(array dimensions)
Perform IRFFT transform. This is a version of IRFFT without previously created plan. dimensions is a list of dimensions of the result.