![]() |
NFFT 3.5.3alpha
|
This module implements fast polynomial transforms. More...
Macros | |
| #define | FPT_NO_FAST_ALGORITHM (1U << 2) |
| If set, TODO complete comment. | |
| #define | FPT_NO_DIRECT_ALGORITHM (1U << 3) |
| If set, TODO complete comment. | |
| #define | FPT_NO_STABILIZATION (1U << 0) |
| If set, no stabilization will be used. | |
| #define | FPT_PERSISTENT_DATA (1U << 4) |
| If set, TODO complete comment. | |
| #define | FPT_FUNCTION_VALUES (1U << 5) |
| If set, the output are function values at Chebyshev nodes rather than Chebyshev coefficients. | |
| #define | FPT_AL_SYMMETRY (1U << 6) |
| If set, TODO complete comment. | |
Functions | |
| fpt_set | fpt_init (const int M, const int t, const unsigned int flags) |
| void | fpt_precompute (fpt_set set, const int m, double *alpha, double *beta, double *gam, int k_start, const double threshold) |
| void | fpt_transposed (fpt_set set, const int m, double _Complex *x, double _Complex *y, const int k_end, const unsigned int flags) |
This module implements fast polynomial transforms.
In the following, we abbreviate the term "fast polynomial transforms" by FPT.
Let 



![\[ P_n(x) = (\alpha_nx+\beta_n) P_{n-1}(x) + \gamma_n P_{n-2}(x)
,\qquad n=1,2,\dots
\]](form_20.png)
for ![$x\in[-1,1]$](form_21.png)
![\[ T_n(x) = \cos(n\, \arccos x).
\]](form_22.png)
Let ![$f\colon [-1,1]\to\mathbb R$](form_23.png)

![$[x_n]_{n=0..N}$](form_25.png)
![\[ f = \sum_{n=0}^N x_n P_n
\]](form_26.png)
into Chebyshev coefficients ![$[y_n]_{n=0..N}$](form_27.png)
![\[ f = \sum_{n=0}^N y_n T_n.
\]](form_28.png)
| #define FPT_NO_FAST_ALGORITHM (1U << 2) |
If set, TODO complete comment.
Definition at line 638 of file nfft3.h.
Referenced by fpt_init(), and fpt_transposed().
| #define FPT_NO_DIRECT_ALGORITHM (1U << 3) |
| #define FPT_NO_STABILIZATION (1U << 0) |
| #define FPT_PERSISTENT_DATA (1U << 4) |
If set, TODO complete comment.
Definition at line 640 of file nfft3.h.
Referenced by nfsft_precompute().
| #define FPT_FUNCTION_VALUES (1U << 5) |
If set, the output are function values at Chebyshev nodes rather than Chebyshev coefficients.
Definition at line 644 of file nfft3.h.
Referenced by fpt_transposed().
| #define FPT_AL_SYMMETRY (1U << 6) |
If set, TODO complete comment.
Definition at line 645 of file nfft3.h.
Referenced by fpt_transposed(), and nfsft_precompute().
|
extern |
Initializes a set of precomputed data for DPT transforms of equal length.






Definition at line 795 of file fpt.c.
References fpt_data_::_alpha, fpt_data_::_beta, fpt_data_::_gamma, fpt_set_s_::dpt, fpt_set_s_::flags, FPT_NO_DIRECT_ALGORITHM, FPT_NO_FAST_ALGORITHM, fpt_set_s_::kinds, fpt_set_s_::kindsr, fpt_set_s_::M, fpt_set_s_::N, nfft_free(), nfft_malloc(), fpt_set_s_::plans_dct2, fpt_set_s_::plans_dct3, fpt_data_::steps, fpt_set_s_::t, X, and fpt_set_s_::xcvecs.
Referenced by main(), and nfsft_precompute().
|
extern |
Computes the data required for a single DPT transform.












Definition at line 1307 of file fpt.c.
Referenced by main(), and nfsft_precompute().
| void fpt_transposed | ( | fpt_set | set, |
| const int | m, | ||
| double _Complex * | x, | ||
| double _Complex * | y, | ||
| const int | k_end, | ||
| const unsigned int | flags ) |
Computes a single DPT transform.
Definition at line 1740 of file fpt.c.
References fpt_step_::a, fpt_data_::alpha_0, fpt_data_::alphaN, fpt_data_::beta_0, fpt_data_::betaN, fpt_set_s_::dpt, FIRST_L, fpt_set_s_::flags, FPT_AL_SYMMETRY, FPT_FUNCTION_VALUES, FPT_NO_FAST_ALGORITHM, fpt_data_::gamma_m1, fpt_data_::gammaN, K_END_TILDE, fpt_data_::k_start, K_START_TILDE, LAST_L, fpt_step_::Ns, fpt_step_::stable, fpt_data_::steps, fpt_step_::ts, X, and fpt_set_s_::xcvecs.