forked from NFFT/nfft
-
Notifications
You must be signed in to change notification settings - Fork 0
/
doxygen.dox
91 lines (90 loc) · 3.67 KB
/
doxygen.dox
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/*
* Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
/**
* \mainpage notitle
*
* \section introduction Introduction
*
* Fast Fourier transforms (FFTs) belong to the '10 algorithms with the
* greatest influence on the development and practice of science and
* engineering in the 20th century'.
* The classic algorithm computes the discrete Fourier transform
* \f[
* f_j= \sum_{k=-\frac{N}{2}}^{\frac{N}{2}-1} \hat{f}_{k}
* {\rm e}^{-2\pi{\rm i}\frac{kj}{N}}
* \f]
* for \f$j=-\frac{N}{2},\dots,\frac{N}{2}-1\f$ and given complex
* coefficients \f$\hat{f}_{k}\in\mathbb{C}\f$.
* Using a divide and conquer approach, the number of floating point
* operations is reduced from \f${\cal O}(N^2)\f$ for a straightforward
* computation to only \f${\cal O}(N\log N)\f$.
* In conjunction with publicly available efficient implementations the fast
* Fourier transform has become of great importance in scientific computing.
*
* However, two shortcomings of traditional schemes are the need for
* equispaced sampling and the restriction to the system of complex
* exponential functions.
* The NFFT is a C subroutine library for computing the nonequispaced discrete
* Fourier transform (NDFT) and its generalisations in one or more dimensions,
* of arbitrary input size, and of complex data.
*
* More precisely, we collect the possible frequencies
* \f$\mathbf{k}\in\mathbb{Z}^d\f$ in the multi-index set
* \f[
* I_{\mathbf{N}} := \left\{ \mathbf{k}=\left(k_t\right)_{t=0,\dots,d-1}
* \in \mathbb{Z}^d: -
* \frac{N_t}{2} \le k_t < \frac{N_t}{2} ,\;t=0,\dots,d-1\right\},
* \f]
* where \f$\mathbf{N}=\left(N_t\right)_{t=0,\dots,d-1}\f$ is the
* multibandlimit, i.e., \f$N_t\in 2\mathbb{N}\f$.
* For a finite number of given Fourier coefficients
* \f$\hat f_{\mathbf{k}} \in \mathbb{C}\f$,
* \f$\mathbf{k}\in I_{\mathbf{N}}\f$, we consider the
* fast evaluation of the trigonometric polynomial
* \f[
* f\left(\mathbf{x}\right)
* := \sum_{ \mathbf{k}\in I_{ N}} \hat{f}_{\mathbf{ k}}
* {\rm e}^{-2\pi{\rm i}\mathbf{k}\mathbf{ x}}
* \f]
* at given nonequispaced nodes \f$\mathbf{x}_j \in \mathbb{T}^d\f$,
* \f$j=0,\ldots, M-1\f$, from the
* \f$ d\f$-dimensional torus as well as the
* adjoint problem, the fast evaluation of sums of the form
* \f[
* \hat h_{\mathbf{k}} := \sum_{j=0}^{M-1} {f}_{j}
* {\rm e}^{2\pi{\rm i}\mathbf{k}\mathbf{ x}_j}.
* \f]
*
* \subsection generalisations Generalisations
*
* The generalisations of the NFFT include
* - NNFFT - nonequispaced in time and frequency fast Fourier transform,
* - NFCT/NFST - nonequispaced fast (co)sine transform,
* - NSFFT - nonequispaced sparse fast Fourier transform,
* - FPT - fast polynomial transform,
* - NFSFT - nonequispaced fast spherical Fourier transform.
*
* Furthermore, we consider the inversion of the above transforms by
* iterative methods.
*
* \section faq FAQ - Frequently Asked Questions
*
*
* see https://www.tu-chemnitz.de/~potts/nfft/faq.php
*
*/