Changeset 2526 in Sophya
- Timestamp:
- Apr 22, 2004, 12:04:47 PM (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/NTools/fftservintf.h
r1630 r2526 27 27 virtual FFTServerInterface * Clone() = 0; 28 28 29 //! Set/clear the flag for normalizing Fourier transforms.29 //! Set/clear the flag for normalizing Fourier transforms. 30 30 inline void setNormalize(bool fg=false) { _fgnorm = fg; } 31 //! Returns the status of normalization flag for the server31 //! Returns the status of normalization flag for the server 32 32 inline bool getNormalize() const { return(_fgnorm); } 33 //! Returns the information string associated with the server33 //! Returns the information string associated with the server 34 34 inline string getInfo() const { return _info; } 35 35 36 36 //--------------------------------------------------- 37 37 // Transforme N-dim sur des doubles 38 virtual void FFTForward(TArray<r_4> const & in, TArray< complex<r_4> > & out); 39 virtual void FFTForward(TArray<r_8> const & in, TArray< complex<r_8> > & out); 40 virtual void FFTForward(TArray< complex<r_4> > const & in, TArray< complex<r_4> > & out); 38 41 virtual void FFTForward(TArray< complex<r_8> > const & in, TArray< complex<r_8> > & out); 42 43 virtual void FFTBackward(TArray< complex<r_4> > const & in, TArray<r_4> & out,bool usoutsz=false); 44 virtual void FFTBackward(TArray< complex<r_8> > const & in, TArray<r_8> & out,bool usoutsz=false); 45 virtual void FFTBackward(TArray< complex<r_4> > const & in, TArray< complex<r_4> > & out); 39 46 virtual void FFTBackward(TArray< complex<r_8> > const & in, TArray< complex<r_8> > & out); 40 virtual r_8 TransfEnergyFFT(TVector< complex<r_8> > const & x, TVector< complex<r_8> > const& fftx 41 , r_8& A, r_8& B); 47 42 48 //! Compute the factor to be applied to "fftx=FFT(x)" so that "x" and "FFT(x)" have the same energy 43 virtual inline r_8 TransfEnergyFFT(TVector< complex<r_8> > const & x, TVector< complex<r_8> > const& fftx) 44 {r_8 A,B; return TransfEnergyFFT(x,fftx,A,B);} 49 virtual r_8 TransfEnergyFFT(TVector<r_4> const & x, TVector< complex<r_4> > const& fftx,r_8& A,r_8& B); 50 virtual r_8 TransfEnergyFFT(TVector<r_8> const & x, TVector< complex<r_8> > const& fftx,r_8& A,r_8& B); 51 virtual r_8 TransfEnergyFFT(TVector< complex<r_4> > const & x, TVector< complex<r_4> > const& fftx,r_8& A,r_8& B); 52 virtual r_8 TransfEnergyFFT(TVector< complex<r_8> > const & x, TVector< complex<r_8> > const& fftx,r_8& A,r_8& B); 45 53 46 virtual void FFTForward(TArray< r_8 > const & in, TArray< complex<r_8> > & out);47 virtual void FFTBackward(TArray< complex<r_8> > const & in, TArray< r_8 > & out,48 bool usoutsz=false); 49 virtual r_8 TransfEnergyFFT(TVector< r_8 > const & x, TVector< complex<r_8> > const& fftx50 , r_8& A, r_8& B);51 //! Compute the factor to be applied to "fftx=FFT(x)" so that "x" and "FFT(x)" have the same energy52 virtual inline r_8 TransfEnergyFFT(TVector< r_8> const & x, TVector< complex<r_8> > const& fftx)53 {r_8 A,B; return TransfEnergyFFT(x,fftx,A,B);}54 virtual inline r_8 TransfEnergyFFT(TVector<r_4> const & x, TVector< complex<r_4> > const& fftx) 55 {r_8 A,B; return TransfEnergyFFT(x,fftx,A,B);} 56 virtual inline r_8 TransfEnergyFFT(TVector<r_8> const & x, TVector< complex<r_8> > const& fftx) 57 {r_8 A,B; return TransfEnergyFFT(x,fftx,A,B);} 58 virtual inline r_8 TransfEnergyFFT(TVector< complex<r_4> > const & x, TVector< complex<r_4> > const& fftx) 59 {r_8 A,B; return TransfEnergyFFT(x,fftx,A,B);} 60 virtual inline r_8 TransfEnergyFFT(TVector< complex<r_8> > const & x, TVector< complex<r_8> > const& fftx) 61 {r_8 A,B; return TransfEnergyFFT(x,fftx,A,B);} 54 62 55 // Transforme N-dim sur des float 56 virtual void FFTForward(TArray< complex<r_4> > const & in, TArray< complex<r_4> > & out); 57 virtual void FFTBackward(TArray< complex<r_4> > const & in, TArray< complex<r_4> > & out); 58 virtual r_8 TransfEnergyFFT(TVector< complex<r_4> > const & x, TVector< complex<r_4> > const& fftx 59 , r_8& A, r_8& B); 60 //! Compute the factor to be applied to "fftx=FFT(x)" so that "x" and "FFT(x)" have the same energy 61 virtual inline r_8 TransfEnergyFFT(TVector< complex<r_4> > const & x, TVector< complex<r_4> > const& fftx) 62 {r_8 A,B; return TransfEnergyFFT(x,fftx,A,B);} 63 64 virtual void FFTForward(TArray< r_4 > const & in, TArray< complex<r_4> > & out); 65 virtual void FFTBackward(TArray< complex<r_4> > const & in, TArray< r_4 > & out, 66 bool usoutsz=false); 67 virtual r_8 TransfEnergyFFT(TVector< r_4 > const & x, TVector< complex<r_4> > const& fftx 68 , r_8& A, r_8& B); 69 //! Compute the factor to be applied to "fftx=FFT(x)" so that "x" and "FFT(x)" have the same energy 70 virtual inline r_8 TransfEnergyFFT(TVector< r_4 > const & x, TVector< complex<r_4> > const& fftx) 71 {r_8 A,B; return TransfEnergyFFT(x,fftx,A,B);} 63 //! Compute the size of the FFT vector given the input vector 64 virtual uint_4 SizeFFT(TVector<r_4> const & x) {return (uint_4) (x.Size()/2 + 1);} 65 virtual uint_4 SizeFFT(TVector<r_8> const & x) {return (uint_4) (x.Size()/2 + 1);} 66 virtual uint_4 SizeFFT(TVector< complex<r_4> > const & x) {return (uint_4) x.Size();} 67 virtual uint_4 SizeFFT(TVector< complex<r_8> > const & x) {return (uint_4) x.Size();} 72 68 73 69 protected:
Note:
See TracChangeset
for help on using the changeset viewer.