Highly Efficient FFT for Exascale: HeFFTe v2.4
Loading...
Searching...
No Matches
heffte::fftw_executor_r2c Class Reference

Wrapper to fftw3 API for real-to-complex transform with shortening of the data. More...

#include <heffte_backend_fftw.h>

Public Member Functions

template<typename index>
 fftw_executor_r2c (void *, box3d< index > const box, int dimension)
 Constructor defines the box and the dimension of reduction.
 
void forward (float const indata[], std::complex< float > outdata[], std::complex< float > *) const override
 Forward transform, single precision.
 
void backward (std::complex< float > indata[], float outdata[], std::complex< float > *) const override
 Backward transform, single precision.
 
void forward (double const indata[], std::complex< double > outdata[], std::complex< double > *) const override
 Forward transform, double precision.
 
void backward (std::complex< double > indata[], double outdata[], std::complex< double > *) const override
 Backward transform, double precision.
 
int box_size () const override
 Returns the size of the box with real data.
 
int complex_size () const override
 Returns the size of the box with complex coefficients.
 
size_t workspace_size () const override
 Return the size of the needed workspace.
 
virtual void forward (float[], float *) const
 Bring forth method that have not been overloaded.
 
virtual void forward (double[], double *) const
 Bring forth method that have not been overloaded.
 
virtual void forward (std::complex< float >[], std::complex< float > *) const
 Bring forth method that have not been overloaded.
 
virtual void forward (std::complex< double >[], std::complex< double > *) const
 Bring forth method that have not been overloaded.
 
virtual void backward (float[], float *) const
 Bring forth method that have not been overloaded.
 
virtual void backward (double[], double *) const
 Bring forth method that have not been overloaded.
 
virtual void backward (std::complex< float >[], std::complex< float > *) const
 Bring forth method that have not been overloaded.
 
virtual void backward (std::complex< double >[], std::complex< double > *) const
 Bring forth method that have not been overloaded.
 
- Public Member Functions inherited from heffte::executor_base
virtual ~executor_base ()=default
 Virtual destructor.
 

Detailed Description

Wrapper to fftw3 API for real-to-complex transform with shortening of the data.

Serves the same purpose of heffte::fftw_executor but only real input is accepted and only the unique (non-conjugate) coefficients are computed. All real arrays must have size of real_size() and all complex arrays must have size complex_size().

Constructor & Destructor Documentation

◆ fftw_executor_r2c()

template<typename index>
heffte::fftw_executor_r2c::fftw_executor_r2c ( void * ,
box3d< index > const box,
int dimension )
inline

Constructor defines the box and the dimension of reduction.

Note that the result sits in the box returned by box.r2c(dimension).

Member Function Documentation

◆ forward() [1/6]

void heffte::fftw_executor_r2c::forward ( float const indata[],
std::complex< float > outdata[],
std::complex< float > *  ) const
inlineoverridevirtual

Forward transform, single precision.

Reimplemented from heffte::executor_base.

◆ backward() [1/6]

void heffte::fftw_executor_r2c::backward ( std::complex< float > indata[],
float outdata[],
std::complex< float > *  ) const
inlineoverridevirtual

Backward transform, single precision.

Reimplemented from heffte::executor_base.

◆ forward() [2/6]

void heffte::fftw_executor_r2c::forward ( double const indata[],
std::complex< double > outdata[],
std::complex< double > *  ) const
inlineoverridevirtual

Forward transform, double precision.

Reimplemented from heffte::executor_base.

◆ backward() [2/6]

void heffte::fftw_executor_r2c::backward ( std::complex< double > indata[],
double outdata[],
std::complex< double > *  ) const
inlineoverridevirtual

Backward transform, double precision.

Reimplemented from heffte::executor_base.

◆ box_size()

int heffte::fftw_executor_r2c::box_size ( ) const
inlineoverridevirtual

Returns the size of the box with real data.

Reimplemented from heffte::executor_base.

◆ complex_size()

int heffte::fftw_executor_r2c::complex_size ( ) const
inlineoverridevirtual

Returns the size of the box with complex coefficients.

Reimplemented from heffte::executor_base.

◆ workspace_size()

size_t heffte::fftw_executor_r2c::workspace_size ( ) const
inlineoverridevirtual

Return the size of the needed workspace.

Reimplemented from heffte::executor_base.

◆ forward() [3/6]

virtual void heffte::executor_base::forward ( float [],
float *  ) const
inlinevirtual

Bring forth method that have not been overloaded.

Reimplemented from heffte::executor_base.

◆ forward() [4/6]

virtual void heffte::executor_base::forward ( double [],
double *  ) const
inlinevirtual

Bring forth method that have not been overloaded.

Reimplemented from heffte::executor_base.

◆ forward() [5/6]

virtual void heffte::executor_base::forward ( std::complex< float > [],
std::complex< float > *  ) const
inlinevirtual

Bring forth method that have not been overloaded.

Reimplemented from heffte::executor_base.

◆ forward() [6/6]

virtual void heffte::executor_base::forward ( std::complex< double > [],
std::complex< double > *  ) const
inlinevirtual

Bring forth method that have not been overloaded.

Reimplemented from heffte::executor_base.

◆ backward() [3/6]

virtual void heffte::executor_base::backward ( float [],
float *  ) const
inlinevirtual

Bring forth method that have not been overloaded.

Reimplemented from heffte::executor_base.

◆ backward() [4/6]

virtual void heffte::executor_base::backward ( double [],
double *  ) const
inlinevirtual

Bring forth method that have not been overloaded.

Reimplemented from heffte::executor_base.

◆ backward() [5/6]

virtual void heffte::executor_base::backward ( std::complex< float > [],
std::complex< float > *  ) const
inlinevirtual

Bring forth method that have not been overloaded.

Reimplemented from heffte::executor_base.

◆ backward() [6/6]

virtual void heffte::executor_base::backward ( std::complex< double > [],
std::complex< double > *  ) const
inlinevirtual

Bring forth method that have not been overloaded.

Reimplemented from heffte::executor_base.


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