![]() |
|
#include <fftw3.h>
#include "nfft3conf.h"
Go to the source code of this file.
Data Structures | |
struct | mv_plan_complex |
struct | mv_plan_double |
struct | nfft_plan |
Structure for a NFFT plan. More... | |
struct | nfct_plan |
Structure for a transform plan. More... | |
struct | nfst_plan |
Structure for a transform plan. More... | |
struct | nnfft_plan |
Structure for a transform plan. More... | |
struct | nsfft_plan |
Structure for a NFFT plan. More... | |
struct | mri_inh_2d1d_plan |
The structure for the transform plan. More... | |
struct | mri_inh_3d_plan |
The structure for the transform plan. More... | |
struct | nfsft_plan |
Structure for a NFSFT transform plan. More... | |
struct | nfsoft_plan_ |
Structure for a NFSOFT transform plan. More... | |
struct | solver_plan_complex |
struct | solver_plan_double |
Defines | |
#define | MACRO_MV_PLAN(float_type) |
Macros for public members inherited by all plan structures. | |
#define | PRE_PHI_HUT (1U<< 0) |
If this flag is set, the deconvolution step (the multiplication with the diagonal matrix ![]() | |
#define | FG_PSI (1U<< 1) |
If this flag is set, the convolution step (the multiplication with the sparse matrix ![]() | |
#define | PRE_LIN_PSI (1U<< 2) |
If this flag is set, the convolution step (the multiplication with the sparse matrix ![]() | |
#define | PRE_FG_PSI (1U<< 3) |
If this flag is set, the convolution step (the multiplication with the sparse matrix ![]() ![]() | |
#define | PRE_PSI (1U<< 4) |
If this flag is set, the convolution step (the multiplication with the sparse matrix ![]() ![]() | |
#define | PRE_FULL_PSI (1U<< 5) |
If this flag is set, the convolution step (the multiplication with the sparse matrix ![]() ![]() | |
#define | MALLOC_X (1U<< 6) |
If this flag is set, (de)allocation of the node vector is done. | |
#define | MALLOC_F_HAT (1U<< 7) |
If this flag is set, (de)allocation of the vector of Fourier coefficients is done. | |
#define | MALLOC_F (1U<< 8) |
If this flag is set, (de)allocation of the vector of samples is done. | |
#define | FFT_OUT_OF_PLACE (1U<< 9) |
If this flag is set, FFTW uses disjoint input/output vectors. | |
#define | FFTW_INIT (1U<< 10) |
If this flag is set, fftw_init/fftw_finalize is called. | |
#define | PRE_ONE_PSI (PRE_LIN_PSI| PRE_FG_PSI| PRE_PSI| PRE_FULL_PSI) |
Summarises if precomputation is used within the convolution step (the multiplication with the sparse matrix ![]() | |
#define | MALLOC_V (1U<< 11) |
If this flag is set, (de)allocation of the frequency node vector is done. | |
#define | NSDFT (1U<< 12) |
If this flag is set, the member index_sparse_to_full is (de)allocated and initialised for the use in the routine nsdft_trafo and nsdft_adjoint. | |
#define | NFSFT_NORMALIZED (1U << 0) |
By default, all computations are performed with respect to the unnormalized basis functions
If this flag is set, all computations are carried out using the
| |
#define | NFSFT_USE_NDFT (1U << 1) |
If this flag is set, the fast NFSFT algorithms (see nfsft_trafo, nfsft_adjoint) will use internally the exact but usually slower direct NDFT algorithm in favor of fast but approximative NFFT algorithm. | |
#define | NFSFT_USE_DPT (1U << 2) |
If this flag is set, the fast NFSFT algorithms (see nfsft_trafo, nfsft_adjoint) will use internally the usually slower direct DPT algorithm in favor of the fast FPT algorithm. | |
#define | NFSFT_MALLOC_X (1U << 3) |
If this flag is set, the init methods (see nfsft_init , nfsft_init_advanced , and nfsft_init_guru) will allocate memory and the method nfsft_finalize will free the array x for you. | |
#define | NFSFT_MALLOC_F_HAT (1U << 5) |
If this flag is set, the init methods (see nfsft_init , nfsft_init_advanced , and nfsft_init_guru) will allocate memory and the method nfsft_finalize will free the array f_hat for you. | |
#define | NFSFT_MALLOC_F (1U << 6) |
If this flag is set, the init methods (see nfsft_init , nfsft_init_advanced , and nfsft_init_guru) will allocate memory and the method nfsft_finalize will free the array f for you. | |
#define | NFSFT_PRESERVE_F_HAT (1U << 7) |
If this flag is set, it is guaranteed that during an execution of ndsft_trafo or nfsft_trafo the content of f_hat remains unchanged. | |
#define | NFSFT_PRESERVE_X (1U << 8) |
If this flag is set, it is guaranteed that during an execution of ndsft_trafo, nfsft_trafo or ndsft_adjoint, nfsft_adjoint the content of x remains unchanged. | |
#define | NFSFT_PRESERVE_F (1U << 9) |
If this flag is set, it is guaranteed that during an execution of ndsft_adjoint or nfsft_adjoint the content of f remains unchanged. | |
#define | NFSFT_DESTROY_F_HAT (1U << 10) |
If this flag is set, it is explicitely allowed that during an execution of ndsft_trafo or nfsft_trafo the content of f_hat may be changed. | |
#define | NFSFT_DESTROY_X (1U << 11) |
If this flag is set, it is explicitely allowed that during an execution of ndsft_trafo, nfsft_trafo or ndsft_adjoint, nfsft_adjoint the content of x may be changed. | |
#define | NFSFT_DESTROY_F (1U << 12) |
If this flag is set, it is explicitely allowed that during an execution of ndsft_adjoint or nfsft_adjoint the content of f may be changed. | |
#define | NFSFT_NO_DIRECT_ALGORITHM (1U << 13) |
If this flag is set, the transforms ndsft_trafo and ndsft_adjoint do not work. | |
#define | NFSFT_NO_FAST_ALGORITHM (1U << 14) |
If this flag is set, the transforms nfsft_trafo and nfsft_adjoint do not work. | |
#define | NFSFT_ZERO_F_HAT (1U << 16) |
If this flag is set, the transforms nfsft_adjoint and ndsft_adjoint set all unused entries in f_hat not corresponding to spherical Fourier coefficients to zero. | |
#define | NFSFT_INDEX(k, n, plan) ((2*(plan)->N+2)*((plan)->N-n+1)+(plan)->N+k+1) |
This helper macro expands to the index ![]() ![]() ![]() ![]()
. | |
#define | NFSFT_F_HAT_SIZE(N) ((2*N+2)*(2*N+2)) |
This helper macro expands to the logical size of a spherical Fourier coefficients array for a bandwidth N. | |
#define | FPT_NO_FAST_ALGORITHM (1U << 2) |
If set, TODO complete comment. | |
#define | FPT_NO_DIRECT_ALGORITHM (1U << 3) |
If set, TODO complete comment. | |
#define | FPT_NO_STABILIZATION (1U << 0) |
If set, no stabilization will be used. | |
#define | FPT_PERSISTENT_DATA (1U << 4) |
If set, TODO complete comment. | |
#define | FPT_FUNCTION_VALUES (1U << 5) |
If set, the output are function values at Chebyshev nodes rather than Chebyshev coefficients. | |
#define | FPT_AL_SYMMETRY (1U << 6) |
TODO Don't use this flag! | |
#define | NFSOFT_NORMALIZED (1U << 0) |
By default, all computations are performed with respect to the unnormalized basis functions
If this flag is set, all computations are carried out using the
| |
#define | NFSOFT_USE_NDFT (1U << 1) |
If this flag is set, the fast NFSOFT algorithms (see nfsoft_trafo, nfsoft_adjoint) will use internally the exact but usually slower direct NDFT algorithm in favor of fast but approximative NFFT algorithm. | |
#define | NFSOFT_USE_DPT (1U << 2) |
If this flag is set, the fast NFSOFT algorithms (see nfsoft_trafo, nfsoft_adjoint) will use internally the usually slower direct DPT algorithm in favor of the fast FPT algorithm. | |
#define | NFSOFT_MALLOC_X (1U << 3) |
If this flag is set, the init methods (see nfsoft_init , nfsoft_init_advanced , and nfsoft_init_guru) will allocate memory and the method nfsoft_finalize will free the array x for you. | |
#define | NFSOFT_REPRESENT (1U << 4) |
If this flag is set, the Wigner-D functions will be normed such that they satisfy the representation property of the spherical harmonics as defined in the NFFT software package. | |
#define | NFSOFT_MALLOC_F_HAT (1U << 5) |
If this flag is set, the init methods (see nfsoft_init , nfsoft_init_advanced , and nfsoft_init_guru) will allocate memory and the method nfsoft_finalize will free the array f_hat for you. | |
#define | NFSOFT_MALLOC_F (1U << 6) |
If this flag is set, the init methods (see nfsoft_init , nfsoft_init_advanced , and nfsoft_init_guru) will allocate memory and the method nfsoft_finalize will free the array f for you. | |
#define | NFSOFT_PRESERVE_F_HAT (1U << 7) |
If this flag is set, it is guaranteed that during an execution of nfsoft_trafo the content of f_hat remains unchanged. | |
#define | NFSOFT_PRESERVE_X (1U << 8) |
If this flag is set, it is guaranteed that during an execution of nfsoft_trafo or nfsoft_adjoint the content of x remains unchanged. | |
#define | NFSOFT_PRESERVE_F (1U << 9) |
If this flag is set, it is guaranteed that during an execution of ndsoft_adjoint or nfsoft_adjoint the content of f remains unchanged. | |
#define | NFSOFT_DESTROY_F_HAT (1U << 10) |
If this flag is set, it is explicitely allowed that during an execution of nfsoft_trafo the content of f_hat may be changed. | |
#define | NFSOFT_DESTROY_X (1U << 11) |
If this flag is set, it is explicitely allowed that during an execution of nfsoft_trafo or nfsoft_adjoint the content of x may be changed. | |
#define | NFSOFT_DESTROY_F (1U << 12) |
If this flag is set, it is explicitely allowed that during an execution of ndsoft_adjoint or nfsoft_adjoint the content of f may be changed. | |
#define | NFSOFT_NO_STABILIZATION (1U << 13) |
If this flag is set, the fast NFSOFT algorithms (see nfsoft_trafo, nfsoft_adjoint) will use internally the FPT algorithm without the stabilization scheme and thus making bigger errors for higher bandwidth but becoming significantly faster. | |
#define | NFSOFT_CHOOSE_DPT (1U << 14) |
If this flag is set, the fast NFSOFT algorithms (see nfsoft_trafo, nfsoft_adjoint) will decide whether to use the DPT or FPT algorithm depending on which is faster for the chosen orders. | |
#define | NFSOFT_SOFT (1U << 15) |
If this flag is set, the fast NFSOFT algorithms (see nfsoft_trafo, nfsoft_adjoint) becomes a SOFT, i.e., we use equispaced nodes. | |
#define | NFSOFT_ZERO_F_HAT (1U << 16) |
If this flag is set, the transform nfsoft_adjoint sets all unused entries in f_hat not corresponding to SO(3) Fourier coefficients to zero. | |
#define | NFSOFT_INDEX(m, n, l, B) (((l)+((B)+1))+(2*(B)+2)*(((n)+((B)+1))+(2*(B)+2)*((m)+((B)+1)))) |
These macro expands to the index ![]() ![]() ![]() ![]() | |
#define | NFSOFT_INDEX_TWO(m, n, l, B) ((B+1)*(B+1)+(B+1)*(B+1)*(m+B)-((m-1)*m*(2*m-1)+(B+1)*(B+2)*(2*B+3))/6)+(posN(n,m,B))+(l-MAX(ABS(m),ABS(n))) |
#define | NFSOFT_F_HAT_SIZE(B) (((B)+1)*(4*((B)+1)*((B)+1)-1)/3) |
This macro expands to the logical size of a SO(3) Fourier coefficients array for a bandwidth B. | |
#define | LANDWEBER (1U<< 0) |
If this flag is set, the Landweber (Richardson) iteration is used to compute an inverse transform. | |
#define | STEEPEST_DESCENT (1U<< 1) |
If this flag is set, the method of steepest descent (gradient) is used to compute an inverse transform. | |
#define | CGNR (1U<< 2) |
If this flag is set, the conjugate gradient method for the normal equation of first kind is used to compute an inverse transform. | |
#define | CGNE (1U<< 3) |
If this flag is set, the conjugate gradient method for the normal equation of second kind is used to compute an inverse transform. | |
#define | NORMS_FOR_LANDWEBER (1U<< 4) |
If this flag is set, the Landweber iteration updates the member dot_r_iter. | |
#define | PRECOMPUTE_WEIGHT (1U<< 5) |
If this flag is set, the samples are weighted, eg to cope with varying sampling density. | |
#define | PRECOMPUTE_DAMP (1U<< 6) |
If this flag is set, the Fourier coefficients are damped, eg to favour fast decaying coefficients. | |
Typedefs | |
typedef void *(* | nfft_malloc_type_function )(size_t n) |
typedef void(* | nfft_free_type_function )(void *p) |
typedef void(* | nfft_die_type_function )(const char *errString) |
typedef struct fpt_set_s_ * | fpt_set |
A set of precomputed data for a set of DPT transforms of equal maximum length. | |
typedef struct nfsoft_plan_ | nfsoft_plan |
Structure for a NFSOFT transform plan. | |
Functions | |
void * | nfft_malloc (size_t n) |
Include header for FFTW3 library for its complex type. | |
void | nfft_free (void *p) |
void | nfft_die (const char *s) |
void | ndft_trafo (nfft_plan *ths) |
Computes a NDFT, see the definition. | |
void | ndft_adjoint (nfft_plan *ths) |
Computes an adjoint NDFT, see the definition. | |
void | nfft_trafo (nfft_plan *ths) |
Computes a NFFT, see the definition. | |
void | nfft_trafo_1d (nfft_plan *ths) |
void | nfft_trafo_2d (nfft_plan *ths) |
void | nfft_trafo_3d (nfft_plan *ths) |
void | nfft_adjoint (nfft_plan *ths) |
Computes an adjoint NFFT, see the definition. | |
void | nfft_adjoint_1d (nfft_plan *ths) |
void | nfft_adjoint_2d (nfft_plan *ths) |
void | nfft_adjoint_3d (nfft_plan *ths) |
void | nfft_init_1d (nfft_plan *ths, int N1, int M) |
Initialisation of a transform plan, wrapper d=1. | |
void | nfft_init_2d (nfft_plan *ths, int N1, int N2, int M) |
Initialisation of a transform plan, wrapper d=2. | |
void | nfft_init_3d (nfft_plan *ths, int N1, int N2, int N3, int M) |
Initialisation of a transform plan, wrapper d=3. | |
void | nfft_init (nfft_plan *ths, int d, int *N, int M) |
Initialisation of a transform plan, simple. | |
void | nfft_init_advanced (nfft_plan *ths, int d, int *N, int M, unsigned nfft_flags_on, unsigned nfft_flags_off) |
Initialisation of a transform plan, advanced. | |
void | nfft_init_guru (nfft_plan *ths, int d, int *N, int M, int *n, int m, unsigned nfft_flags, unsigned fftw_flags) |
Initialisation of a transform plan, guru. | |
void | nfft_precompute_one_psi (nfft_plan *ths) |
Precomputation for a transform plan. | |
void | nfft_precompute_full_psi (nfft_plan *ths) |
Superceded by nfft_precompute_one_psi. | |
void | nfft_precompute_psi (nfft_plan *ths) |
Superceded by nfft_precompute_one_psi. | |
void | nfft_precompute_lin_psi (nfft_plan *ths) |
Superceded by nfft_precompute_one_psi. | |
void | nfft_check (nfft_plan *ths) |
Checks a transform plan for frequently used bad parameter. | |
void | nfft_finalize (nfft_plan *ths) |
Destroys a transform plan. | |
void | nfct_init_1d (nfct_plan *ths_plan, int N0, int M_total) |
Creates a 1-dimensional transform plan. | |
void | nfct_init_2d (nfct_plan *ths_plan, int N0, int N1, int M_total) |
Creates a 3-dimensional transform plan. | |
void | nfct_init_3d (nfct_plan *ths_plan, int N0, int N1, int N2, int M_total) |
Creates a 3-dimensional transform plan. | |
void | nfct_init (nfct_plan *ths_plan, int d, int *N, int M_total) |
Creates a d-dimensional transform plan. | |
void | nfct_init_guru (nfct_plan *ths_plan, int d, int *N, int M_total, int *n, int m, unsigned nfct_flags, unsigned fftw_flags) |
Creates a d-dimensional transform plan. | |
void | nfct_precompute_psi (nfct_plan *ths_plan) |
precomputes the values psi if the PRE_PSI is set the application program has to call this routine after setting the nodes this_plan->x | |
void | nfct_trafo (nfct_plan *ths_plan) |
executes a NFCT (approximate,fast), computes for ![]() ![]() | |
void | ndct_trafo (nfct_plan *ths_plan) |
executes a NDCT (exact,slow), computes for ![]() ![]() | |
void | nfct_adjoint (nfct_plan *ths_plan) |
executes a transposed NFCT (approximate,fast), computes for ![]() ![]() | |
void | ndct_adjoint (nfct_plan *ths_plan) |
executes a direct transposed NDCT (exact,slow), computes for ![]() ![]() | |
void | nfct_finalize (nfct_plan *ths_plan) |
Destroys a plan. | |
double | nfct_phi_hut (nfct_plan *ths_plan, int k, int d) |
do some adjustments (N,n) then compute PHI_HUT | |
double | nfct_phi (nfct_plan *ths_plan, double x, int d) |
do some adjustments (N,n) then compute PHI | |
int | nfct_fftw_2N (int n) |
returns 2(n-1), fftw related issue | |
int | nfct_fftw_2N_rev (int n) |
returns 0.5n+1, fftw related issue | |
void | nfst_init_1d (nfst_plan *ths_plan, int N0, int M_total) |
Creates a 1-dimensional transform plan. | |
void | nfst_init_2d (nfst_plan *ths_plan, int N0, int N1, int M_total) |
Creates a 3-dimensional transform plan. | |
void | nfst_init_3d (nfst_plan *ths_plan, int N0, int N1, int N2, int M_total) |
Creates a 3-dimensional transform plan. | |
void | nfst_init (nfst_plan *ths_plan, int d, int *N, int M_total) |
Creates a d-dimensional transform plan. | |
void | nfst_init_m (nfst_plan *ths_plan, int d, int *N, int M_total, int m) |
Creates a d-dimensional transform plan with pcific m. | |
void | nfst_init_guru (nfst_plan *ths_plan, int d, int *N, int M_total, int *n, int m, unsigned nfst_flags, unsigned fftw_flags) |
Creates a d-dimensional transform plan. | |
void | nfst_precompute_psi (nfst_plan *ths_plan) |
precomputes the values psi if the PRE_PSI is set the application program has to call this routine after setting the nodes this_plan->x | |
void | nfst_trafo (nfst_plan *ths_plan) |
executes a NFST (approximate,fast), computes for ![]() ![]() | |
void | ndst_trafo (nfst_plan *ths_plan) |
executes a NDST (exact,slow), computes for ![]() ![]() | |
void | nfst_adjoint (nfst_plan *ths_plan) |
executes a transposed NFST (approximate,fast), computes for ![]() ![]() | |
void | ndst_adjoint (nfst_plan *ths_plan) |
executes a direct transposed NDST (exact,slow), computes for ![]() ![]() | |
void | nfst_finalize (nfst_plan *ths_plan) |
Destroys a plan. | |
void | nfst_full_psi (nfst_plan *ths_plan, double eps) |
more memory usage, a bit faster | |
double | nfst_phi_hut (nfst_plan *ths_plan, int k, int d) |
do some adjustments (N,n) then compute PHI_HUT | |
double | nfst_phi (nfst_plan *ths_plan, double x, int d) |
do some adjustments (N,n) then compute PHI | |
int | nfst_fftw_2N (int n) |
returns 2(n+1), fftw related issue | |
int | nfst_fftw_2N_rev (int n) |
returns 0.5n-1, fftw related issue | |
void | nnfft_init (nnfft_plan *ths_plan, int d, int N_total, int M_total, int *N) |
Creates a transform plan. | |
void | nnfft_init_guru (nnfft_plan *ths_plan, int d, int N_total, int M_total, int *N, int *N1, int m, unsigned nnfft_flags) |
Creates a transform plan. | |
void | nndft_trafo (nnfft_plan *ths_plan) |
Executes a direct NNDFT, i.e. | |
void | nndft_adjoint (nnfft_plan *ths_plan) |
Executes a direct adjoint NNDFT, i.e. | |
void | nnfft_trafo (nnfft_plan *ths_plan) |
Executes a NNFFT, i.e. | |
void | nnfft_adjoint (nnfft_plan *ths_plan) |
Executes a adjoint NNFFT, i.e. | |
void | nnfft_precompute_lin_psi (nnfft_plan *ths_plan) |
Precomputation for a transform plan. | |
void | nnfft_precompute_psi (nnfft_plan *ths_plan) |
Precomputation for a transform plan. | |
void | nnfft_precompute_full_psi (nnfft_plan *ths_plan) |
Precomputation for a transform plan. | |
void | nnfft_precompute_phi_hut (nnfft_plan *ths_plan) |
Precomputation for a transform plan. | |
void | nnfft_finalize (nnfft_plan *ths_plan) |
Destroys a plan. | |
void | nsdft_trafo (nsfft_plan *ths) |
Executes an NSDFT, computes for ![]()
| |
void | nsdft_adjoint (nsfft_plan *ths) |
Executes an adjoint NSFFT, computes for ![]()
| |
void | nsfft_trafo (nsfft_plan *ths) |
Executes an NSFFT, computes fast and approximate for ![]()
| |
void | nsfft_adjoint (nsfft_plan *ths) |
Executes an adjoint NSFFT, computes fast and approximate for ![]()
| |
void | nsfft_cp (nsfft_plan *ths, nfft_plan *ths_nfft) |
Copy coefficients from nsfft plan to a nfft plan. | |
void | nsfft_init_random_nodes_coeffs (nsfft_plan *ths) |
Initialisation of pseudo random nodes and coefficients. | |
void | nsfft_init (nsfft_plan *ths, int d, int J, int M, int m, unsigned flags) |
Initialisation of a transform plan. | |
void | nsfft_finalize (nsfft_plan *ths) |
Destroys a transform plan. | |
void | mri_inh_2d1d_trafo (mri_inh_2d1d_plan *ths) |
Executes a mri transformation considering the field inhomogeneity with the 2d1d method, i.e. | |
void | mri_inh_2d1d_adjoint (mri_inh_2d1d_plan *ths) |
Executes an adjoint mri transformation considering the field inhomogeneity with the 2d1d method, i.e. | |
void | mri_inh_2d1d_init_guru (mri_inh_2d1d_plan *ths, int *N, int M, int *n, int m, double sigma, unsigned nfft_flags, unsigned fftw_flags) |
Creates a transform plan. | |
void | mri_inh_2d1d_finalize (mri_inh_2d1d_plan *ths) |
Destroys a plan. | |
void | mri_inh_3d_trafo (mri_inh_3d_plan *ths) |
Executes a mri transformation considering the field inhomogeneity with the 3d method, i.e. | |
void | mri_inh_3d_adjoint (mri_inh_3d_plan *ths) |
Executes an adjoint mri transformation considering the field inhomogeneity with the 3d method, i.e. | |
void | mri_inh_3d_init_guru (mri_inh_3d_plan *ths, int *N, int M, int *n, int m, double sigma, unsigned nfft_flags, unsigned fftw_flags) |
void | mri_inh_3d_finalize (mri_inh_3d_plan *ths) |
Destroys a plan. | |
void | nfsft_init (nfsft_plan *plan, int N, int M) |
Creates a transform plan. | |
void | nfsft_init_advanced (nfsft_plan *plan, int N, int M, unsigned int nfsft_flags) |
Creates a transform plan. | |
void | nfsft_init_guru (nfsft_plan *plan, int N, int M, unsigned int nfsft_flags, unsigned int nfft_flags, int nfft_cutoff) |
Creates a transform plan. | |
void | nfsft_precompute (int N, double kappa, unsigned int nfsft_flags, unsigned int fpt_flags) |
Performes precomputation up to the next power of two with respect to a given bandwidth ![]() | |
void | nfsft_forget (void) |
Forgets all precomputed data. | |
void | ndsft_trafo (nfsft_plan *plan) |
Executes a direct NDSFT, i.e. | |
void | ndsft_adjoint (nfsft_plan *plan) |
Executes a direct adjoint NDSFT, i.e. | |
void | nfsft_trafo (nfsft_plan *plan) |
Executes a NFSFT, i.e. | |
void | nfsft_adjoint (nfsft_plan *plan) |
Executes an adjoint NFSFT, i.e. | |
void | nfsft_finalize (nfsft_plan *plan) |
Destroys a plan. | |
void | nfsft_precompute_x (nfsft_plan *plan) |
fpt_set | fpt_init (const int M, const int t, const unsigned int flags) |
Initializes a set of precomputed data for DPT transforms of equal length. | |
void | fpt_precompute (fpt_set set, const int m, double *alpha, double *beta, double *gam, int k_start, const double threshold) |
Computes the data required for a single DPT transform. | |
void | dpt_trafo (fpt_set set, const int m, const fftw_complex *x, fftw_complex *y, const int k_end, const unsigned int flags) |
Computes a single DPT transform. | |
void | fpt_trafo (fpt_set set, const int m, const fftw_complex *x, fftw_complex *y, const int k_end, const unsigned int flags) |
Computes a single DPT transform. | |
void | dpt_transposed (fpt_set set, const int m, fftw_complex *x, fftw_complex *y, const int k_end, const unsigned int flags) |
Computes a single DPT transform. | |
void | fpt_transposed (fpt_set set, const int m, fftw_complex *x, fftw_complex *y, const int k_end, const unsigned int flags) |
Computes a single DPT transform. | |
void | fpt_finalize (fpt_set set) |
int | posN (int n, int m, int B) |
void | nfsoft_precompute (nfsoft_plan *plan) |
Functions for NFSOFT plans. | |
fpt_set | SO3_single_fpt_init (int l, int k, int m, unsigned int flags, int kappa) |
Computes the FPT transform. | |
void | SO3_fpt (fftw_complex *coeffs, fpt_set set, int l, int k, int m, unsigned int nfsoft_flags) |
void | SO3_fpt_transposed (fftw_complex *coeffs, fpt_set set, int l, int k, int m, unsigned int nfsoft_flags) |
void | nfsoft_init (nfsoft_plan *plan, int N, int M) |
Creates a NFSOFT transform plan. | |
void | nfsoft_init_advanced (nfsoft_plan *plan, int N, int M, unsigned int nfsoft_flags) |
Creates a NFSOFT transform plan. | |
void | nfsoft_init_guru (nfsoft_plan *plan, int N, int M, unsigned int nfsoft_flags, unsigned int nfft_flags, int nfft_cutoff, int fpt_kappa) |
Creates a NFSOFT transform plan. | |
void | nfsoft_trafo (nfsoft_plan *plan_nfsoft) |
Executes a NFSOFT, i.e. | |
void | nfsoft_adjoint (nfsoft_plan *plan_nfsoft) |
Executes an adjoint NFSOFT, i.e. | |
void | nfsoft_finalize (nfsoft_plan *plan) |
Destroys a plan. | |
void | solver_init_advanced_complex (solver_plan_complex *ths, mv_plan_complex *mv, unsigned flags) |
void | solver_init_complex (solver_plan_complex *ths, mv_plan_complex *mv) |
void | solver_before_loop_complex (solver_plan_complex *ths) |
void | solver_loop_one_step_complex (solver_plan_complex *ths) |
void solver_loop_one_step | |
void | solver_finalize_complex (solver_plan_complex *ths) |
void solver_finalize | |
void | solver_init_advanced_double (solver_plan_double *ths, mv_plan_double *mv, unsigned flags) |
void solver_finalize | |
void | solver_init_double (solver_plan_double *ths, mv_plan_double *mv) |
void | solver_before_loop_double (solver_plan_double *ths) |
void | solver_loop_one_step_double (solver_plan_double *ths) |
void solver_loop_one_step | |
void | solver_finalize_double (solver_plan_double *ths) |
void solver_finalize | |
Variables | |
nfft_malloc_type_function | nfft_malloc_hook |
nfft_free_type_function | nfft_free_hook |
nfft_die_type_function | nfft_die_hook |
Header file for NFFT3
Definition in file nfft3.h.
#define MACRO_MV_PLAN | ( | float_type | ) |
typedef void *(* nfft_malloc_type_function)(size_t n) |
typedef void(* nfft_free_type_function)(void *p) |
void * nfft_malloc | ( | size_t | n | ) |
Include header for FFTW3 library for its complex type.
Our malloc
function
n | The number of bytes to allocate |
Definition at line 29 of file malloc.c.
References nfft_malloc(), and nfft_malloc_hook.
Referenced by comparison_fft(), fastsum_init_guru(), fastsum_trafo(), fgt_init_guru(), fgt_init_node_dependent(), fgt_test_andersson(), fgt_test_error(), fgt_test_error_p(), fgt_test_simple(), fpt_init(), fpt_precompute(), glacier_cv(), inverse_linogram_fft(), inverse_mpolar_fft(), inverse_polar_fft(), Inverse_Radon_trafo(), linogram_dft(), linogram_fft(), main(), mpolar_dft(), mpolar_fft(), mri_inh_2d1d_adjoint(), mri_inh_2d1d_init_guru(), mri_inh_2d1d_trafo(), mri_inh_3d_adjoint(), mri_inh_3d_trafo(), nfct_init(), nfct_init_guru(), nfft_init(), nfft_init_guru(), nfft_malloc(), nfft_voronoi_weights_S2(), nfsft_init_guru(), nfsft_precompute(), nfsoft_init_guru(), nfst_full_psi(), nfst_init(), nfst_init_guru(), nnfft_init(), nnfft_init_guru(), nnfft_precompute_phi_hut(), polar_dft(), polar_fft(), Radon_trafo(), reconstruct(), SO3_single_fpt_init(), solver_init_advanced_double(), taylor_init(), and taylor_time_accuracy().
void nfft_free | ( | void * | p | ) |
Our free
function
p | Pointer to the memory region to free |
Definition at line 50 of file malloc.c.
References nfft_free(), and nfft_free_hook.
Referenced by comparison_fft(), fastsum_finalize(), fgt_finalize(), fgt_test_andersson(), fgt_test_error(), fgt_test_simple(), fpt_init(), fpt_precompute(), inverse_linogram_fft(), inverse_mpolar_fft(), inverse_polar_fft(), Inverse_Radon_trafo(), linogram_dft(), linogram_fft(), main(), mpolar_dft(), mpolar_fft(), mri_inh_2d1d_adjoint(), mri_inh_2d1d_finalize(), mri_inh_2d1d_trafo(), mri_inh_3d_adjoint(), mri_inh_3d_finalize(), mri_inh_3d_trafo(), nfct_adjoint(), nfct_finalize(), nfct_trafo(), nfft_finalize(), nfft_free(), nfft_voronoi_weights_S2(), nfsft_finalize(), nfsft_forget(), nfsft_init_guru(), nfsft_precompute(), nfst_finalize(), nfst_full_psi(), nnfft_finalize(), polar_dft(), polar_fft(), Radon_trafo(), reconstruct(), solver_finalize_complex(), solver_finalize_double(), taylor_finalize(), and taylor_time_accuracy().