NSFFT - Nonequispaced sparse FFT

Direct and fast computation of the nonequispaced FFT on the hyperbolic cross. More...

## Data Structures

struct | nsfft_plan
| data structure for an NSFFT (nonequispaced sparse fast Fourier transform) plan with double precision More...

## Macros

#define | NSDFT (1U<< 12)

## Functions

void | nsfft_trafo (nsfft_plan *ths)
void | nsfft_adjoint (nsfft_plan *ths)
void | nsfft_cp (nsfft_plan *ths, nfft_plan *ths_nfft)
void | nsfft_init_random_nodes_coeffs (nsfft_plan *ths)
void | nsfft_init (nsfft_plan *ths, int d, int J, int M, int m, unsigned flags)
void | nsfft_finalize (nsfft_plan *ths)

## Detailed Description

Direct and fast computation of the nonequispaced FFT on the hyperbolic cross.

## Macro Definition Documentation

## NSDFT

#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 nsfft_direct_trafo and nsdft_adjoint.

See also
  nsfft_init

Author
  Stefan Kunis

Definition at line 476 of file nfft3.h.

## Function Documentation

## nsfft_trafo()

void nsfft_trafo | ( | nsfft_plan * | ths | ) |

extern

Executes an NSFFT, computes fast and approximate for :

- ths The pointer to a nsfft plan

Author
  Markus Fenn, Stefan Kunis

Definition at line 1541 of file nsfft.c.

References nsfft_plan::d.

## nsfft_adjoint()

void nsfft_adjoint | ( | nsfft_plan * | ths | ) |

extern

Executes an adjoint NSFFT, computes fast and approximate for :

- ths The pointer to a nsfft plan

Author
  Stefan Kunis

Definition at line 1549 of file nsfft.c.

References nsfft_plan::d.

## nsfft_cp()

void nsfft_cp | ( | nsfft_plan * | ths,
|  | nfft_plan * | ths_nfft )

extern

Copy coefficients from nsfft plan to a nfft plan.

- ths Pointers to a nsfft plan and to a nfft plan

Author
  Markus Fenn, Stefan Kunis

Definition at line 599 of file nsfft.c.

References nsfft_plan::act_nfft_plan, nsfft_plan::d, nsfft_plan::f_hat, nsfft_plan::index_sparse_to_full, nsfft_plan::M_total, and nsfft_plan::N_total.

## nsfft_init_random_nodes_coeffs()

void nsfft_init_random_nodes_coeffs | ( | nsfft_plan * | ths | ) |

extern

Initialisation of pseudo random nodes and coefficients.

- ths The pointer to a nsfft plan

Author
  Markus Fenn, Stefan Kunis

Definition at line 723 of file nsfft.c.

References nsfft_plan::act_nfft_plan, nsfft_plan::d, nsfft_plan::f_hat, nsfft_plan::M_total, nsfft_plan::N_total, nfft_vrand_shifted_unit_double(), nfft_vrand_unit_complex(), nsfft_plan::x_021, and nsfft_plan::x_transposed.

## nsfft_init()

void nsfft_init | ( | nsfft_plan * | ths,
|  | int | d,
|  | int | J,
|  | int | M,
|  | int | m,
|  | unsigned | flags )

extern

Initialisation of a transform plan.

- ths The pointer to a nsfft plan
- d The dimension
- J The problem size
- M The number of nodes
- m nfft cut-off parameter
- flags

Author
  Markus Fenn, Stefan Kunis

Definition at line 1778 of file nsfft.c.

References UNUSED.

## nsfft_finalize()

void nsfft_finalize | ( | nsfft_plan * | ths | ) |

extern

Destroys a transform plan.

- ths The pointer to a nsfft plan

Author
  Markus Fenn, Stefan Kunis

Definition at line 1885 of file nsfft.c.

References nsfft_plan::d.