|
Defines | |
#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) |
TODO Don't use this flag! | |
Typedefs | |
typedef fpt_set_s_ * | fpt_set |
A set of precomputed data for a set of DPT transforms of equal maximum length. | |
Functions | |
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. | |
void | fpt_precompute (fpt_set set, const int m, const double *alpha, const double *beta, const double *gamma, int k_start, const double threshold) |
Computes the data required for a single DPT transform. | |
void | dpt_trafo (fpt_set set, const int m, const double complex *x, double complex *y, const int k_end, const unsigned int flags) |
Computes a single DPT transform. | |
void | fpt_trafo (fpt_set set, const int m, const double complex *x, double complex *y, const int k_end, const unsigned int flags) |
Computes a single DPT transform. | |
void | dpt_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. | |
void | fpt_transposed (fpt_set set, const int m, double complex *x, const double complex *y, const int k_end, const unsigned int flags) |
Computes a single DPT transform. | |
void | fpt_finalize (fpt_set set) |
In the following, we abbreviate the term "fast polynomial transforms" by FPT.
|
Initializes a set of precomputed data for DPT transforms of equal length. Polynomial length Cascade level Index m Allocate memory for auxilliary arrays. Allocate memory for auxilliary arrays. Initialize FFTW plans. Definition at line 586 of file fpt.c. References 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_::lengths, fpt_set_s_::M, fpt_set_s_::N, PI, fpt_set_s_::plans_dct2, fpt_set_s_::plans_dct3, fpt_set_s_::result, fpt_data_::steps, fpt_set_s_::t, fpt_set_s_::temp, fpt_set_s_::vec3, fpt_set_s_::vec4, fpt_set_s_::work, fpt_set_s_::xc_slow, fpt_set_s_::xcvecs, and fpt_set_s_::z. Referenced by nfsft_precompute(). |
|
Computes the data required for a single DPT transform. < Cascade level < Level index < Length of polynomials for the next level in the cascade < Degree of polynomials for the current level in the cascade < First index l for current cascade level < Last index l for current cascade level and current < Length of polynomials for the next level in the cascade for stabilization < Degree of polynomials for the current level in the cascade for stabilization < Array containing function values of the (1,1)-component of U_k^n. < Array containing function values of the (1,2)-component of U_k^n. < Array containing function values of the (2,1)-component of U_k^n. < Array containing function values of the (2,2)-component of U_k^n. < Used to indicate that stabilization is neccessary. Increase polynomial degree to next power of two. Definition at line 698 of file fpt.c. References fpt_step_::a11, fpt_step_::a12, fpt_step_::a21, fpt_step_::a22, fpt_data_::alpha, fpt_data_::alpha_0, fpt_data_::alphaN, fpt_data_::beta, fpt_data_::beta_0, fpt_data_::betaN, fpt_set_s_::dpt, eval_clenshaw(), eval_clenshaw_thresh(), FIRST_L, fpt_set_s_::flags, FPT_AL_SYMMETRY, FPT_NO_DIRECT_ALGORITHM, FPT_NO_FAST_ALGORITHM, FPT_NO_STABILIZATION, FPT_PERSISTENT_DATA, fpt_step_::gamma, fpt_data_::gamma, fpt_data_::gamma_m1, fpt_data_::gammaN, IS_SYMMETRIC, fpt_data_::k_start, K_START_TILDE, LAST_L, fpt_set_s_::N, fpt_step_::N_stab, N_TILDE, nfft_next_power_of_2(), nfft_next_power_of_2_exp(), fpt_step_::stable, fpt_data_::steps, fpt_set_s_::t, fpt_step_::t_stab, and fpt_set_s_::xcvecs. Referenced by nfsft_precompute(). |
|
Computes a single DPT transform.
Definition at line 988 of file fpt.c. References fpt_data_::alpha, fpt_data_::beta, fpt_set_s_::dpt, eval_sum_clenshaw(), fpt_set_s_::flags, FPT_FUNCTION_VALUES, FPT_NO_DIRECT_ALGORITHM, fpt_data_::gamma, fpt_data_::gamma_m1, fpt_data_::k_start, nfft_next_power_of_2_exp(), PI, fpt_set_s_::plans_dct2, fpt_set_s_::result, fpt_set_s_::temp, fpt_set_s_::work, fpt_set_s_::xc_slow, and fpt_set_s_::xcvecs. Referenced by nfsft_trafo(). |
|
Computes a single DPT transform. Level index Index of first block at current level Index of last block at current level Block index Length of polynomial coefficient arrays at next level Polynomial array length for stabilization Current matrix Loop counter Definition at line 1042 of file fpt.c. References fpt_step_::a11, fpt_step_::a12, fpt_step_::a21, fpt_step_::a22, 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_do_step(), fpt_do_step_symmetric(), fpt_do_step_symmetric_l(), fpt_do_step_symmetric_u(), FPT_FUNCTION_VALUES, FPT_NO_FAST_ALGORITHM, fpt_step_::gamma, fpt_data_::gamma_m1, fpt_data_::gammaN, IS_SYMMETRIC, K_END_TILDE, fpt_data_::k_start, K_START_TILDE, LAST_L, fpt_step_::N_stab, nfft_next_power_of_2_exp(), fpt_set_s_::result, fpt_step_::stable, fpt_data_::steps, fpt_step_::t_stab, fpt_set_s_::vec3, fpt_set_s_::vec4, and fpt_set_s_::work. Referenced by nfsft_trafo(). |
|
Computes a single DPT transform.
Definition at line 1297 of file fpt.c. References fpt_data_::alpha, fpt_data_::beta, fpt_set_s_::dpt, eval_sum_clenshaw_transposed(), fpt_set_s_::flags, FPT_FUNCTION_VALUES, FPT_NO_DIRECT_ALGORITHM, fpt_data_::gamma, fpt_data_::gamma_m1, fpt_data_::k_start, nfft_next_power_of_2_exp(), PI, fpt_set_s_::plans_dct3, fpt_set_s_::result, fpt_set_s_::temp, fpt_set_s_::work, fpt_set_s_::xc_slow, and fpt_set_s_::xcvecs. Referenced by nfsft_adjoint(). |
|