Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

FPT

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 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 complex *x, 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 complex *x, complex *y, const int k_end, const unsigned int flags)
 Computes a single DPT transform.
void dpt_transposed (fpt_set set, const int m, complex *x, const complex *y, const int k_end, const unsigned int flags)
 Computes a single DPT transform.
void fpt_transposed (fpt_set set, const int m, complex *x, const 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.


Function Documentation

void dpt_trafo fpt_set  set,
const int  m,
const complex *  x,
complex *  y,
const int  k_end,
const unsigned int  flags
 

Computes a single DPT transform.

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

void dpt_transposed fpt_set  set,
const int  m,
complex *  x,
const complex *  y,
const int  k_end,
const unsigned int  flags
 

Computes a single DPT transform.

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

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.

Polynomial length

Cascade level

Index m

FFTW plan

Allocate memory for auxilliary arrays.

Allocate memory for auxilliary arrays.

Initialize FFTW plans.

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.

< 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

< Cascade level for stabilization

< 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.

void fpt_trafo fpt_set  set,
const int  m,
const complex *  x,
complex *  y,
const int  k_end,
const unsigned int  flags
 

Computes a single DPT transform.

Level index $tau$

Index of first block at current level

Index of last block at current level

Block index $l$

Length of polynomial coefficient arrays at next level

Polynomial array length for stabilization

Current matrix $U_{n,tau,l}$

Loop counter

void fpt_transposed fpt_set  set,
const int  m,
complex *  x,
const complex *  y,
const int  k_end,
const unsigned int  flags
 

Computes a single DPT transform.

Level index $tau$

Index of first block at current level

Index of last block at current level

Block index $l$

Length of polynomial coefficient arrays at next level

Polynomial array length for stabilization

Current matrix $U_{n,tau,l}$

Loop counter

Save copy of inpute data for stabilization steps.


Generated on Wed May 10 20:39:40 2006 for NFFT by  doxygen 1.4.4