Highly Efficient FFT for Exascale: HeFFTe v2.4
Loading...
Searching...
No Matches
heffte::mkl_executor Class Reference

Wrapper around the MKL API. More...

#include <heffte_backend_mkl.h>

Public Member Functions

template<typename index >
 mkl_executor (void *, box3d< index > const box, int dimension)
 Constructor, specifies the box and dimension.
 
template<typename index >
 mkl_executor (void *, box3d< index > const box, int dir1, int dir2)
 Merges two FFTs into one.
 
template<typename index >
 mkl_executor (void *, box3d< index > const box)
 Merges three 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 MKL API.

A single class that manages the plans and executions of mkl so that a single API is provided for all backends. The executor operates on a box and performs 1-D FFTs for the given dimension. The class silently manages the plans and buffers needed for the different types. All input and output arrays must have size equal to the box.

Member Function Documentation

◆ forward() [1/10]

void heffte::mkl_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::mkl_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::mkl_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::mkl_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::mkl_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::mkl_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::mkl_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::mkl_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::mkl_executor::box_size ( ) const
inlineoverridevirtual

Returns the size of the box.

Reimplemented from heffte::executor_base.

◆ workspace_size()

size_t heffte::mkl_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: