Diana Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
QFFTWRealComplexPlan Class Reference

Interface to FFTW's FFT plans. More...

Public Member Functions

 QFFTWRealComplexPlan (QVector &realData, QVectorC &complexData, QFFT::FFTDirection direction)
 Construct a plan from a QVector and QVectorC. More...
 
 QFFTWRealComplexPlan (QVector &realComplexData, QFFT::FFTDirection direction)
 Construct a plan from a QVector and QVectorC and resize them. More...
 
virtual ~QFFTWRealComplexPlan ()
 Construct a plan for an in place FFT, but resize it. More...
 
size_t GetSize () const
 Return the size of the plan. More...
 
virtual void Execute ()
 Execute the plan. More...
 
QVectorGetRealData ()
 Get the real data vector. More...
 
const QVectorGetRealData () const
 Get the real data vector. More...
 
QVectorCGetComplexData ()
 Get the complex data vector. More...
 
const QVectorCGetComplexData () const
 Get the complex data vector. More...
 

Static Public Member Functions

static QFFTWRealComplexPlan CreateForwardPlan (QVector &realData, QVectorC &complexData)
 Static method to create a forward plan. More...
 
static QFFTWRealComplexPlan CreateBackwardPlan (QVectorC &complexData, QVector &realData)
 Static method to create a backward plan. More...
 

Protected Member Functions

void Build (QFFT::FFTDirection direction)
 Static method to create a forward plan. More...
 

Protected Attributes

int fSize
 The size of the plan. More...
 
QVector fRealData
 The real data, but does not own the memory vector. More...
 
QVectorC fComplexData
 The complex data, but does not own the memory vector. More...
 

Detailed Description

Interface to FFTW's FFT plans.

Author
J. Ouellet

Creates a plan to perform either a forward or backward FFT on QVector and QVectorC data. Performs no memory copying or movement not required for the FFT. This should be the minimal required time for an FFT.

Important to note that this class does not own the QVector and QVectorC that the data are being moved between. If the QVector and QVectorC are deleted, then you will get a SEGFAULT! Use with caution!

Definition at line 33 of file QFFTWPlan.hh.

Constructor & Destructor Documentation

◆ QFFTWRealComplexPlan() [1/2]

QFFTWRealComplexPlan::QFFTWRealComplexPlan ( QVector realData,
QVectorC complexData,
QFFT::FFTDirection  direction 
)

Construct a plan from a QVector and QVectorC.

◆ QFFTWRealComplexPlan() [2/2]

QFFTWRealComplexPlan::QFFTWRealComplexPlan ( QVector realComplexData,
QFFT::FFTDirection  direction 
)

Construct a plan from a QVector and QVectorC and resize them.

Construct a plan for an in place FFT

◆ ~QFFTWRealComplexPlan()

QFFTWRealComplexPlan::~QFFTWRealComplexPlan ( )
virtual

Construct a plan for an in place FFT, but resize it.

Destroy the plan

Definition at line 40 of file QFFTWPlan.cc.

Member Function Documentation

◆ Build()

void QFFTWRealComplexPlan::Build ( QFFT::FFTDirection  direction)
protected

Static method to create a forward plan.

Static method to create a backward plan

Build the plan

Definition at line 68 of file QFFTWPlan.cc.

References QFFT::kBackward, QFFT::kForward, QERR_SIZE_NOT_MATCH, and QERR_UNKNOWN_ERR.

◆ CreateBackwardPlan()

Diana::QFFTWRealComplexPlan QFFTWRealComplexPlan::CreateBackwardPlan ( QVectorC complexData,
QVector realData 
)
static

Static method to create a backward plan.

Definition at line 56 of file QFFTWPlan.cc.

References QFFT::kBackward.

◆ CreateForwardPlan()

Diana::QFFTWRealComplexPlan QFFTWRealComplexPlan::CreateForwardPlan ( QVector realData,
QVectorC complexData 
)
static

Static method to create a forward plan.

Definition at line 52 of file QFFTWPlan.cc.

References QFFT::kForward.

◆ Execute()

void QFFTWRealComplexPlan::Execute ( )
virtual

Execute the plan.

Definition at line 46 of file QFFTWPlan.cc.

◆ GetComplexData() [1/2]

QVectorC& QFFTWRealComplexPlan::GetComplexData ( )
inline

Get the complex data vector.

Definition at line 55 of file QFFTWPlan.hh.

References fComplexData.

◆ GetComplexData() [2/2]

const QVectorC& QFFTWRealComplexPlan::GetComplexData ( ) const
inline

Get the complex data vector.

Definition at line 57 of file QFFTWPlan.hh.

References fComplexData.

◆ GetRealData() [1/2]

QVector& QFFTWRealComplexPlan::GetRealData ( )
inline

Get the real data vector.

Definition at line 51 of file QFFTWPlan.hh.

References fRealData.

◆ GetRealData() [2/2]

const QVector& QFFTWRealComplexPlan::GetRealData ( ) const
inline

Get the real data vector.

Definition at line 53 of file QFFTWPlan.hh.

References fRealData.

◆ GetSize()

size_t QFFTWRealComplexPlan::GetSize ( ) const
inline

Return the size of the plan.

Definition at line 47 of file QFFTWPlan.hh.

References fSize.

Member Data Documentation

◆ fComplexData

QVectorC QFFTWRealComplexPlan::fComplexData
protected

The complex data, but does not own the memory vector.

Definition at line 75 of file QFFTWPlan.hh.

Referenced by GetComplexData().

◆ fRealData

QVector QFFTWRealComplexPlan::fRealData
protected

The real data, but does not own the memory vector.

Definition at line 73 of file QFFTWPlan.hh.

Referenced by GetRealData().

◆ fSize

int QFFTWRealComplexPlan::fSize
protected

The size of the plan.

Definition at line 71 of file QFFTWPlan.hh.

Referenced by GetSize().


The documentation for this class was generated from the following files: