NFFT Logo 3.1.3 API Reference

FPT - Fast polynomial transform

This module implements fast polynomial transforms. More...

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 struct 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, double *alpha, double *beta, double *gam, 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 fftw_complex *x, fftw_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 fftw_complex *x, fftw_complex *y, const int k_end, const unsigned int flags)
 Computes a single DPT transform.
void dpt_transposed (fpt_set set, const int m, fftw_complex *x, fftw_complex *y, const int k_end, const unsigned int flags)
 Computes a single DPT transform.
void fpt_transposed (fpt_set set, const int m, fftw_complex *x, fftw_complex *y, const int k_end, const unsigned int flags)
 Computes a single DPT transform.
void fpt_finalize (fpt_set set)

Detailed Description

This module implements fast polynomial transforms.

In the following, we abbreviate the term "fast polynomial transforms" by FPT.


Define Documentation

#define FPT_NO_FAST_ALGORITHM   (1U << 2)

If set, TODO complete comment.

Definition at line 2172 of file nfft3.h.

Referenced by fpt_init(), and fpt_precompute().

#define FPT_NO_DIRECT_ALGORITHM   (1U << 3)

If set, TODO complete comment.

Definition at line 2173 of file nfft3.h.

Referenced by fpt_init(), and fpt_precompute().

#define FPT_NO_STABILIZATION   (1U << 0)

If set, no stabilization will be used.

Definition at line 2174 of file nfft3.h.

Referenced by fpt_precompute(), and SO3_single_fpt_init().

#define FPT_PERSISTENT_DATA   (1U << 4)

If set, TODO complete comment.

Definition at line 2177 of file nfft3.h.

Referenced by fpt_precompute(), and 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 2180 of file nfft3.h.


Typedef Documentation

typedef struct fpt_set_s_* fpt_set

A set of precomputed data for a set of DPT transforms of equal maximum length.

Definition at line 2186 of file nfft3.h.


Function Documentation

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.

  • M The maximum DPT transform index $M \in \mathbb{N}_0$. The individual transforms are addressed by and index number $m \in \mathbb{N}_0$ with range $m = 0,\ldots,M$. The total number of transforms is therefore $M+1$.
  • t The exponent $t \in \mathbb{N}, t \ge 2$ of the transform length $N = 2^t \in \mathbb{N}, N \ge 4$
  • flags A bitwise combination of the flags FPT_NO_STABILIZATION,
Author:
Jens Keiner

Definition at line 738 of file fpt.c.

References FPT_NO_DIRECT_ALGORITHM, FPT_NO_FAST_ALGORITHM, nfft_free(), nfft_malloc(), and PI.

Referenced by main(), nfsft_precompute(), and SO3_single_fpt_init().

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.

  • set The set of DPT transform data where the computed data will be stored.
  • m The transform index $m \in \mathbb{N}, 0 \le m \le M$.
  • alpha The three-term recurrence coefficients $\alpha_k \in \mathbb{R}$ for $k=0,\ldots,N$ such that
    alpha[k]
     *      
    $=\alpha_k$.
  • beta The three-term recurrence coefficients $\beta_k \in \mathbb{R}$ for $k=0,\ldots,N$ such that
    beta[k] 
    $=\beta_k$.
  • gamma The three-term recurrence coefficients $\gamma_k \in \mathbb{R}$ for $k=0,\ldots,N$ such that
    gamma[k]
     *            
    $=\gamma_k$.
  • k_start The index $k_{\text{start}} \in \mathbb{N}_0, 0 \le k_{\text{start}} \le N$
  • threshold The treshold $\kappa \in \mathbb{R}, \kappa > 0$.
Author:
Jens Keiner

Definition at line 840 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, FIRST_L, FPT_AL_SYMMETRY, FPT_NO_DIRECT_ALGORITHM, FPT_NO_FAST_ALGORITHM, FPT_NO_STABILIZATION, FPT_PERSISTENT_DATA, fpt_step_::g, fpt_data_::gamma, fpt_data_::gamma_m1, fpt_data_::gammaN, fpt_data_::k_start, K_START_TILDE, LAST_L, nfft_free(), nfft_malloc(), nfft_next_power_of_2(), nfft_next_power_of_2_exp(), fpt_step_::Ns, fpt_step_::stable, fpt_data_::steps, and fpt_step_::ts.

Referenced by main(), nfsft_precompute(), and SO3_single_fpt_init().

void dpt_trafo ( fpt_set  set,
const int  m,
const fftw_complex *  x,
fftw_complex *  y,
const int  k_end,
const unsigned int  flags 
)

Computes a single DPT transform.

  • set
  • m
  • x
  • y
  • k_end
  • flags

Referenced by nfsft_trafo().

void fpt_trafo ( fpt_set  set,
const int  m,
const fftw_complex *  x,
fftw_complex *  y,
const int  k_end,
const unsigned int  flags 
)

Computes a single DPT transform.

  • set
  • m
  • x
  • y
  • k_end
  • flags

Referenced by nfsft_trafo().

void dpt_transposed ( fpt_set  set,
const int  m,
fftw_complex *  x,
fftw_complex *  y,
const int  k_end,
const unsigned int  flags 
)

Computes a single DPT transform.

  • set
  • m
  • x
  • y
  • k_end
  • flags

Referenced by nfsft_adjoint().

void fpt_transposed ( fpt_set  set,
const int  m,
fftw_complex *  x,
fftw_complex *  y,
const int  k_end,
const unsigned int  flags 
)

Computes a single DPT transform.

  • set
  • m
  • x
  • y
  • k_end
  • flags

Referenced by main(), and nfsft_adjoint().


Generated on 23 Dec 2009 by Doxygen 1.5.6