NFFT Logo 3.1.3 API Reference

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.

Defines

#define TIC(a)
 Timing, method works since the inaccurate timer is updated mostly in the measured function.
#define TOC(a)
#define TIC_FFTW(a)
#define TOC_FFTW(a)
#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_second (void)
 Actual used CPU time in seconds; calls getrusage, limited accuracy.
int nfft_total_used_memory (void)
 Actual used memory in bytes; calls mallinfo if define HAVE_MALLOC_H.
int nfft_ld (int m)
 Integer logarithm of 2.
int nfft_int_2_pow (int a)
 Integer power of 2.
int nfft_next_power_of_2 (int N)
 Computes $n\ge N$ such that $n=2^j,\, j\in\mathbb{N}_0$.
void nfft_next_power_of_2_exp (int N, int *N2, int *t)
 Computes ?
double nfft_sinc (double x)
 Computes the sinus cardinalis $\frac{sin\left(x\right)}{x}$.
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.
double nfft_i0 (double x)
 Modified Bessel function of order zero; adapted from Stephen Moshier's Cephes Math Library Release 2.8.
int nfft_prod_int (int *vec, int d)
 Computes integer $\prod_{t=0}^{d-1} v_t$.
int nfct_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_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.
double nfft_error_l_infty_complex (fftw_complex *x, fftw_complex *y, int n)
 Computes $\frac{\|x-y\|_{\infty}}{\|x\|_{\infty}} $.
double nfft_error_l_infty_double (double *x, double *y, int n)
 Computes $\frac{\|x-y\|_{\infty}}{\|x\|_{\infty}} $.
double nfft_error_l_infty_1_complex (fftw_complex *x, fftw_complex *y, int n, fftw_complex *z, int m)
 Computes $\frac{\|x-y\|_{\infty}}{\|z\|_1} $.
double nfft_error_l_infty_1_double (double *x, double *y, int n, double *z, int m)
 Computes $\frac{\|x-y\|_{\infty}}{\|z\|_1} $.
double nfft_error_l_2_complex (fftw_complex *x, fftw_complex *y, int n)
 Computes $\frac{\|x-y\|_2}{\|x\|_2} $.
double nfft_error_l_2_double (double *x, double *y, int n)
 Computes $\frac{\|x-y\|_2}{\|x\|_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_lambda (const double z, const double eps)
 Computes the function $\Lambda(z,\epsilon) = \frac{\Gamma(z+\epsilon)}{\Gamma(z+1)}$, with $ z + \epsilon > 0$.
double nfft_lambda2 (const double mu, const double nu)


Detailed Description

Header file for utility functions used by the nfft3 library.

Definition in file nfft3util.h.


Generated on 23 Dec 2009 by Doxygen 1.5.6