26 #ifndef LIBRARIES_RECONSTRUCTION_CUDA_CUDA_FFT_H_ 27 #define LIBRARIES_RECONSTRUCTION_CUDA_CUDA_FFT_H_ 57 std::complex<T>*
fft(T *h_inOut);
58 std::complex<T>*
fft(
const T *h_in, std::complex<T> *h_out);
60 T*
ifft(std::complex<T> *h_inOut);
61 T*
ifft(
const std::complex<T> *h_in, T *h_out);
67 const T *d_in, std::complex<T> *d_out);
70 const std::complex<T> *d_in, T *d_out);
75 size_t reserveBytes,
bool squareOnly,
int sigPercChange,
76 bool crop,
bool verbose);
81 size_t reserveBytes,
bool squareOnly,
int sigPercChange,
82 bool crop,
bool verbose);
88 std::complex<T> *m_d_FD;
94 void setDefault()
final;
96 static void manyHelper(
const FFTSettings<T> &settings, F
function);
size_t estimatePlanBytes(const FFTSettings< T > &settings)
void init(const HW &gpu, const FFTSettings< T > &settings, bool reuse=true)
T * ifft(std::complex< T > *h_inOut)
static cufftHandle * createPlan(const GPU &gpu, const FFTSettings< T > &settings)
static FFTSettings< T > * findOptimal(const GPU &gpu, const FFTSettings< T > &settings, size_t reserveBytes, bool squareOnly, int sigPercChange, bool crop, bool verbose)
std::complex< T > * fft(T *h_inOut)
static FFTSettings< T > findOptimalSizeOrMaxBatch(GPU &gpu, const FFTSettings< T > &settings, size_t reserveBytes, bool squareOnly, int sigPercChange, bool crop, bool verbose)
static FFTSettings< T > findMaxBatch(const FFTSettings< T > &settings, size_t maxBytes)