Highly Efficient FFT for Exascale: HeFFTe v2.3
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.
 
template<typename scalar_type >
std::complex< scalar_type > * align_pntr (std::complex< scalar_type > *p) const
 Moves the pointer forward to be aligned to the size of std::complex<scalar_type>, used for CUDA only.
 
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.
 
- Public Member Functions inherited from heffte::executor_base
virtual ~executor_base ()=default
 Virtual destructor.
 
virtual void forward (std::complex< float >[], std::complex< float > *) const
 Forward FFT, single precision.
 
virtual void forward (std::complex< double >[], std::complex< double > *) const
 Forward FFT, double precision.
 
virtual void backward (std::complex< float >[], std::complex< float > *) const
 Backward FFT, single precision.
 
virtual void backward (std::complex< double >[], std::complex< double > *) const
 Backward FFT, double precision.
 
virtual void forward (float const[], std::complex< float >[], std::complex< float > *) const
 Forward FFT real-to-complex, single precision.
 
virtual void forward (double const[], std::complex< double >[], std::complex< double > *) const
 Forward FFT real-to-complex, double precision.
 
virtual void backward (std::complex< float >[], float[], std::complex< float > *) const
 Backward FFT real-to-complex, single precision.
 
virtual void backward (std::complex< double >[], double[], std::complex< double > *) const
 Backward FFT real-to-complex, double precision.
 
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

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