next up previous
Next: NFFT - Data Up: NFFT - Parameter Previous: NFFT - Parameter

Flags

The flags, set in nfft_flags concern memory allocation and precomputations. For the knot vector $ {x}$, the vector of Fourier coefficients $ {\hat f}$, and the vector of samples $ {f}$ memory is allocated iff MALLOC_X, MALLOC_F_HAT, and MALLOC_F are set, respectively.

The flag FFTW_INIT causes the library to initialise the plans for the fft; iff FFT_OUT_OF_PLACE is set, the vectors $ {g}$ and $ {\hat g}$ 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 $ c_{\mbox{\boldmath\scriptsize {${k}$}}}(\tilde \phi)$ in their tensor product form. The flag PRE_PSI causes the allocation of memory for $ \tilde\psi\left({\mbox{\boldmath {${x}$}}}_j - \mbox{\boldmath {${n}$}}^{-1}\odot \mbox{\boldmath {${l}$}}\right)$, used in the 3rd step of Algorithm 1. The routine $ \tt nfft\_precompute\_psi$ has to be called for the actual precomputation. Again, the library uses the tensor product form, which leads to a memory usage of $ d (2m+2)$ doubles per knot, but an arithmetic complexity of $ d (2m+2)^d$ 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 $ (2m+2)^d$ doubles and $ 2 (2m+2)^d$ integers (for indices) per knot, which leads to an arithmetic complexity of $ (2m+2)^d$ per knot. In this case the nfft_full_psi has to be called.


next up previous
Next: NFFT - Data Up: NFFT - Parameter Previous: NFFT - Parameter
Stefan Kunis 2004-09-03