The flag FFTW_INIT causes the library to initialise the plans for the fft; iff FFT_OUT_OF_PLACE
is set, the vectors
and
have their own allocated memory, otherwise they share.
Precomputation can be customised by the flags PRE_PHI_HUT, PRE_PSI, and PRE_FULL_PSI;
PRE_PHI_HUT causes the initialisation routine to precompute the values
in their tensor product form.
The flag PRE_PSI causes the allocation of memory for
, used in the 3rd step of Algorithm 1.
The routine
has to be called for the actual precomputation.
Again, the library uses the tensor product form, which leads to a memory usage of
doubles per knot, but
an arithmetic complexity of
per knot; similar to what is called 'fast gridding' in [13],
where the storage requirements are further decreased for the Gaussian window function.
In contrast, if in addition the flag PRE_FULL_PSI is set, the library uses
doubles and
integers (for indices) per knot, which leads to an arithmetic complexity of
per knot.
In this case the nfft_full_psi has to be called.