31#ifndef TRIUMVIRATE_INCLUDE_FFTLOG_HPP_INCLUDED_
32#define TRIUMVIRATE_INCLUDE_FFTLOG_HPP_INCLUDED_
34#if defined(TRV_USE_HIP)
35#include <hipfft/hipfftXt.h>
36#elif defined(TRV_USE_CUDA)
49#if defined(TRV_USE_HIP)
50using fft_double_complex = hipfftDoubleComplex;
51using fftHandle = hipfftHandle;
52#elif defined(TRV_USE_CUDA)
53using fft_double_complex = cufftDoubleComplex;
54using fftHandle = cufftHandle;
133 std::vector<double> sample_pts,
double kr_c,
136 double extrap_exp = 2.
165 std::vector<double> sample_pts,
double kr_c,
168 double extrap_exp = 2.
219 std::vector<double> pre_sampts_extrap;
222 std::vector<double> post_sampts_extrap;
225 std::vector< std::complex<double> > kernel;
228 fftw_plan pre_plan{};
229 fftw_plan post_plan{};
230#if defined(TRV_USE_HIP) || defined(TRV_USE_CUDA)
231 fftHandle plan_gpu{};
235 fftw_complex* pre_buffer =
nullptr;
236 fftw_complex* post_buffer =
nullptr;
237#if defined(TRV_USE_HIP) || defined(TRV_USE_CUDA)
238 fft_double_complex* d_buffer =
nullptr;
243 cudaStream_t custream{};
247 bool plan_init =
false;
250 bool threaded =
true;
298 std::vector<double> sample_pts,
double kr_c,
301 double extrap_exp = 2.
331 std::vector<double> sample_pts,
double kr_c,
334 double extrap_exp = 2.
359 std::vector< std::complex<double> >& a,
360 std::vector< std::complex<double> >& b
379 std::vector< std::complex<double> >& pre_samples,
380 std::vector< std::complex<double> >& post_samples
Mathematical calculations.
ExtrapOption
Extrapolation scheme.