33 void setfft(std::string device_in, std::string precision_in);
71 bool xprime_in =
true,
72 bool mpifft_in =
false);
100 template <
typename FPTYPE>
109 template <
typename FPTYPE>
118 template <
typename FPTYPE>
127 template <
typename FPTYPE>
140 template <
typename FPTYPE>
141 void fftzfor(std::complex<FPTYPE>* in, std::complex<FPTYPE>* out)
const;
151 template <
typename FPTYPE>
152 void fftxyfor(std::complex<FPTYPE>* in, std::complex<FPTYPE>* out)
const;
162 template <
typename FPTYPE>
163 void fftzbac(std::complex<FPTYPE>* in, std::complex<FPTYPE>* out)
const;
173 template <
typename FPTYPE>
174 void fftxybac(std::complex<FPTYPE>* in, std::complex<FPTYPE>* out)
const;
185 template <
typename FPTYPE>
186 void fftxyr2c(FPTYPE* in, std::complex<FPTYPE>* out)
const;
196 template <
typename FPTYPE>
197 void fftxyc2r(std::complex<FPTYPE>* in, FPTYPE* out)
const;
199 template <
typename FPTYPE>
200 void fft3D_forward(std::complex<FPTYPE>* in, std::complex<FPTYPE>* out)
const;
201 template <
typename FPTYPE>
Definition fft_bundle.h:11
void fftxyc2r(std::complex< FPTYPE > *in, FPTYPE *out) const
Complex to real fft in x-y direction.
bool float_flag
Definition fft_bundle.h:206
void fft3D_forward(std::complex< FPTYPE > *in, std::complex< FPTYPE > *out) const
FPTYPE * get_rspace_data() const
Get the real space data.
FFT_Bundle(std::string device_in, std::string precision_in)
Constructor with device and precision.
Definition fft_bundle.h:23
std::shared_ptr< FFT_BASE< float > > fft_float
Definition fft_bundle.h:208
void fftxybac(std::complex< FPTYPE > *in, std::complex< FPTYPE > *out) const
Backward fft in x-y direction.
~FFT_Bundle()
Definition fft_bundle.cpp:24
std::string device
Definition fft_bundle.h:211
void set_dsp_cluster_id(int id)
Set the DSP cluster id for the FFT_DSP backend.
Definition fft_bundle.h:41
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, bool mpifft_in=false)
Initialize the fft parameters.
Definition fft_bundle.cpp:35
void clearFFT()
Definition fft_bundle.cpp:127
std::string precision
Definition fft_bundle.h:212
void fftxyr2c(FPTYPE *in, std::complex< FPTYPE > *out) const
Real to complex fft in x-y direction.
FFT_Bundle()
Definition fft_bundle.h:13
void fft3D_backward(std::complex< FPTYPE > *in, std::complex< FPTYPE > *out) const
int dsp_cluster_id_
Definition fft_bundle.h:213
void initfftmode(int fft_mode_in)
Initialize the fft mode.
Definition fft_bundle.h:81
void fftzbac(std::complex< FPTYPE > *in, std::complex< FPTYPE > *out) const
Backward fft in z direction.
std::complex< FPTYPE > * get_auxr_3d_data() const
Get the auxr 3d data.
void fftxyfor(std::complex< FPTYPE > *in, std::complex< FPTYPE > *out) const
Forward fft in x-y direction.
void setupFFT()
Definition fft_bundle.cpp:115
void fftzfor(std::complex< FPTYPE > *in, std::complex< FPTYPE > *out) const
Forward fft in z direction.
std::complex< FPTYPE > * get_auxg_data() const
Get the auxg data.
void clear()
Definition fft_bundle.cpp:138
int fft_mode
Definition fft_bundle.h:205
std::complex< FPTYPE > * get_auxr_data() const
Get the auxr data.
std::shared_ptr< FFT_BASE< double > > fft_double
Definition fft_bundle.h:209
void setfft(std::string device_in, std::string precision_in)
Set device and precision.
Definition fft_bundle.cpp:29
bool double_flag
Definition fft_bundle.h:207
void resource_handler(const int flag) const
Definition fft_bundle.cpp:151
Definition clebsch_gordan_coeff.cpp:8
Definition fft_bundle.h:218
~FFT_Guard()
Definition fft_bundle.h:222
FFT_Guard(const FFT_Bundle &fft)
Definition fft_bundle.h:220
const FFT_Bundle & fft_
Definition fft_bundle.h:219