Highly Efficient FFT for Exascale: HeFFTe v2.3
heffte::mkl_executor_r2c Class Reference

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

#include <heffte_backend_mkl.h>

Public Member Functions

template<typename index >
 mkl_executor_r2c (void *, box3d< index > const box, int dimension)
 Constructor defines the box and the dimension of reduction. More...
 
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 forward (float const [], std::complex< float >[], std::complex< float > *) const
 Bring forth method that have not been overloaded.
 
virtual void forward (double const [], 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.
 
virtual void backward (std::complex< float >[], float[], std::complex< float > *) const
 Bring forth method that have not been overloaded.
 
virtual void backward (std::complex< double >[], 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.
 
virtual void forward (float[], float *) const
 Forward r2r, single precision.
 
virtual void forward (double[], double *) const
 Forward r2r, double precision.
 
virtual void backward (float[], float *) const
 Backward r2r, single precision.
 
virtual void backward (double[], double *) const
 Backward r2r, double precision.
 
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.
 

Detailed Description

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

Serves the same purpose of heffte::mkl_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

◆ mkl_executor_r2c()

template<typename index >
heffte::mkl_executor_r2c::mkl_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).


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