70 fIn = fftw_malloc(
sizeof(fftw_complex)*(
n/2+1));
74 fIn = fftw_malloc(
sizeof(fftw_complex)*(
n/2+1));
99 fIn = fftw_malloc(
sizeof(fftw_complex)*sizein);
102 fIn = fftw_malloc(
sizeof(fftw_complex)*sizein);
116 fftw_destroy_plan((fftw_plan)
fPlan);
118 fftw_free((fftw_complex*)
fIn);
152 fftw_destroy_plan((fftw_plan)
fPlan);
167 fftw_execute((fftw_plan)
fPlan);
169 Error(
"Transform",
"transform was not initialized");
181 Error(
"GetPoints",
"Input array has been destroyed");
195 Error(
"GetPointReal",
"Input array has been destroyed");
199 return array[ipoint];
209 Error(
"GetPointReal",
"Input array has been destroyed");
212 Int_t ireal = ipoint[0];
214 ireal=
fN[i+1]*ireal + ipoint[i+1];
227 Error(
"GetPointComplex",
"Input array has been destroyed");
242 Error(
"GetPointComplex",
"Input array has been destroyed");
247 Int_t ireal = ipoint[0];
249 ireal=
fN[i+1]*ireal + ipoint[i+1];
265 Error(
"GetPointsReal",
"Input array was destroyed");
278 Error(
"GetPointsComplex",
"Input array has been destroyed");
295 Error(
"GetPointsComplex",
"Input array has been destroyed");
300 data[i] = array[i/2];
311 if (ipoint <=
fN[0]/2){
312 ((fftw_complex*)
fIn)[ipoint][0] = re;
313 ((fftw_complex*)
fIn)[ipoint][1] = im;
315 ((fftw_complex*)
fOut)[2*(
fN[0]/2)-ipoint][0] = re;
316 ((fftw_complex*)
fOut)[2*(
fN[0]/2)-ipoint][1] = -im;
326 Int_t ireal = ipoint[0];
328 ireal=
fN[i+1]*ireal + ipoint[i+1];
334 Error(
"SetPoint",
"Illegal index value");
337 ((fftw_complex*)
fIn)[ireal][0] = re;
338 ((fftw_complex*)
fIn)[ireal][1] = im;
347 if (ipoint <=
fN[0]/2){
348 ((fftw_complex*)
fIn)[ipoint][0] =
c.Re();
349 ((fftw_complex*)
fIn)[ipoint][1] =
c.Im();
351 ((fftw_complex*)
fIn)[2*(
fN[0]/2)-ipoint][0] =
c.Re();
352 ((fftw_complex*)
fIn)[2*(
fN[0]/2)-ipoint][1] = -
c.Im();
364 for (
Int_t i=0; i<2*(sizein); i+=2){
365 ((fftw_complex*)
fIn)[i/2][0]=data[i];
366 ((fftw_complex*)
fIn)[i/2][1]=data[i+1];
376 for (
Int_t i=0; i<sizein; i++){
377 ((fftw_complex*)
fIn)[i][0]=re[i];
378 ((fftw_complex*)
fIn)[i][1]=im[i];
394 return FFTW_ESTIMATE;
400 return FFTW_EXHAUSTIVE;
401 return FFTW_ESTIMATE;
int Int_t
Signed integer 4 bytes (int).
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int).
bool Bool_t
Boolean (0=false, 1=true) (bool).
double Double_t
Double 8 bytes.
const char Option_t
Option string (const char).
void GetPoints(Double_t *data, Bool_t fromInput=kFALSE) const override
Fills the argument array with the computed transform Works only for output (input array is destroyed ...
void SetPointComplex(Int_t ipoint, TComplex &c) override
since the input must be complex-Hermitian, if the ipoint > n/2, the according point before n/2 is set...
void SetPointsComplex(const Double_t *re, const Double_t *im) override
Set all points. The values are copied.
UInt_t MapFlag(Option_t *flag)
allowed options: "ES" - FFTW_ESTIMATE "M" - FFTW_MEASURE "P" - FFTW_PATIENT "EX" - FFTW_EXHAUSTIVE
void Transform() override
Computes the transform, specified in Init() function.
void GetPointsComplex(Double_t *re, Double_t *im, Bool_t fromInput=kFALSE) const override
Fills the argument array with the computed transform Works only for output (input array is destroyed ...
~TFFTComplexReal() override
Destroys the data arrays and the plan.
Double_t * GetPointsReal(Bool_t fromInput=kFALSE) const override
Returns the array of computed transform Works only for output (input array is destroyed in a C2R tran...
void SetPoints(const Double_t *data) override
set all points.
void SetPoint(Int_t ipoint, Double_t re, Double_t im=0) override
since the input must be complex-Hermitian, if the ipoint > n/2, the according point before n/2 is set...
void GetPointComplex(Int_t ipoint, Double_t &re, Double_t &im, Bool_t fromInput=kFALSE) const override
Works only for output (input array is destroyed in a C2R transform).
Double_t GetPointReal(Int_t ipoint, Bool_t fromInput=kFALSE) const override
Returns the point #ipoint Works only for output (input array is destroyed in a C2R transform).
void Init(Option_t *flags, Int_t, const Int_t *) override
Creates the fftw-plan.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
void ToUpper()
Change string to upper case.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const