NFFT Logo 3.2.3
Macros | Functions
nfft3util.h File Reference

Header file for utility functions used by the nfft3 library. More...

#include <fftw3.h>

Go to the source code of this file.

Macros

#define NFFT_SWAP_complex(x, y)
 Swapping of two vectors.
#define NFFT_SWAP_double(x, y)
 Swapping of two vectors.
#define PI   3.141592653589793238462643383279502884197169399375105820974944592
 Formerly known to be an irrational number.
#define PI2   6.283185307179586476925286766559005768394338798750211641949889185
#define PI4   12.56637061435917295385057353311801153678867759750042328389977837
#define NFFT_MAX(a, b)   ((a)>(b)? (a) : (b))
 Maximum of its two arguments.
#define NFFT_MIN(a, b)   ((a)<(b)? (a) : (b))
 Mimimum of its two arguments.

Functions

double nfft_bspline_old (int k, double x, double *A)
 To test the new one.
double nfft_bspline (int k, double x, double *scratch)
 Computes the B-spline $M_{k,0}\left(x\right)$, scratch is used for de Boor's scheme.
int nfft_prod_int (int *vec, int d)
 Computes integer $\prod_{t=0}^{d-1} v_t$.
int nfst_prod_minus_a_int (int *vec, int a, int d)
 Computes integer $\prod_{t=0}^{d-1} v_t-a$.
int nfft_plain_loop (int *idx, int *N, int d)
 Computes $\sum_{t=0}^{d-1} i_t \prod_{t'=t+1}^{d-1} N_{t'}$.
double nfft_prod_real (double *vec, int d)
 Computes double $\prod_{t=0}^{d-1} v_t$.
double nfft_dot_complex (fftw_complex *x, int n)
 Computes the inner/dot product $x^H x$.
double nfft_dot_double (double *x, int n)
 Computes the inner/dot product $x^H x$.
double nfft_dot_w_complex (fftw_complex *x, double *w, int n)
 Computes the weighted inner/dot product $x^H (w \odot x)$.
double nfft_dot_w_double (double *x, double *w, int n)
 Computes the weighted inner/dot product $x^H (w \odot x)$.
double nfft_dot_w_w2_complex (fftw_complex *x, double *w, double *w2, int n)
 Computes the weighted inner/dot product $x^H (w1\odot w2\odot w2 \odot x)$.
double nfft_dot_w2_complex (fftw_complex *x, double *w2, int n)
 Computes the weighted inner/dot product $x^H (w2\odot w2 \odot x)$.
void nfft_cp_complex (fftw_complex *x, fftw_complex *y, int n)
 Copies $x \leftarrow y$.
void nfft_cp_double (double *x, double *y, int n)
 Copies $x \leftarrow y$.
void nfft_cp_a_complex (fftw_complex *x, double a, fftw_complex *y, int n)
 Copies $x \leftarrow a y$.
void nfft_cp_a_double (double *x, double a, double *y, int n)
 Copies $x \leftarrow a y$.
void nfft_cp_w_complex (fftw_complex *x, double *w, fftw_complex *y, int n)
 Copies $x \leftarrow w\odot y$.
void nfft_cp_w_double (double *x, double *w, double *y, int n)
 Copies $x \leftarrow w\odot y$.
void nfft_upd_axpy_complex (fftw_complex *x, double a, fftw_complex *y, int n)
 Updates $x \leftarrow a x + y$.
void nfft_upd_axpy_double (double *x, double a, double *y, int n)
 Updates $x \leftarrow a x + y$.
void nfft_upd_xpay_complex (fftw_complex *x, double a, fftw_complex *y, int n)
 Updates $x \leftarrow x + a y$.
void nfft_upd_xpay_double (double *x, double a, double *y, int n)
 Updates $x \leftarrow x + a y$.
void nfft_upd_axpby_complex (fftw_complex *x, double a, fftw_complex *y, double b, int n)
 Updates $x \leftarrow a x + b y$.
void nfft_upd_axpby_double (double *x, double a, double *y, double b, int n)
 Updates $x \leftarrow a x + b y$.
void nfft_upd_xpawy_complex (fftw_complex *x, double a, double *w, fftw_complex *y, int n)
 Updates $x \leftarrow x + a w\odot y$.
void nfft_upd_xpawy_double (double *x, double a, double *w, double *y, int n)
 Updates $x \leftarrow x + a w\odot y$.
void nfft_upd_axpwy_complex (fftw_complex *x, double a, double *w, fftw_complex *y, int n)
 Updates $x \leftarrow a x + w\odot y$.
void nfft_upd_axpwy_double (double *x, double a, double *w, double *y, int n)
 Updates $x \leftarrow a x + w\odot y$.
void nfft_fftshift_complex (fftw_complex *x, int d, int *N)
 Swaps each half over N[d]/2.
void nfft_vpr_int (int *x, int n, char *text)
 Prints a vector of integer numbers.
void nfft_vpr_double (double *x, int n, const char *text)
 Prints a vector of doubles numbers.
void nfft_vpr_complex (fftw_complex *x, int n, const char *text)
 Prints a vector of complex numbers.
void nfft_vrand_unit_complex (fftw_complex *x, int n)
 Inits a vector of random complex numbers in $[0,1]\times[0,1]{\rm i}$.
void nfft_vrand_shifted_unit_double (double *x, int n)
 Inits a vector of random double numbers in $[-1/2,1/2]$.
void nfft_voronoi_weights_1d (double *w, double *x, int M)
 Computes non periodic voronoi weights, assumes ordered nodes $x_j$.
void nfft_voronoi_weights_S2 (double *w, double *xi, int M)
 Computes voronoi weights for nodes on the sphere S^2.
double nfft_modified_fejer (int N, int kk)
 Computes the damping factor for the modified Fejer kernel, ie $\frac{2}{N}\left(1-\frac{\left|2k+1\right|}{N}\right)$.
double nfft_modified_jackson2 (int N, int kk)
 Computes the damping factor for the modified Jackson kernel.
double nfft_modified_jackson4 (int N, int kk)
 Computes the damping factor for the modified generalised Jackson kernel.
double nfft_modified_sobolev (double mu, int kk)
 Computes the damping factor for the modified Sobolev kernel.
double nfft_modified_multiquadric (double mu, double c, int kk)
 Computes the damping factor for the modified multiquadric kernel.
int nfft_smbi (const double x, const double alpha, const int nb, const int ize, double *b)
 Calculates the modified bessel function $I_{n+\alpha}(x)$, possibly scaled by $\mathrm{e}^{-x}$, for real non-negative $x,alpha$ with $0 \le \alpha < 1$, and $n=0,1,\ldots,nb-1$.
double nfft_drand48 (void)
void nfft_srand48 (long int seed)
void nfft_sort_node_indices_radix_lsdf (int n, int *keys0, int *keys1, int rhigh)
 Radix sort for node indices.
void nfft_sort_node_indices_radix_msdf (int n, int *keys0, int *keys1, int rhigh)
 Radix sort for node indices.
int nfft_get_num_threads (void)

Detailed Description

Header file for utility functions used by the nfft3 library.

Definition in file nfft3util.h.


Generated on Tue Apr 30 2013 by Doxygen 1.8.1