Highly Efficient FFT for Exascale: HeFFTe v2.4
|
Base class for all backend executors. More...
#include <heffte_common.h>
Public Member Functions | |
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. | |
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 | box_size () const |
Return the size of the box. | |
virtual size_t | workspace_size () const |
Return the workspace of the size. | |
virtual int | complex_size () const |
Return the size of the complex-box (r2c executors). | |
Base class for all backend executors.
Forward r2r, single precision.
Reimplemented in heffte::real2real_executor< backend::fftw, prepost_processor >, heffte::real2real_executor< fft_backend_tag, prepost_processor >, heffte::cufft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor, heffte::fftw_executor_r2c, heffte::mkl_executor, heffte::mkl_executor_r2c, heffte::onemkl_executor, heffte::onemkl_executor_r2c, heffte::rocfft_executor, heffte::rocfft_executor_r2c, heffte::stock_fft_executor, heffte::stock_fft_executor_r2c, and heffte::real2real_executor< fft_backend_tag, prepost_processor >.
Forward r2r, double precision.
Reimplemented in heffte::real2real_executor< backend::fftw, prepost_processor >, heffte::real2real_executor< fft_backend_tag, prepost_processor >, heffte::cufft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor, heffte::fftw_executor_r2c, heffte::mkl_executor, heffte::mkl_executor_r2c, heffte::onemkl_executor, heffte::onemkl_executor_r2c, heffte::rocfft_executor, heffte::rocfft_executor_r2c, heffte::stock_fft_executor, heffte::stock_fft_executor_r2c, and heffte::real2real_executor< fft_backend_tag, prepost_processor >.
Backward r2r, single precision.
Reimplemented in heffte::real2real_executor< backend::fftw, prepost_processor >, heffte::real2real_executor< fft_backend_tag, prepost_processor >, heffte::cufft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor, heffte::fftw_executor_r2c, heffte::mkl_executor, heffte::mkl_executor_r2c, heffte::onemkl_executor, heffte::onemkl_executor_r2c, heffte::rocfft_executor, heffte::rocfft_executor_r2c, heffte::stock_fft_executor, heffte::stock_fft_executor_r2c, and heffte::real2real_executor< fft_backend_tag, prepost_processor >.
Backward r2r, double precision.
Reimplemented in heffte::real2real_executor< backend::fftw, prepost_processor >, heffte::real2real_executor< fft_backend_tag, prepost_processor >, heffte::cufft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor, heffte::fftw_executor_r2c, heffte::mkl_executor, heffte::mkl_executor_r2c, heffte::onemkl_executor, heffte::onemkl_executor_r2c, heffte::rocfft_executor, heffte::rocfft_executor_r2c, heffte::stock_fft_executor, heffte::stock_fft_executor_r2c, and heffte::real2real_executor< fft_backend_tag, prepost_processor >.
|
inlinevirtual |
Forward FFT, single precision.
Reimplemented in heffte::cufft_executor, heffte::fftw_executor, heffte::mkl_executor, heffte::onemkl_executor, heffte::stock_fft_executor, heffte::rocfft_executor, heffte::cufft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor, heffte::fftw_executor_r2c, heffte::mkl_executor, heffte::mkl_executor_r2c, heffte::onemkl_executor, heffte::onemkl_executor_r2c, heffte::rocfft_executor, heffte::rocfft_executor_r2c, heffte::stock_fft_executor, heffte::stock_fft_executor_r2c, and heffte::real2real_executor< fft_backend_tag, prepost_processor >.
|
inlinevirtual |
Forward FFT, double precision.
Reimplemented in heffte::cufft_executor, heffte::fftw_executor, heffte::mkl_executor, heffte::onemkl_executor, heffte::stock_fft_executor, heffte::rocfft_executor, heffte::cufft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor, heffte::fftw_executor_r2c, heffte::mkl_executor, heffte::mkl_executor_r2c, heffte::onemkl_executor, heffte::onemkl_executor_r2c, heffte::rocfft_executor, heffte::rocfft_executor_r2c, heffte::stock_fft_executor, heffte::stock_fft_executor_r2c, and heffte::real2real_executor< fft_backend_tag, prepost_processor >.
|
inlinevirtual |
Backward FFT, single precision.
Reimplemented in heffte::cufft_executor, heffte::fftw_executor, heffte::mkl_executor, heffte::onemkl_executor, heffte::stock_fft_executor, heffte::rocfft_executor, heffte::cufft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor, heffte::fftw_executor_r2c, heffte::mkl_executor, heffte::mkl_executor_r2c, heffte::onemkl_executor, heffte::onemkl_executor_r2c, heffte::rocfft_executor, heffte::rocfft_executor_r2c, heffte::stock_fft_executor, heffte::stock_fft_executor_r2c, and heffte::real2real_executor< fft_backend_tag, prepost_processor >.
|
inlinevirtual |
Backward FFT, double precision.
Reimplemented in heffte::cufft_executor, heffte::fftw_executor, heffte::mkl_executor, heffte::onemkl_executor, heffte::stock_fft_executor, heffte::rocfft_executor, heffte::cufft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor, heffte::fftw_executor_r2c, heffte::mkl_executor, heffte::mkl_executor_r2c, heffte::onemkl_executor, heffte::onemkl_executor_r2c, heffte::rocfft_executor, heffte::rocfft_executor_r2c, heffte::stock_fft_executor, heffte::stock_fft_executor_r2c, and heffte::real2real_executor< fft_backend_tag, prepost_processor >.
|
inlinevirtual |
Forward FFT real-to-complex, single precision.
Reimplemented in heffte::cufft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor, heffte::fftw_executor_r2c, heffte::mkl_executor, heffte::mkl_executor_r2c, heffte::onemkl_executor, heffte::onemkl_executor_r2c, heffte::rocfft_executor, heffte::rocfft_executor_r2c, heffte::stock_fft_executor, heffte::stock_fft_executor_r2c, heffte::real2real_executor< fft_backend_tag, prepost_processor >, heffte::fftw_executor_r2c, heffte::mkl_executor_r2c, heffte::onemkl_executor_r2c, heffte::stock_fft_executor_r2c, heffte::cufft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor, heffte::mkl_executor, heffte::onemkl_executor, heffte::rocfft_executor, heffte::rocfft_executor_r2c, and heffte::stock_fft_executor.
|
inlinevirtual |
Forward FFT real-to-complex, double precision.
Reimplemented in heffte::cufft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor, heffte::fftw_executor_r2c, heffte::mkl_executor, heffte::mkl_executor_r2c, heffte::onemkl_executor, heffte::onemkl_executor_r2c, heffte::rocfft_executor, heffte::rocfft_executor_r2c, heffte::stock_fft_executor, heffte::stock_fft_executor_r2c, heffte::real2real_executor< fft_backend_tag, prepost_processor >, heffte::fftw_executor_r2c, heffte::mkl_executor_r2c, heffte::onemkl_executor_r2c, heffte::stock_fft_executor_r2c, heffte::cufft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor, heffte::mkl_executor, heffte::onemkl_executor, heffte::rocfft_executor, heffte::rocfft_executor_r2c, and heffte::stock_fft_executor.
|
inlinevirtual |
Backward FFT real-to-complex, single precision.
Reimplemented in heffte::fftw_executor_r2c, heffte::mkl_executor_r2c, heffte::onemkl_executor_r2c, heffte::stock_fft_executor_r2c, heffte::cufft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor, heffte::mkl_executor, heffte::onemkl_executor, heffte::rocfft_executor, heffte::rocfft_executor_r2c, heffte::stock_fft_executor, heffte::cufft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor, heffte::fftw_executor_r2c, heffte::mkl_executor, heffte::mkl_executor_r2c, heffte::onemkl_executor, heffte::onemkl_executor_r2c, heffte::rocfft_executor, heffte::rocfft_executor_r2c, heffte::stock_fft_executor, heffte::stock_fft_executor_r2c, and heffte::real2real_executor< fft_backend_tag, prepost_processor >.
|
inlinevirtual |
Backward FFT real-to-complex, double precision.
Reimplemented in heffte::fftw_executor_r2c, heffte::mkl_executor_r2c, heffte::onemkl_executor_r2c, heffte::stock_fft_executor_r2c, heffte::cufft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor, heffte::mkl_executor, heffte::onemkl_executor, heffte::rocfft_executor, heffte::rocfft_executor_r2c, heffte::stock_fft_executor, heffte::cufft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor, heffte::fftw_executor_r2c, heffte::mkl_executor, heffte::mkl_executor_r2c, heffte::onemkl_executor, heffte::onemkl_executor_r2c, heffte::rocfft_executor, heffte::rocfft_executor_r2c, heffte::stock_fft_executor, heffte::stock_fft_executor_r2c, and heffte::real2real_executor< fft_backend_tag, prepost_processor >.
Return the size of the box.
Reimplemented in heffte::cufft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor, heffte::fftw_executor_r2c, heffte::real2real_executor< backend::fftw, prepost_processor >, heffte::mkl_executor, heffte::mkl_executor_r2c, heffte::onemkl_executor, heffte::onemkl_executor_r2c, heffte::rocfft_executor, heffte::rocfft_executor_r2c, heffte::stock_fft_executor, heffte::stock_fft_executor_r2c, and heffte::real2real_executor< fft_backend_tag, prepost_processor >.
Return the workspace of the size.
Reimplemented in heffte::cufft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor, heffte::fftw_executor_r2c, heffte::real2real_executor< backend::fftw, prepost_processor >, heffte::mkl_executor, heffte::mkl_executor_r2c, heffte::onemkl_executor, heffte::onemkl_executor_r2c, heffte::rocfft_executor, heffte::rocfft_executor_r2c, heffte::stock_fft_executor, heffte::stock_fft_executor_r2c, and heffte::real2real_executor< fft_backend_tag, prepost_processor >.
Return the size of the complex-box (r2c executors).
Reimplemented in heffte::cufft_executor, heffte::fftw_executor, heffte::mkl_executor, heffte::onemkl_executor, heffte::rocfft_executor, heffte::stock_fft_executor, heffte::cufft_executor_r2c, heffte::fftw_executor_r2c, heffte::mkl_executor_r2c, heffte::onemkl_executor_r2c, heffte::rocfft_executor_r2c, and heffte::stock_fft_executor_r2c.