Highly Efficient FFT for Exascale: HeFFTe v2.4
Loading...
Searching...
No Matches
heffte::real2real_executor< fft_backend_tag, prepost_processor > Struct Template Reference

Template algorithm for the Sine and Cosine transforms. More...

#include <heffte_r2r_executor.h>

Public Member Functions

template<typename index >
 real2real_executor (typename backend::device_instance< typename backend::buffer_traits< fft_backend_tag >::location >::stream_type cstream, box3d< index > const box, int dimension)
 Construct a plan for batch 1D transforms.
 
template<typename index >
 real2real_executor (typename backend::device_instance< typename backend::buffer_traits< fft_backend_tag >::location >::stream_type cstream, box3d< index > const, int, int)
 Construct a plan for batch 2D transforms, not implemented currently.
 
template<typename index >
 real2real_executor (typename backend::device_instance< typename backend::buffer_traits< fft_backend_tag >::location >::stream_type cstream, box3d< index > const)
 Construct a plan for a single 3D transform, not implemented currently.
 
template<typename scalar_type >
void forward (scalar_type data[], scalar_type workspace[]) const
 Forward transform.
 
template<typename scalar_type >
void backward (scalar_type data[], scalar_type workspace[]) const
 Inverse transform.
 
template<typename precision >
void forward (precision const[], std::complex< precision >[]) const
 Placeholder for template type consistency, should never be called.
 
template<typename precision >
void backward (std::complex< precision > indata[], precision outdata[]) const
 Placeholder for template type consistency, should never be called.
 
int box_size () const override
 Returns the size of the box.
 
size_t workspace_size () const override
 Returns the size of the box.
 
virtual void forward (float data[], float *workspace) const override
 Forward r2r, single precision.
 
virtual void forward (double data[], double *workspace) const override
 Forward r2r, double precision.
 
virtual void backward (float data[], float *workspace) const override
 Backward r2r, single precision.
 
virtual void backward (double data[], double *workspace) const override
 Backward r2r, double precision.
 
virtual void forward (std::complex< float >[], std::complex< float > *) const
 Will not be used, suppresses compiler warnings.
 
virtual void forward (std::complex< double >[], std::complex< double > *) const
 Will not be used, suppresses compiler warnings.
 
virtual void forward (float const [], std::complex< float >[], std::complex< float > *) const
 Will not be used, suppresses compiler warnings.
 
virtual void forward (double const [], std::complex< double >[], std::complex< double > *) const
 Will not be used, suppresses compiler warnings.
 
virtual void backward (std::complex< float >[], std::complex< float > *) const
 Will not be used, suppresses compiler warnings.
 
virtual void backward (std::complex< double >[], std::complex< double > *) const
 Will not be used, suppresses compiler warnings.
 
virtual void backward (std::complex< float >[], float[], std::complex< float > *) const
 Will not be used, suppresses compiler warnings.
 
virtual void backward (std::complex< double >[], double[], std::complex< double > *) const
 Will not be used, suppresses compiler warnings.
 
- Public Member Functions inherited from heffte::executor_base
virtual ~executor_base ()=default
 Virtual destructor.
 
virtual int complex_size () const
 Return the size of the complex-box (r2c executors).
 

Detailed Description

template<typename fft_backend_tag, typename prepost_processor>
struct heffte::real2real_executor< fft_backend_tag, prepost_processor >

Template algorithm for the Sine and Cosine transforms.

Template Parameters
fft_backend_tagindicate the FFT backend to use, e.g., fftw or cufft.
prepost_processora collection of methods for pre-post processing the data before/after applying the FFT

Member Function Documentation

◆ box_size()

template<typename fft_backend_tag , typename prepost_processor >
int heffte::real2real_executor< fft_backend_tag, prepost_processor >::box_size ( ) const
inlineoverridevirtual

Returns the size of the box.

Reimplemented from heffte::executor_base.

◆ workspace_size()

template<typename fft_backend_tag , typename prepost_processor >
size_t heffte::real2real_executor< fft_backend_tag, prepost_processor >::workspace_size ( ) const
inlineoverridevirtual

Returns the size of the box.

Reimplemented from heffte::executor_base.

◆ forward() [1/6]

template<typename fft_backend_tag , typename prepost_processor >
virtual void heffte::real2real_executor< fft_backend_tag, prepost_processor >::forward ( float data[],
float * workspace ) const
inlineoverridevirtual

Forward r2r, single precision.

Reimplemented from heffte::executor_base.

◆ forward() [2/6]

template<typename fft_backend_tag , typename prepost_processor >
virtual void heffte::real2real_executor< fft_backend_tag, prepost_processor >::forward ( double data[],
double * workspace ) const
inlineoverridevirtual

Forward r2r, double precision.

Reimplemented from heffte::executor_base.

◆ backward() [1/6]

template<typename fft_backend_tag , typename prepost_processor >
virtual void heffte::real2real_executor< fft_backend_tag, prepost_processor >::backward ( float data[],
float * workspace ) const
inlineoverridevirtual

Backward r2r, single precision.

Reimplemented from heffte::executor_base.

◆ backward() [2/6]

template<typename fft_backend_tag , typename prepost_processor >
virtual void heffte::real2real_executor< fft_backend_tag, prepost_processor >::backward ( double data[],
double * workspace ) const
inlineoverridevirtual

Backward r2r, double precision.

Reimplemented from heffte::executor_base.

◆ forward() [3/6]

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

Will not be used, suppresses compiler warnings.

Reimplemented from heffte::executor_base.

◆ forward() [4/6]

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

Will not be used, suppresses compiler warnings.

Reimplemented from heffte::executor_base.

◆ forward() [5/6]

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

Will not be used, suppresses compiler warnings.

Reimplemented from heffte::executor_base.

◆ forward() [6/6]

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

Will not be used, suppresses compiler warnings.

Reimplemented from heffte::executor_base.

◆ backward() [3/6]

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

Will not be used, suppresses compiler warnings.

Reimplemented from heffte::executor_base.

◆ backward() [4/6]

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

Will not be used, suppresses compiler warnings.

Reimplemented from heffte::executor_base.

◆ backward() [5/6]

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

Will not be used, suppresses compiler warnings.

Reimplemented from heffte::executor_base.

◆ backward() [6/6]

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

Will not be used, suppresses compiler warnings.

Reimplemented from heffte::executor_base.


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