NFFT Logo 3.2.4
Functions
fastsum.c File Reference

Fast NFFT-based summation algorithm. More...

#include "config.h"
#include <stdlib.h>
#include <math.h>
#include "nfft3util.h"
#include "nfft3.h"
#include "fastsum.h"
#include "infft.h"
#include "kernels.h"

Go to the source code of this file.

Functions

int max_i (int a, int b)
 max
 
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 _Complex regkern (kernel k, double xx, int p, const double *param, double a, double b)
 regularized kernel with K_I arbitrary and K_B smooth to zero
 
double _Complex regkern1 (kernel k, 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 _Complex regkern2 (kernel k, 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 _Complex regkern3 (kernel k, 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 _Complex linintkern (const double x, const double _Complex *Add, const int Ad, const double a)
 linear spline interpolation in near field with even kernels
 
double _Complex quadrintkern (const double x, const double _Complex *Add, const int Ad, const double a)
 
double _Complex kubintkern (const double x, const double _Complex *Add, const int Ad, const double a)
 cubic spline interpolation in near field with even kernels
 
double _Complex kubintkern1 (const double x, const double _Complex *Add, const int Ad, const double a)
 cubic spline interpolation in near field with arbitrary kernels
 
void quicksort (int d, int t, double *x, double _Complex *alpha, int N)
 quicksort algorithm for source knots and associated coefficients
 
static void BuildBox (fastsum_plan *ths)
 initialize box-based search data structures
 
static double _Complex calc_SearchBox (int d, double *y, double *x, double _Complex *alpha, int start, int end_lt, const double _Complex *Add, const int Ad, int p, double a, const kernel k, const double *param, const unsigned flags)
 inner computation function for box-based near field correction
 
static double _Complex SearchBox (double *y, fastsum_plan *ths)
 box-based near field correction
 
void BuildTree (int d, int t, double *x, double _Complex *alpha, int N)
 recursive sort of source knots dimension by dimension to get tree structure
 
double _Complex SearchTree (const int d, const int t, const double *x, const double _Complex *alpha, const double *xmin, const double *xmax, const int N, const kernel k, const double *param, const int Ad, const double _Complex *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, double *param, unsigned flags, int nn, int m, int p, double eps_I, double 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...
 

Detailed Description

Fast NFFT-based summation algorithm.

Author
Markus Fenn
Date
2003-2006

Definition in file fastsum.c.


Generated on Thu May 7 2015 by Doxygen 1.8.5