8template <
typename FPTYPE>
51 void clear()
override;
79 void fftxyfor(std::complex<FPTYPE>* in,
80 std::complex<FPTYPE>* out)
const override;
83 void fftxybac(std::complex<FPTYPE>* in,
84 std::complex<FPTYPE>* out)
const override;
87 void fftzfor(std::complex<FPTYPE>* in,
88 std::complex<FPTYPE>* out)
const override;
91 void fftzbac(std::complex<FPTYPE>* in,
92 std::complex<FPTYPE>* out)
const override;
96 std::complex<FPTYPE>* out)
const override;
99 void fftxyc2r(std::complex<FPTYPE>* in,
100 FPTYPE* out)
const override;
virtual int int int int int int int nproc_in
Definition fft_base.h:26
virtual int int int int int ns_in
Definition fft_base.h:24
virtual int int int int rixy_in
Definition fft_base.h:23
virtual int int int int int int int bool bool xprime_in
Definition fft_base.h:28
virtual int int int int int int int bool gamma_only_in
Definition fft_base.h:27
virtual int int nz_in
Definition fft_base.h:21
virtual int int int int int int nplane_in
Definition fft_base.h:25
virtual int ny_in
Definition fft_base.h:20
virtual int int int lixy_in
Definition fft_base.h:22
fftwf_plan planfyr2c
Definition fft_cpu.h:128
void fftxyc2r(std::complex< double > *in, double *out) const
Definition fft_cpu.cpp:442
int fftnxy
Definition fft_cpu.h:140
std::complex< double > * z_auxr
Definition fft_cpu.h:134
FFT_CPU(const int fft_mode_in)
Definition fft_cpu.h:13
int nproc
Definition fft_cpu.h:144
fftwf_plan planfzfor
Definition fft_cpu.h:118
float * s_rspace
Definition fft_cpu.h:136
fftw_plan planxr2c
Definition fft_cpu.h:113
void fftzfor(std::complex< double > *in, std::complex< double > *out) const
Definition fft_cpu.cpp:406
std::complex< double > * z_auxg
Definition fft_cpu.h:133
void fftxybac(std::complex< double > *in, std::complex< double > *out) const
Definition fft_cpu.cpp:376
double * get_rspace_data() const
Definition fft_cpu.cpp:466
int nplane
Definition fft_cpu.h:142
fftwf_plan planfzbac
Definition fft_cpu.h:119
fftw_plan planxfor2
Definition fft_cpu.h:109
fftw_plan planyc2r
Definition fft_cpu.h:116
int rixy
rixy: the right edge of the pw ball in the x or y direction
Definition fft_cpu.h:156
bool xprime
xprime: whether xprime is used,when do recip2real, x-fft will be done last and when doing real2recip,...
Definition fft_cpu.h:162
fftwf_plan planfxbac2
Definition fft_cpu.h:123
void fftzbac(std::complex< double > *in, std::complex< double > *out) const
Definition fft_cpu.cpp:412
void initfft(int nx_in, int ny_in, int nz_in, int lixy_in, int rixy_in, int ns_in, int nplane_in, int nproc_in, bool gamma_only_in, bool xprime_in=true) override
Initialize the fft parameters.
Definition fft_cpu.cpp:7
fftw_plan planxc2r
Definition fft_cpu.h:114
int fft_mode
fft_mode: fftw mode 0: estimate, 1: measure, 2: patient, 3: exhaustive
Definition fft_cpu.h:166
fftwf_plan planfxc2r
Definition fft_cpu.h:127
void fftxyr2c(double *in, std::complex< double > *out) const
Definition fft_cpu.cpp:418
fftw_plan planxfor1
Definition fft_cpu.h:107
fftwf_plan planfxr2c
Definition fft_cpu.h:126
fftw_plan planyfor
Definition fft_cpu.h:111
fftwf_plan planfybac
Definition fft_cpu.h:125
void clearfft(fftwf_plan &plan)
__attribute__((weak)) void clear() override
Initialize the fft parameters as virtual function.
int fftny
Definition fft_cpu.h:139
fftw_plan planybac
Definition fft_cpu.h:112
fftw_plan planxbac1
Definition fft_cpu.h:108
int nxy
Definition fft_cpu.h:141
__attribute__((weak)) std __attribute__((weak)) std __attribute__((weak)) void fftxyfor(std __attribute__((weak)) void fftxybac(std __attribute__((weak)) void fftzfor(std __attribute__((weak)) void fftzbac(std __attribute__((weak)) void fftxyr2c(FPTYPE *in
Forward FFT in x-y direction.
__attribute__((weak)) void cleanFFT() override
Initialize the fft parameters as virtual function.
void fftxyfor(std::complex< double > *in, std::complex< double > *out) const
Definition fft_cpu.cpp:345
fftw_plan planyr2c
Definition fft_cpu.h:115
fftwf_plan planfxfor1
Definition fft_cpu.h:120
std::complex< double > * get_auxr_data() const
Definition fft_cpu.cpp:468
int fftnx
Definition fft_cpu.h:138
void clear()
Clear the fft data as pure virtual function.
Definition fft_cpu.cpp:328
double * d_rspace
Definition fft_cpu.h:137
fftwf_plan planfyfor
Definition fft_cpu.h:124
std::complex< double > * get_auxg_data() const
Definition fft_cpu.cpp:470
fftw_plan planxbac2
Definition fft_cpu.h:110
void cleanFFT()
Clean the fft plan as pure virtual function.
Definition fft_cpu.cpp:311
std::complex< float > * c_auxg
Definition fft_cpu.h:131
int lixy
lixy: the left edge of the pw ball in the y direction
Definition fft_cpu.h:151
bool gamma_only
Definition fft_cpu.h:146
__attribute__((weak)) void setupFFT() override
Initialize the fft parameters as virtual function.
__attribute__((weak)) FPTYPE *get_rspace_data() const override
Get the real space data the CPU FFT.
int ns
Definition fft_cpu.h:143
fftw_plan planzfor
Definition fft_cpu.h:105
std::complex< float > * c_auxr
Definition fft_cpu.h:132
FFT_CPU()
Definition fft_cpu.h:12
int maxgrids
Definition fft_cpu.h:145
fftwf_plan planfxbac1
Definition fft_cpu.h:121
void setupFFT()
Setup the fft plan and data as pure virtual function.
Definition fft_cpu.cpp:43
void clearfft(fftw_plan &plan)
fftwf_plan planfxfor2
Definition fft_cpu.h:122
~FFT_CPU()
Definition fft_cpu.h:14
fftwf_plan planfyc2r
Definition fft_cpu.h:129
fftw_plan planzbac
Definition fft_cpu.h:106