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

Wrapper around the oneMKL API. More...

#include <heffte_backend_oneapi.h>

Public Member Functions

template<typename index >
 onemkl_executor (sycl::queue &inq, box3d< index > const box, int dimension)
 Constructor, specifies the box and dimension.
 
template<typename index >
 onemkl_executor (sycl::queue &inq, box3d< index > const box, int dir1, int dir2)
 Merges two FFTs into one.
 
template<typename index >
 onemkl_executor (sycl::queue &inq, box3d< index > const box)
 Merges two FFTs into one.
 
void forward (std::complex< float > data[], std::complex< float > *) const override
 Forward fft, float-complex case.
 
void backward (std::complex< float > data[], std::complex< float > *) const override
 Backward fft, float-complex case.
 
void forward (std::complex< double > data[], std::complex< double > *) const override
 Forward fft, double-complex case.
 
void backward (std::complex< double > data[], std::complex< double > *) const override
 Backward fft, double-complex case.
 
void forward (float const indata[], std::complex< float > outdata[], std::complex< float > *workspace) const override
 Converts the deal data to complex and performs float-complex forward transform.
 
void backward (std::complex< float > indata[], float outdata[], std::complex< float > *workspace) const override
 Performs backward float-complex transform and truncates the complex part of the result.
 
void forward (double const indata[], std::complex< double > outdata[], std::complex< double > *workspace) const override
 Converts the deal data to complex and performs double-complex forward transform.
 
void backward (std::complex< double > indata[], double outdata[], std::complex< double > *workspace) const override
 Performs backward double-complex transform and truncates the complex part of the result.
 
int box_size () const override
 Returns the size of the box.
 
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.
 
virtual int complex_size () 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 int complex_size () const
 Return the size of the complex-box (r2c executors).
 

Detailed Description

Wrapper around the oneMKL API.

A single class that manages the plans and executions of oneMKL FFTs. Handles the complex-to-complex cases.


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