Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/TFFTReal.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 // @(#)root/fft:$Id$
0002 // Author: Anna Kreshuk   07/4/2006
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2006, Rene Brun and Fons Rademakers.               *
0006  * All rights reserved.                                                  *
0007  *                                                                       *
0008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0010  *************************************************************************/
0011 
0012 #ifndef ROOT_TFFTReal
0013 #define ROOT_TFFTReal
0014 
0015 #include "TVirtualFFT.h"
0016 #include "TString.h"
0017 
0018 class TComplex;
0019 
0020 class TFFTReal: public TVirtualFFT{
0021  protected:
0022    void     *fIn;         //input array
0023    void     *fOut;        //output array
0024    void     *fPlan;       //fftw plan (the plan how to compute the transform)
0025    Int_t     fNdim;       //number of dimensions
0026    Int_t     fTotalSize;  //total size of the transform
0027    Int_t    *fN;          //transform sizes in each dimension
0028    void     *fKind;       //transform kinds in each dimension
0029    TString   fFlags;      //transform flags
0030 
0031    Int_t  MapOptions(const Int_t *kind);
0032    UInt_t MapFlag(Option_t *flag);
0033 
0034  public:
0035    TFFTReal();
0036    TFFTReal(Int_t n, Bool_t inPlace=kFALSE);
0037    TFFTReal(Int_t ndim, Int_t *n, Bool_t inPlace=kFALSE);
0038    ~TFFTReal() override;
0039 
0040    void      Init( Option_t *flags,Int_t sign, const Int_t *kind) override;
0041 
0042    virtual Int_t     GetSize() const {return fTotalSize;}
0043    Int_t    *GetN()    const override {return fN;}
0044    Int_t     GetNdim() const override {return fNdim;}
0045    Option_t *GetType() const override;
0046    Int_t     GetSign() const override {return 0;}
0047    Option_t *GetTransformFlag() const override {return fFlags;}
0048    Bool_t    IsInplace() const override {if (fOut) return kTRUE; else return kFALSE;}
0049 
0050    void      GetPoints(Double_t *data, Bool_t fromInput = kFALSE) const override;
0051    Double_t  GetPointReal(Int_t ipoint, Bool_t fromInput = kFALSE) const override;
0052    Double_t  GetPointReal(const Int_t *ipoint, Bool_t fromInput = kFALSE) const override;
0053    void      GetPointComplex(const Int_t *ipoint, Double_t &re, Double_t &im, Bool_t fromInput=kFALSE) const override;
0054 
0055    void      GetPointComplex(Int_t ipoint, Double_t &re, Double_t &im, Bool_t fromInput=kFALSE) const override;
0056 
0057    Double_t *GetPointsReal(Bool_t fromInput=kFALSE) const override;
0058    void      GetPointsComplex(Double_t* /*re*/, Double_t* /*im*/, Bool_t /*fromInput = kFALSE*/) const override{};
0059     void     GetPointsComplex(Double_t* /*data*/, Bool_t /*fromInput = kFALSE*/) const override {};
0060 
0061    void      SetPoint(Int_t ipoint, Double_t re, Double_t im = 0) override;
0062    void      SetPoint(const Int_t *ipoint, Double_t re, Double_t /*im=0*/) override;
0063    void      SetPoints(const Double_t *data) override;
0064    void      SetPointComplex(Int_t /*ipoint*/, TComplex &/*c*/) override{};
0065    void      SetPointsComplex(const Double_t* /*re*/, const Double_t* /*im*/) override{};
0066    void      Transform() override;
0067 
0068 
0069    ClassDefOverride(TFFTReal,0);
0070 };
0071 
0072 #endif