NFFT Logo 3.0 API Reference
Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals

Fast summation
[Applications]


Modules

 fastsum_matlab
 fastsum_test

Data Structures

struct  fastsum_plan_
 plan for fast summation algorithm More...

Defines

#define EXACT_NEARFIELD   (1U<< 0)
 Constant symbols.

Typedefs

typedef fastsum_plan_ fastsum_plan
 plan for fast summation algorithm

Functions

double fak (int n)
 factorial
double binom (int n, int m)
 binomial coefficient
double BasisPoly (int m, int r, double xx)
 basis polynomial for regularized kernel
double regkern (complex(*kernel)(double, int, const double *), double xx, int p, const double *param, double a, double b)
 regularized kernel with K_I arbitrary and K_B smooth to zero
double regkern1 (complex(*kernel)(double, int, const double *), double xx, int p, const double *param, double a, double b)
 regularized kernel with K_I arbitrary and K_B periodized (used in 1D)
double regkern2 (complex(*kernel)(double, int, const double *), double xx, int p, const double *param, double a, double b)
 regularized kernel for even kernels with K_I even and K_B mirrored
double regkern3 (complex(*kernel)(double, int, const double *), double xx, int p, const double *param, double a, double b)
 regularized kernel for even kernels with K_I even and K_B mirrored smooth to K(1/2) (used in dD, d>1)
double kubintkern (double x, double *Add, int Ad, double a)
 cubic spline interpolation in near field with even kernels
double kubintkern1 (double x, double *Add, int Ad, double a)
 cubic spline interpolation in near field with arbitrary kernels
void quicksort (int d, int t, double *x, complex *alpha, int N)
 quicksort algorithm for source knots and associated coefficients
void BuildTree (int d, int t, double *x, complex *alpha, int N)
 recursive sort of source knots dimension by dimension to get tree structure
complex SearchTree (int d, int t, double *x, complex *alpha, double *xmin, double *xmax, int N, complex(*kernel)(double, int, const double *), const double *param, int Ad, double *Add, int p, unsigned flags)
 fast search in tree of source knots for near field computation
void fastsum_init_guru (fastsum_plan *ths, int d, int N_total, int M_total, complex(*kernel)(), double *param, unsigned flags, int nn, int m, int p, double eps_I, double eps_B)
 initialization of fastsum plan
void fastsum_finalize (fastsum_plan *ths)
 finalization of fastsum plan
void fastsum_exact (fastsum_plan *ths)
 direct computation of sums
void fastsum_precompute (fastsum_plan *ths)
 precomputation for fastsum
void fastsum_trafo (fastsum_plan *ths)
 fast NFFT-based summation
complex gaussian (double x, int der, const double *param)
complex multiquadric (double x, int der, const double *param)
complex inverse_multiquadric (double x, int der, const double *param)
complex logarithm (double x, int der, const double *param)
complex thinplate_spline (double x, int der, const double *param)
complex one_over_square (double x, int der, const double *param)
complex one_over_modulus (double x, int der, const double *param)
complex one_over_x (double x, int der, const double *param)
complex inverse_multiquadric3 (double x, int der, const double *param)
complex sinc_kernel (double x, int der, const double *param)
complex cosc (double x, int der, const double *param)
complex cot (double x, int der, const double *param)

Function Documentation

void fastsum_init_guru fastsum_plan ths,
int  d,
int  N_total,
int  M_total,
complex(*)()  kernel,
double *  param,
unsigned  flags,
int  nn,
int  m,
int  p,
double  eps_I,
double  eps_B
 

initialization of fastsum plan

inner boundary

outer boundary

init spline for near field computation

init d-dimensional NFFT plan

init d-dimensional FFTW plan

Definition at line 370 of file fastsum.c.

References fastsum_plan_::Ad, fastsum_plan_::Add, fastsum_plan_::alpha, fastsum_plan_::b, fastsum_plan_::d, fastsum_plan_::eps_B, fastsum_plan_::eps_I, EXACT_NEARFIELD, fastsum_plan_::f, FFT_OUT_OF_PLACE, fastsum_plan_::fft_plan, FFTW_INIT, fastsum_plan_::flags, fastsum_plan_::kernel, fastsum_plan_::kernel_param, fastsum_plan_::M_total, MALLOC_F, MALLOC_F_HAT, MALLOC_X, fastsum_plan_::mv1, fastsum_plan_::mv2, fastsum_plan_::n, fastsum_plan_::N_total, nfft_init_guru(), fastsum_plan_::p, PRE_PHI_HUT, PRE_PSI, fastsum_plan_::x, and fastsum_plan_::y.

Referenced by main().

void fastsum_finalize fastsum_plan ths  ) 
 

finalization of fastsum plan

Parameters:
ths The pointer to a fastsum plan.

Definition at line 436 of file fastsum.c.

References fastsum_plan_::Add, fastsum_plan_::alpha, fastsum_plan_::b, EXACT_NEARFIELD, fastsum_plan_::f, fastsum_plan_::fft_plan, fastsum_plan_::flags, fastsum_plan_::mv1, fastsum_plan_::mv2, nfft_finalize(), fastsum_plan_::x, and fastsum_plan_::y.

Referenced by main().

void fastsum_exact fastsum_plan ths  ) 
 

direct computation of sums

Parameters:
ths The pointer to a fastsum plan.

Definition at line 454 of file fastsum.c.

References fastsum_plan_::alpha, fastsum_plan_::d, fastsum_plan_::f, fastsum_plan_::kernel, fastsum_plan_::kernel_param, fastsum_plan_::x, and fastsum_plan_::y.

Referenced by main().

void fastsum_precompute fastsum_plan ths  ) 
 

precomputation for fastsum

sort source knots

precompute spline values for near field

init NFFT plan for transposed transform in first step

precompute psi, the entries of the matrix B

init Fourier coefficients

init NFFT plan for transform in third step

precompute psi, the entries of the matrix B

precompute Fourier coefficients of regularised kernel

Definition at line 480 of file fastsum.c.

References fastsum_plan_::Ad, fastsum_plan_::Add, fastsum_plan_::alpha, fastsum_plan_::b, BuildTree(), nfft_plan::d, fastsum_plan_::d, fastsum_plan_::eps_B, fastsum_plan_::eps_I, EXACT_NEARFIELD, nfft_plan::f, fastsum_plan_::fft_plan, fastsum_plan_::flags, fastsum_plan_::kernel, fastsum_plan_::kernel_param, nfft_plan::M_total, fastsum_plan_::mv1, fastsum_plan_::mv2, nfft_plan::N, fastsum_plan_::n, fastsum_plan_::N_total, nfft_fftshift_complex(), nfft_plan::nfft_flags, nfft_precompute_full_psi(), nfft_precompute_lin_psi(), nfft_precompute_psi(), fastsum_plan_::p, PRE_FULL_PSI, PRE_LIN_PSI, PRE_PSI, regkern1(), regkern3(), nfft_plan::x, fastsum_plan_::x, and fastsum_plan_::y.

Referenced by main().

void fastsum_trafo fastsum_plan ths  ) 
 

fast NFFT-based summation

limits for d-dimensional near field box

first step of algorithm

second step of algorithm

third step of algorithm

add near field

Definition at line 563 of file fastsum.c.

References fastsum_plan_::Ad, fastsum_plan_::Add, fastsum_plan_::alpha, fastsum_plan_::b, fastsum_plan_::d, fastsum_plan_::eps_I, nfft_plan::f, fastsum_plan_::f, nfft_plan::f_hat, fastsum_plan_::flags, fastsum_plan_::kernel, fastsum_plan_::kernel_param, fastsum_plan_::mv1, fastsum_plan_::mv2, fastsum_plan_::N_total, nfft_adjoint(), nfft_trafo(), fastsum_plan_::p, SearchTree(), fastsum_plan_::x, and fastsum_plan_::y.

Referenced by main().


Generated on 1 Nov 2006 by Doxygen 1.4.4