next up previous
Next: Window functions Up: NFFT Previous: The case

The algorithm

In summary, the following Algorithm 1 is obtained for the fast computation of (2.2) with $ {\cal O} \left(n_{\text{\tiny $\Pi$}} \log n_{\text{\tiny $\Pi$}} + m M\right)$ arithmetic operations.
\begin{algorithm}
% latex2html id marker 529
[ht]
\caption{\tt NFFT
}
Input:...
...gorithmic}
Output: approximate values $f_j,\;j=0,\hdots,M-1$.
\end{algorithm}

Algorithm 1 reads in matrix vector notation as

$\displaystyle \mbox{\boldmath {${A}$}}$   $\displaystyle \mbox{\boldmath {${\hat f}$}}$$\displaystyle \approx$   $\displaystyle \mbox{\boldmath {${B}$}}$   $\displaystyle \mbox{\boldmath {${F}$}}$   $\displaystyle \mbox{\boldmath {${D}$}}$   $\displaystyle \mbox{\boldmath {${\hat f}$}}$$\displaystyle ,$    

where $ {B}$ denotes the real $ M \times n_{\text{\tiny $\Pi$}}$ sparse matrix

$\displaystyle \mbox{\boldmath {${B}$}}$$\displaystyle := \left( \tilde\psi\left(\mbox{\boldmath {${x}$}}_j - \mbox{\bol...
...1;\, \mbox{\boldmath\scriptsize {${l}$}}\in I_{\mbox{\boldmath\tiny {${n}$}}}},$ (2.12)

where $ {F}$ is the Fourier matrix of size $ n_{\text{\tiny $\Pi$}} \times n_{\text{\tiny $\Pi$}}$, and where $ {D}$ is the real $ n_{\text{\tiny $\Pi$}} \times N_{\text{\tiny $\Pi$}}$ 'diagonal' matrix

$\displaystyle \mbox{\boldmath {${D}$}}$$\displaystyle := \bigotimes_{t=0}^{d-1} \left(\mbox{\boldmath {${O}$}}_t \, \ve...
...ight)_{k_t\in I_{N_t}} \, \vert \, \mbox{\boldmath {${O}$}}_t \right)^{\rm {T}}$    

with zero matrices $ {O}$$ _t$ of size $ N_t \times \frac{n_t-N_t}{2}$.

The corresponding computation of the adjoint matrix vector product reads as

$\displaystyle \mbox{\boldmath {${A}$}}$$\displaystyle ^{\rm H}$   $\displaystyle \mbox{\boldmath {${\hat f}$}}$$\displaystyle \approx$   $\displaystyle \mbox{\boldmath {${D}$}}$$\displaystyle ^{\rm T}$   $\displaystyle \mbox{\boldmath {${F}$}}$$\displaystyle ^{\rm H}$   $\displaystyle \mbox{\boldmath {${B}$}}$$\displaystyle ^{\rm T}$   $\displaystyle \mbox{\boldmath {${\hat f}$}}$$\displaystyle \, .$    

With the help of the transposed index set

$\displaystyle I_{\mbox{\boldmath\scriptsize {${n}$}},m}^{\rm T}\left(\mbox{\bol...
...ath {${x}$}}_j \le \mbox{\boldmath {${l}$}}+m \mbox{\boldmath {${1}$}}\right\},$    

one obtains Algorithm 2 for the adjoint nfft.
\begin{algorithm}
% latex2html id marker 596
[htbp]
\caption{\tt NFFT$^{\rm H}...
...boldmath {${k}$}} \in I_{\mbox{\boldmath\scriptsize {${N}$}}}$.
\end{algorithm}
Due to the characterisation of the non zero elements of the matrix $ {B}$, i.e.,

$\displaystyle \bigcup\limits_{j=0}^{M-1} j \times I_{\mbox{\boldmath\scriptsize...
...}^{\rm T}\left(\mbox{\boldmath {${l}$}}\right) \times \mbox{\boldmath {${l}$}}.$    

the multiplication with the sparse matrix $ {B}$$ ^{\rm T}$ is implemented in a 'transposed' way in the library, summation as outer loop and only using the multi index sets $ I_{\mbox{\boldmath\scriptsize {${n}$}},m} \left({\mbox{\boldmath {${x}$}}}_j\right)$.


next up previous
Next: Window functions Up: NFFT Previous: The case
Stefan Kunis 2004-09-03