NONEQUISPACED FAST FOURIER TRANSFORM

These file implement the algorithms described in

Non-equispaced fast Fourier transforms with applications to tomography

JFAA ....


The algorithm is in nefft.c

The function init_nefft_kb does required precomputations. 
See its description in nefft.c

As described in the paper a nonequispaced fast fourier transform 
constists of three steps

1) resampling to equispaced grid, we call this "gridding"
2) call of a standard fft algorithm
3) apply weights to output array, we call this scaling

steps 1) and 3) are provieded in nefft.c. The functions are called
{ned|ner}gridding and {ned|ner}scaling.
The 2D functions are called {ned|ner}2gridding and {ned|ner}2scaling.

Please note that the algorithms are implemented in a way that a standard 
zero based FFT routines can be used for step 2. 
The scaling and gridding functions already contain the code 
to swap the data according to page 6 of the paper. This is especially
convenient for the 2D algorithms.

To see an example of a 1D implementation check neffttest.cpp

Our implementation uses the fftw library to perform the fft step.
It can be downloaded for free at www.fftw.org

Computation of the Kaiser-Bessel function during the initialisation
reuires evaluation of the Bessel function I0. An implementation of
I0 is provided in bessel.c (taken from netlib), but the source code
can be easily adopted to other libraries (like NAG) as well.



Plese contact fourmon@math.uni-muenster.de for further details.
