Highly Efficient FFT for Exascale: HeFFTe v2.4
Loading...
Searching...
No Matches
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 real 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 real 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.
 

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.

Member Function Documentation

◆ forward() [1/10]

void heffte::onemkl_executor::forward ( std::complex< float > data[],
std::complex< float > *  ) const
inlineoverridevirtual

Forward fft, float-complex case.

Reimplemented from heffte::executor_base.

◆ backward() [1/10]

void heffte::onemkl_executor::backward ( std::complex< float > data[],
std::complex< float > *  ) const
inlineoverridevirtual

Backward fft, float-complex case.

Reimplemented from heffte::executor_base.

◆ forward() [2/10]

void heffte::onemkl_executor::forward ( std::complex< double > data[],
std::complex< double > *  ) const
inlineoverridevirtual

Forward fft, double-complex case.

Reimplemented from heffte::executor_base.

◆ backward() [2/10]

void heffte::onemkl_executor::backward ( std::complex< double > data[],
std::complex< double > *  ) const
inlineoverridevirtual

Backward fft, double-complex case.

Reimplemented from heffte::executor_base.

◆ forward() [3/10]

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

Converts the real data to complex and performs float-complex forward transform.

Reimplemented from heffte::executor_base.

◆ backward() [3/10]

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

Performs backward float-complex transform and truncates the complex part of the result.

Reimplemented from heffte::executor_base.

◆ forward() [4/10]

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

Converts the real data to complex and performs double-complex forward transform.

Reimplemented from heffte::executor_base.

◆ backward() [4/10]

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

Performs backward double-complex transform and truncates the complex part of the result.

Reimplemented from heffte::executor_base.

◆ box_size()

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

Returns the size of the box.

Reimplemented from heffte::executor_base.

◆ workspace_size()

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

Return the size of the needed workspace.

Reimplemented from heffte::executor_base.

◆ forward() [5/10]

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

Bring forth method that have not been overloaded.

Reimplemented from heffte::executor_base.

◆ forward() [6/10]

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

Bring forth method that have not been overloaded.

Reimplemented from heffte::executor_base.

◆ forward() [7/10]

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() [8/10]

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.

◆ forward() [9/10]

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

Bring forth method that have not been overloaded.

Reimplemented from heffte::executor_base.

◆ forward() [10/10]

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

Bring forth method that have not been overloaded.

Reimplemented from heffte::executor_base.

◆ backward() [5/10]

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

Bring forth method that have not been overloaded.

Reimplemented from heffte::executor_base.

◆ backward() [6/10]

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

Bring forth method that have not been overloaded.

Reimplemented from heffte::executor_base.

◆ backward() [7/10]

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() [8/10]

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.

◆ backward() [9/10]

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

Bring forth method that have not been overloaded.

Reimplemented from heffte::executor_base.

◆ backward() [10/10]

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

Bring forth method that have not been overloaded.

Reimplemented from heffte::executor_base.

◆ complex_size()

virtual int heffte::executor_base::complex_size ( ) 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: