NFFT  3.4.1
Functions
fastsum.c File Reference

Fast NFFT-based summation algorithm. More...

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

Go to the source code of this file.

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 *permutation_x_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 *permutation_x_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
 
static void fastsum_precompute_kernel (fastsum_plan *ths)
 
void fastsum_init_guru_kernel (fastsum_plan *ths, int d, kernel k, R *param, unsigned flags, int nn, int p, R eps_I, R eps_B)
 initialize node independent part of fast summation plan More...
 
void fastsum_init_guru_source_nodes (fastsum_plan *ths, int N_total, int nn_oversampled, int m)
 initialize source nodes dependent part of fast summation plan More...
 
void fastsum_init_guru_target_nodes (fastsum_plan *ths, int M_total, int nn_oversampled, int m)
 initialize target nodes dependent part of fast summation plan More...
 
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_source_nodes (fastsum_plan *ths)
 finalization of fastsum plan More...
 
void fastsum_finalize_target_nodes (fastsum_plan *ths)
 finalization of fastsum plan More...
 
void fastsum_finalize_kernel (fastsum_plan *ths)
 finalization 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_source_nodes (fastsum_plan *ths)
 precomputation for fastsum More...
 
void fastsum_precompute_target_nodes (fastsum_plan *ths)
 precomputation for fastsum 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.