![]() |
NFFT
3.5.0
|
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 be given recursion coefficients of the polynomials
defined by
,
and
for . The Chebyshev polnyomials of the first kind are defined by
Let be a polynomial of degree
. The FPT transforms the polynomial coefficients
from
into Chebyshev coefficients from
fpt_set fpt_init | ( | const int | M, |
const int | t, | ||
const unsigned int | flags | ||
) |
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_step_::a, fpt_data_::alpha_0, fpt_data_::alphaN, fpt_data_::beta_0, fpt_data_::betaN, FIRST_L, FPT_AL_SYMMETRY, FPT_NO_DIRECT_ALGORITHM, FPT_NO_FAST_ALGORITHM, FPT_NO_STABILIZATION, FPT_PERSISTENT_DATA, fpt_data_::gamma_m1, fpt_data_::gammaN, fpt_data_::k_start, K_START_TILDE, LAST_L, nfft_free(), nfft_malloc(), fpt_step_::Ns, fpt_step_::stable, fpt_data_::steps, fpt_step_::ts, and X.
Referenced by main(), nfsft_precompute(), and nfsoft_init_guru_advanced().
void fpt_precompute | ( | fpt_set | set, |
const int | m, | ||
double * | alpha, | ||
double * | beta, | ||
double * | gam, | ||
int | k_start, | ||
const double | threshold | ||
) |
Computes the data required for a single DPT transform.
alpha[k]
beta[k]
gamma[k]
Definition at line 1307 of file fpt.c.
References fpt_data_::_alpha, fpt_data_::_beta, fpt_data_::_gamma, fpt_step_::a, fpt_data_::alpha_0, fpt_data_::alphaN, fpt_data_::beta_0, fpt_data_::betaN, eval_sum_clenshaw_transposed(), FIRST_L, FPT_AL_SYMMETRY, FPT_FUNCTION_VALUES, FPT_NO_DIRECT_ALGORITHM, 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, and X.
Referenced by main(), nfsft_precompute(), and nfsoft_init_guru_advanced().
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_data_::_alpha, fpt_data_::_beta, fpt_data_::_gamma, fpt_step_::a, fpt_data_::alpha_0, fpt_data_::alphaN, fpt_data_::beta_0, fpt_data_::betaN, FIRST_L, FPT_AL_SYMMETRY, FPT_FUNCTION_VALUES, FPT_NO_DIRECT_ALGORITHM, FPT_NO_FAST_ALGORITHM, FPT_PERSISTENT_DATA, fpt_data_::gamma_m1, fpt_data_::gammaN, K_END_TILDE, fpt_data_::k_start, K_START_TILDE, LAST_L, nfft_free(), fpt_step_::Ns, fpt_step_::stable, fpt_data_::steps, fpt_step_::ts, and X.
Referenced by main(), nfsft_adjoint(), and nfsoft_init_guru_advanced().