28 #ifndef SCIMATH_FFTW_H
29 #define SCIMATH_FFTW_H
77 void r2c(
const IPosition &size,
float *in, std::complex<float> *out) ;
78 void r2c(
const IPosition &size,
double *in, std::complex<double> *out) ;
79 void c2r(
const IPosition &size, std::complex<float> *in,
float *out);
80 void c2r(
const IPosition &size, std::complex<double> *in,
double *out);
81 void c2c(
const IPosition &size, std::complex<float> *in,
bool forward);
82 void c2c(
const IPosition &size, std::complex<double> *in,
bool forward);
96 void Execute(
float* in,
float* out);
97 void Execute(
double* in,
double* out);
101 Plan(FFTWPlan* plan);
102 Plan(FFTWPlanf* plan);
A Vector of integers, for indexing into Array<T> objects.
static void initialize_fftw()
void plan_r2c(const IPosition &size, float *in, std::complex< float > *out)
overloaded interface to fftw[f]_plan...
void r2c(const IPosition &size, float *in, std::complex< float > *out)
TODO These overloads do not use their parameters at all.
std::unique_ptr< FFTWPlan > itsPlanR2C
void plan_c2r(const IPosition &size, std::complex< float > *in, float *out)
Plan & operator=(const Plan &)=delete
C++ interface to the FFTWw library.
void Execute(float *in, float *out)
Perform the FFT associated with this plan with the given in data, and store it in the given out data...
std::unique_ptr< FFTWPlan > itsPlanR2R
void plan_c2c_backward(const IPosition &size, std::complex< double > *in)
std::unique_ptr< FFTWPlanf > itsPlanC2Rf
Plan(const Plan &)=delete
std::unique_ptr< FFTWPlanf > _planf
static std::mutex theirMutex
only once per process, not once per object
std::unique_ptr< FFTWPlanf > itsPlanC2CFf
std::unique_ptr< FFTWPlan > _plan
void plan_c2c_forward(const IPosition &size, std::complex< double > *in)
void c2c(const IPosition &size, std::complex< float > *in, bool forward)
void c2r(const IPosition &size, std::complex< float > *in, float *out)
std::unique_ptr< FFTWPlanf > itsPlanR2Cf
std::unique_ptr< FFTWPlan > itsPlanC2CF
std::unique_ptr< FFTWPlanf > itsPlanC2CBf
std::unique_ptr< FFTWPlan > itsPlanC2CB
static Plan plan_redft00(const IPosition &size, float *in, float *out)
static bool is_initialized_fftw
std::unique_ptr< FFTWPlan > itsPlanC2R
std::unique_ptr< FFTWPlanf > itsPlanR2Rf