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

NFFT

Direct and fast computation of the discrete Fourier transform at nonequispaced knots. More...

Data Structures

struct  nfft_plan_

Defines

#define PRE_PHI_HUT   (1U<< 0)
 Constant symbols for precomputation and memory usage.
#define FG_PSI   (1U<< 1)
#define PRE_LIN_PSI   (1U<< 2)
#define PRE_FG_PSI   (1U<< 3)
#define PRE_PSI   (1U<< 4)
#define PRE_FULL_PSI   (1U<< 5)
#define MALLOC_X   (1U<< 6)
#define MALLOC_F_HAT   (1U<< 7)
#define MALLOC_F   (1U<< 8)
#define FFT_OUT_OF_PLACE   (1U<< 9)
#define FFTW_INIT   (1U<< 10)
#define MALLOC_V   (1U<< 11)
#define SNDFT   (1U<< 12)
#define PRE_ONE_PSI   (PRE_LIN_PSI| PRE_FG_PSI| PRE_PSI| PRE_FULL_PSI)

Typedefs

typedef nfft_plan_ nfft_plan

Functions

void ndft_trafo (nfft_plan *ths)
 Executes a NDFT, see equation (1.1) in [Guide], computes for j=0,.
void ndft_adjoint (nfft_plan *ths)
 Executes a NDFT, see equation (1.2) in [Guide], computes for k in I_N^d f_hat[k] = sum_{j=0}^{M-1} f[j] * exp(+2(pi) k x[j]).
void nfft_trafo (nfft_plan *ths)
 Executes a NFFT, see equation (1.1) in [Guide], computes fast and approximate for j=0,.
void nfft_adjoint (nfft_plan *ths)
 Executes an adjoint NFFT, see equation (1.2) in [Guide], computes fast and approximate for k in I_N^d f_hat[k] = sum_{j=0}^{M-1} f[j] * exp(+2(pi) k x[j]).
void nfft_init_1d (nfft_plan *ths, int N1, int M)
 Initialisation of a transform plan, wrapper d=1.
void nfft_init_2d (nfft_plan *ths, int N1, int N2, int M)
 Initialisation of a transform plan, wrapper d=2.
void nfft_init_3d (nfft_plan *ths, int N1, int N2, int N3, int M)
 Initialisation of a transform plan, wrapper d=3.
void nfft_init (nfft_plan *ths, int d, int *N, int M)
 Initialisation of a transform plan, simple.
void nfft_init_advanced (nfft_plan *ths, int d, int *N, int M, unsigned nfft_flags_on, unsigned nfft_flags_off)
 Initialisation of a transform plan, advanced.
void nfft_init_guru (nfft_plan *ths, int d, int *N, int M, int *n, int m, unsigned nfft_flags, unsigned fftw_flags)
 Initialisation of a transform plan, guru.
void nfft_precompute_full_psi (nfft_plan *ths)
void nfft_precompute_one_psi (nfft_plan *ths)
 Precomputation for a transform plan.
void nfft_finalize (nfft_plan *ths)
 Destroys a transform plan.

Detailed Description

Direct and fast computation of the discrete Fourier transform at nonequispaced knots.


Function Documentation

void ndft_adjoint nfft_plan *  ths  ) 
 

Executes a NDFT, see equation (1.2) in [Guide], computes for k in I_N^d f_hat[k] = sum_{j=0}^{M-1} f[j] * exp(+2(pi) k x[j]).

  • ths The pointer to a nfft plan
Author:
Stefan Kunis, Daniel Potts

void ndft_trafo nfft_plan *  ths  ) 
 

Executes a NDFT, see equation (1.1) in [Guide], computes for j=0,.

..,M-1 f[j] = sum_{k in I_N^d} f_hat[k] * exp(-2 (pi) k x[j])

  • ths The pointer to a nfft plan
Author:
Stefan Kunis, Daniel Potts

void nfft_adjoint nfft_plan *  ths  ) 
 

Executes an adjoint NFFT, see equation (1.2) in [Guide], computes fast and approximate for k in I_N^d f_hat[k] = sum_{j=0}^{M-1} f[j] * exp(+2(pi) k x[j]).

set $ g_l = \sum_{j=0}^{M_total-1} f_j \psi\left(x_j-\frac{l}{n}\right) \text{ for } l \in I_n,m(x_j) $

compute by d-variate discrete Fourier transform $ \hat g_k = \sum_{l \in I_n} g_l {\rm e}^{+2\pi {\rm i} \frac{kl}{n}} \text{ for } k \in I_N$

form $ \hat f_k = \frac{\hat g_k}{c_k\left(\phi\right)} \text{ for } k \in I_N $

void nfft_finalize nfft_plan *  ths  ) 
 

Destroys a transform plan.

  • ths The pointer to a nfft plan
Author:
Stefan Kunis, Daniel Potts

void nfft_init nfft_plan *  ths,
int  d,
int *  N,
int  M_total
 

Initialisation of a transform plan, simple.

< index over all dimensions

void nfft_init_1d nfft_plan *  ths,
int  N1,
int  M
 

Initialisation of a transform plan, wrapper d=1.

  • ths The pointer to a nfft plan
  • N1 bandwidth
  • M_total The number of nodes
Author:
Stefan Kunis, Daniel Potts

void nfft_init_2d nfft_plan *  ths,
int  N1,
int  N2,
int  M
 

Initialisation of a transform plan, wrapper d=2.

  • ths The pointer to a nfft plan
  • N1 bandwidth
  • N2 bandwidth
  • M_total The number of nodes
Author:
Stefan Kunis, Daniel Potts

void nfft_init_3d nfft_plan *  ths,
int  N1,
int  N2,
int  N3,
int  M
 

Initialisation of a transform plan, wrapper d=3.

  • ths The pointer to a nfft plan
  • N1 bandwidth
  • N2 bandwidth
  • N3 bandwidth
  • M_total The number of nodes
Author:
Stefan Kunis, Daniel Potts

void nfft_init_advanced nfft_plan *  ths,
int  d,
int *  N,
int  M,
unsigned  nfft_flags_on,
unsigned  nfft_flags_off
 

Initialisation of a transform plan, advanced.

  • ths The pointer to a nfft plan
  • d The dimension
  • N The multi bandwidth
  • M_total The number of nodes
  • nfft_flags_on NFFT flags to switch on
  • nfft_flags_off NFFT flags to switch off
Author:
Stefan Kunis, Daniel Potts

void nfft_init_guru nfft_plan *  ths,
int  d,
int *  N,
int  M_total,
int *  n,
int  m,
unsigned  nfft_flags,
unsigned  fftw_flags
 

Initialisation of a transform plan, guru.

< index over all dimensions

void nfft_precompute_full_psi nfft_plan *  ths  ) 
 

< index over all dimensions

< index over all nodes

< plain index 0<=l_L<lprod

< multi index u<=l<=o

< multi index 0<=lj<u+o+1

< postfix plain index

< 'bandwidth' of matrix B

< depends on x_j

void nfft_precompute_one_psi nfft_plan *  ths  ) 
 

Precomputation for a transform plan.

  • ths The pointer to a nfft plan
Author:
Stefan Kunis
wrapper for precompute*_psi

if PRE_*_PSI is set the application program has to call this routine (after) setting the nodes x

void nfft_trafo nfft_plan *  ths  ) 
 

Executes a NFFT, see equation (1.1) in [Guide], computes fast and approximate for j=0,.

..,M-1 f[j] = sum_{k in I_N^d} f_hat[k] * exp(-2 (pi) k x[j])

  • ths The pointer to a nfft plan
Author:
Stefan Kunis, Daniel Potts


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