| Bsoft 2.0.5 Bernard's software package

Macros | Typedefs | Functions
fft.h File Reference

General FFT for n-dimensional data. More...

`#include "Complex.h"`
`#include "Vector3.h"`
`#include <fftw3.h>`

Go to the source code of this file.

## Macros
#define | MAX_RANK 3

## Typedefs
typedef fftwf_complex | fft_complex
typedef int | fft_direction
typedef fftwf_plan | fft_plan

## Functions
fft_plan | fft_setup_plan (long x, long y, long z, fft_direction dir, int opt)
| Sets up a plan for fast Fourier transforms. More...
fft_plan | fft_setup_plan (Vector3< long > size, fft_direction dir, int opt)
int | fft_destroy_plan (fft_plan plan)
| Deallocates a plan for fast Fourier transforms. More...
int | fftw (fft_plan plan, Complex< float > *a)
| Fast Fourier transforms a data array. More...

## Detailed Description

General FFT for n-dimensional data.

Author
  Bernard Heymann

Date
  Created: 19980805
  Modified: 20151002 Implementing the FFTW library

Definition in file fft.h.

## Macro Definition Documentation

## ◆ MAX_RANK

#define MAX_RANK 3

Definition at line 18 of file fft.h.

## Typedef Documentation

## ◆ fft_complex

typedef fftwf_complex fft_complex

Definition at line 14 of file fft.h.

## ◆ fft_direction

typedef int fft_direction

Definition at line 15 of file fft.h.

## ◆ fft_plan

typedef fftwf_plan fft_plan

Definition at line 16 of file fft.h.

## Function Documentation

## ◆ fft_destroy_plan()

int fft_destroy_plan | ( | fft_plan | plan | ) |

Deallocates a plan for fast Fourier transforms.

Parameters

  plan | FFTW plan.

Returns
  int 0.

      FFTW library (www.fftw.org).

Definition at line 87 of file fft.cpp.

## ◆ fft_setup_plan() [1/2]

fft_plan fft_setup_plan | ( | long | x,
|  | long | y,
|  | long | z,
|  | fft_direction | dir,
|  | int | opt
| ) |  |

Sets up a plan for fast Fourier transforms.

Parameters

  x | x dimension.
  y | y dimension.
  z | z dimension.
  dir | direction of transformation (FFTW_FORWARD or FFTW_BACKWARD)
  opt | optimization (0=FFTW_ESTIMATE, 1=FFTW_MEASURE, 2=FFTW_PATIENT, 3=FFTW_EXHAUSTIVE).

Returns
  fft_plan FFTW plan.

      FFTW library (www.fftw.org).
      The size and direction determines the plan.
      Both FFTW versions 2 and 3 are supported.

Definition at line 31 of file fft.cpp.

## ◆ fft_setup_plan() [2/2]

fft_plan fft_setup_plan | ( | Vector3< long > | size,
|  | fft_direction | dir,
|  | int | opt
| ) |  |

Definition at line 74 of file fft.cpp.

## ◆ fftw()

int fftw | ( | fft_plan | plan,
|  | Complex< float > * | a
| ) |  |

Fast Fourier transforms a data array.

Parameters

  plan | Fourier transform plan.
  *a | data array.

Returns
  int error code.

      FFTW library (www.fftw.org).
      The transform plan encodes both the direction and size of the transform.
      The transformation is done in place and the resultant data are
      returned within the original array.

Definition at line 106 of file fft.cpp.