CiCueTea v0.0.1
Loading...
Searching...
No Matches
jsa::cicuetea::DFT Class Reference

The Wrapper class for other FFTs provided by different libraries. More...

#include <FFT.hpp>

Public Member Functions

 DFT (size_t fftSize)
 Constructor.
 DFT ()
 Constructs an unplanned DFT: no backend state is created.
 ~DFT ()
 Destructor.
 DFT (DFT &&) noexcept
 Move constructor.
DFToperator= (DFT &&) noexcept
 Move assignment.
 DFT (const DFT &)=delete
 Copy constructor (deleted: a DFT owns backend-specific state).
DFToperator= (const DFT &)=delete
 Copy assignment (deleted: a DFT owns backend-specific state).
void dft (const Eigen::ArrayXcd &X, Eigen::ArrayXcd &Y)
 Computes the Discrete Fourier Transform (DFT) on 1D data.
void idft (const Eigen::ArrayXcd &X, Eigen::ArrayXcd &Y)
 Computes the inverse Discrete Fourier Transform (IDFT) on 1D data.
void rdft (const Eigen::ArrayXd &x, Eigen::ArrayXcd &X)
 Computes the forward Real Discrete Fourier Transform (RDFT) on 1D data.
void irdft (const Eigen::ArrayXcd &X, Eigen::ArrayXd &x)
 Computes the inverse Real Discrete Fourier Transform (IRDFT) on 1D data.
void dft (const Eigen::ArrayXXcd &X, Eigen::ArrayXXcd &Y)
 Computes the forward Discrete Fourier Transform (DFT) on 2D data.
void idft (const Eigen::ArrayXXcd &X, Eigen::ArrayXXcd &Y)
 Computes the inverse Discrete Fourier Transform (IDFT) on 2D data.
void rdft (const Eigen::ArrayXXd &x, Eigen::ArrayXXcd &X)
 Computes the forward Real Discrete Fourier Transform (RDFT) on 2D data.
void irdft (const Eigen::ArrayXXcd &X, Eigen::ArrayXXd &x)
 Computes the inverse Real Discrete Fourier Transform (IRDFT) on 2D data.

Static Public Member Functions

static std::string getName ()
 gets the name of the currently used backend.

Detailed Description

The Wrapper class for other FFTs provided by different libraries.

This is a pImpl based wrapper to other commonly known FFTs like

  • FFTW
  • Accelerate
  • MKL
  • PFFFT

It also provides interfaces for different "versions" of Fourier Transforms like dft and idft (a complex to complex transform), and rdft and irdft (a real to complex transform). Moreover, it also provides interfaces to process many DFTs when the data is based on a matrix; however it is simply calling the single DFTs repeatedly

Constructor & Destructor Documentation

◆ DFT() [1/2]

DFT::DFT ( size_t fftSize)

Constructor.

Parameters
fftSizeFFT size (power of two).

◆ DFT() [2/2]

DFT::DFT ( )
default

Constructs an unplanned DFT: no backend state is created.

Exists so owners (e.g. an inert NsgfCqt* object, see NsgfCqtCommon::isValid()) can hold a DFT member without planning one. Calling any transform on an unplanned DFT is undefined.

Member Function Documentation

◆ dft() [1/2]

void jsa::cicuetea::DFT::dft ( const Eigen::ArrayXcd & X,
Eigen::ArrayXcd & Y )

Computes the Discrete Fourier Transform (DFT) on 1D data.

Parameters
XInput array of complex values.
YOutput array of transformed complex values.

◆ dft() [2/2]

void jsa::cicuetea::DFT::dft ( const Eigen::ArrayXXcd & X,
Eigen::ArrayXXcd & Y )

Computes the forward Discrete Fourier Transform (DFT) on 2D data.

Parameters
XInput matrix of complex values.
YOutput matrix of transformed complex values.

◆ idft() [1/2]

void jsa::cicuetea::DFT::idft ( const Eigen::ArrayXcd & X,
Eigen::ArrayXcd & Y )

Computes the inverse Discrete Fourier Transform (IDFT) on 1D data.

Parameters
XInput array of complex values.
YOutput array of transformed complex values.

◆ idft() [2/2]

void jsa::cicuetea::DFT::idft ( const Eigen::ArrayXXcd & X,
Eigen::ArrayXXcd & Y )

Computes the inverse Discrete Fourier Transform (IDFT) on 2D data.

Parameters
XInput matrix of complex values.
YOutput matrix of transformed complex values.

◆ irdft() [1/2]

void jsa::cicuetea::DFT::irdft ( const Eigen::ArrayXcd & X,
Eigen::ArrayXd & x )

Computes the inverse Real Discrete Fourier Transform (IRDFT) on 1D data.

Parameters
XInput array of complex values.
xOutput array of transformed real values.

◆ irdft() [2/2]

void jsa::cicuetea::DFT::irdft ( const Eigen::ArrayXXcd & X,
Eigen::ArrayXXd & x )

Computes the inverse Real Discrete Fourier Transform (IRDFT) on 2D data.

Parameters
XInput matrix of complex values.
xOutput matrix of transformed real values.

◆ rdft() [1/2]

void jsa::cicuetea::DFT::rdft ( const Eigen::ArrayXd & x,
Eigen::ArrayXcd & X )

Computes the forward Real Discrete Fourier Transform (RDFT) on 1D data.

Parameters
xInput array of real values.
XOutput array of transformed complex values.

◆ rdft() [2/2]

void jsa::cicuetea::DFT::rdft ( const Eigen::ArrayXXd & x,
Eigen::ArrayXXcd & X )

Computes the forward Real Discrete Fourier Transform (RDFT) on 2D data.

Parameters
xInput matrix of real values.
XOutput matrix of transformed complex values.

The documentation for this class was generated from the following files:
  • /home/runner/work/CiCueTea/CiCueTea/Include/FFT.hpp
  • /home/runner/work/CiCueTea/CiCueTea/Source/FFT.cpp