NFFT  3.3.0
Modules | Data Structures | Macros | Typedefs | Functions
Fast summation

Modules

 fastsum_matlab
 
 fastsum_test
 

Data Structures

struct  fastsum_plan_
 plan for fast summation algorithm More...
 

Macros

#define X(name)   NFFT(name)
 Include header for C99 complex datatype. More...
 
#define NF_KUB
 
#define EXACT_NEARFIELD   (1U<< 0)
 Constant symbols.
 
#define NEARFIELD_BOXES   (1U<< 1)
 

Typedefs

typedef C(* kernel) (R, int, const R *)
 
typedef struct fastsum_plan_ fastsum_plan
 plan for fast summation algorithm
 

Functions

static int max_i (int a, int b)
 max
 
static R fak (int n)
 factorial
 
static R binom (int n, int m)
 binomial coefficient
 
static R BasisPoly (int m, int r, R xx)
 basis polynomial for regularized kernel
 
regkern (kernel k, R xx, int p, const R *param, R a, R b)
 regularized kernel with K_I arbitrary and K_B smooth to zero
 
static C regkern1 (kernel k, R xx, int p, const R *param, R a, R b)
 regularized kernel with K_I arbitrary and K_B periodized (used in 1D)
 
static C regkern3 (kernel k, R xx, int p, const R *param, R a, R b)
 regularized kernel for even kernels with K_I even and K_B mirrored More...
 
kubintkern (const R x, const C *Add, const int Ad, const R a)
 linear spline interpolation in near field with even kernels More...
 
static C kubintkern1 (const R x, const C *Add, const int Ad, const R a)
 cubic spline interpolation in near field with arbitrary kernels
 
static void quicksort (int d, int t, R *x, C *alpha, int N)
 quicksort algorithm for source knots and associated coefficients
 
static void BuildBox (fastsum_plan *ths)
 initialize box-based search data structures
 
static C calc_SearchBox (int d, R *y, R *x, C *alpha, int start, int end_lt, const C *Add, const int Ad, int p, R a, const kernel k, const R *param, const unsigned flags)
 inner computation function for box-based near field correction
 
static C SearchBox (R *y, fastsum_plan *ths)
 box-based near field correction
 
static void BuildTree (int d, int t, R *x, C *alpha, int N)
 recursive sort of source knots dimension by dimension to get tree structure
 
static C SearchTree (const int d, const int t, const R *x, const C *alpha, const R *xmin, const R *xmax, const int N, const kernel k, const R *param, const int Ad, const C *Add, const int p, const 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, kernel k, R *param, unsigned flags, int nn, int m, int p, R eps_I, R eps_B)
 initialization of fastsum plan More...
 
void fastsum_finalize (fastsum_plan *ths)
 finalization of fastsum plan More...
 
void fastsum_exact (fastsum_plan *ths)
 direct computation of sums More...
 
void fastsum_precompute (fastsum_plan *ths)
 precomputation for fastsum More...
 
void fastsum_trafo (fastsum_plan *ths)
 fast NFFT-based summation More...
 
gaussian (R x, int der, const R *param)
 
multiquadric (R x, int der, const R *param)
 
inverse_multiquadric (R x, int der, const R *param)
 
logarithm (R x, int der, const R *param)
 
thinplate_spline (R x, int der, const R *param)
 
one_over_square (R x, int der, const R *param)
 
one_over_modulus (R x, int der, const R *param)
 
one_over_x (R x, int der, const R *param)
 
inverse_multiquadric3 (R x, int der, const R *param)
 
sinc_kernel (R x, int der, const R *param)
 
cosc (R x, int der, const R *param)
 
kcot (R x, int der, const R *param)
 
one_over_cube (R x, int der, const R *param)
 

Detailed Description

Macro Definition Documentation

#define X (   name)    NFFT(name)

Include header for C99 complex datatype.

Include header for utils from NFFT3 library. Include header for NFFT3 library.

Definition at line 53 of file fastsum.h.

Referenced by main().

Function Documentation

static C regkern3 ( kernel  k,
xx,
int  p,
const R *  param,
a,
b 
)
static

regularized kernel for even kernels with K_I even and K_B mirrored

regularized kernel for even kernels with K_I even and K_B mirrored smooth to K(1/2) (used in dD, d>1)

Definition at line 232 of file fastsum.c.

References BasisPoly().

Referenced by fastsum_precompute().

C kubintkern ( const R  x,
const C *  Add,
const int  Ad,
const R  a 
)

linear spline interpolation in near field with even kernels

cubic spline interpolation in near field with even kernels

Definition at line 320 of file fastsum.c.

Referenced by calc_SearchBox(), and SearchTree().

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

initialization of fastsum plan

initialize fast summation plan

Parameters
thsThe pointer to a fastsum plan.
dThe dimension of the problem.
N_totalThe number of source knots x.
M_totalThe number of target knots y.
kernelThe kernel function.
paramThe parameters for the kernel function.
flagsFastsum flags.
nnThe expansion degree.
mThe cut-off parameter for the NFFT.
pThe degree of smoothness.
eps_IThe inner boundary.
eps_Bthe outer boundary.

Definition at line 693 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, fastsum_plan_::flags, fastsum_plan_::k, fastsum_plan_::kernel_param, fastsum_plan_::M_total, max_i(), fastsum_plan_::n, fastsum_plan_::N_total, fastsum_plan_::p, fastsum_plan_::x, and fastsum_plan_::y.

void fastsum_finalize ( fastsum_plan ths)

finalization of fastsum plan

finalize plan

Parameters
thsThe pointer to a fastsum plan.

Definition at line 846 of file fastsum.c.

References fastsum_plan_::Add, fastsum_plan_::alpha, fastsum_plan_::b, EXACT_NEARFIELD, fastsum_plan_::f, fastsum_plan_::flags, fastsum_plan_::x, and fastsum_plan_::y.

void fastsum_exact ( fastsum_plan ths)

direct computation of sums

direct summation

Parameters
thsThe pointer to a fastsum plan.

Definition at line 879 of file fastsum.c.

References fastsum_plan_::alpha, fastsum_plan_::d, fastsum_plan_::f, fastsum_plan_::k, fastsum_plan_::kernel_param, fastsum_plan_::M_total, fastsum_plan_::N_total, fastsum_plan_::x, and fastsum_plan_::y.

void fastsum_precompute ( fastsum_plan ths)
void fastsum_trafo ( fastsum_plan ths)