source: Sophya/trunk/SophyaLib/NTools/fftpserver.h@ 1096

Last change on this file since 1096 was 896, checked in by ansari, 25 years ago

Documentation- namespace, utils.cc mis ds SysTools - Reza 12/4/2000

File size: 2.3 KB
RevLine 
[710]1#ifndef FFTPServer_H_SEEN
2#define FFTPServer_H_SEEN
3
4#include "fftservintf.h"
5
6// implementation de FFTServerInterface en utilisant FFTPack
7
8namespace SOPHYA {
9
[896]10//! An FFT server based on fftpack.
[710]11class FFTPackServer : public FFTServerInterface {
12 public:
13 FFTPackServer();
14 virtual ~FFTPackServer();
15
16 // Implementation de l'interface FFTServerInterface
17
18 virtual FFTServerInterface * Clone();
19
[717]20 // Transforme unidimensionnel sur des double
[710]21 virtual void FFTForward(TVector< complex<r_8> > const & in, TVector< complex<r_8> > & out);
22 virtual void FFTBackward(TVector< complex<r_8> > const & in, TVector< complex<r_8> > & out);
23 virtual void FFTForward(TVector< r_8 > const & in, TVector< complex<r_8> > & out);
24 virtual void FFTBackward(TVector< complex<r_8> > const & in, TVector< r_8 > & out);
25
[717]26 // Transforme unidimensionnel sur des float
[710]27 virtual void FFTForward(TVector< complex<r_4> > const & in, TVector< complex<r_4> > & out);
28 virtual void FFTBackward(TVector< complex<r_4> > const & in, TVector< complex<r_4> > & out);
29 virtual void FFTForward(TVector< r_4 > const & in, TVector< complex<r_4> > & out);
30 virtual void FFTBackward(TVector< complex<r_4> > const & in, TVector< r_4 > & out);
31
32 // Methodes propres a cette classe
[791]33 virtual void fftf(int_4 l, float* inout);
34 virtual void fftb(int_4 l, float* inout);
35 virtual void fftf(int_4 l, double* inout);
36 virtual void fftb(int_4 l, double* inout);
37 virtual void fftf(int_4 l, complex<float>* inout);
38 virtual void fftb(int_4 l, complex<float>* inout);
39 virtual void fftf(int_4 l, complex<double>* inout);
40 virtual void fftb(int_4 l, complex<double>* inout);
[710]41
[717]42// Methodes statiques pour reordonner les donnees
43 virtual void ReShapetoReal( TVector< complex<r_8> > const & in, TVector< r_8 > & out);
44 virtual void ReShapetoReal( TVector< complex<r_4> > const & in, TVector< r_4 > & out);
45
46 virtual void ReShapetoCompl(TVector< r_8 > const & in, TVector< complex<r_8> > & out);
47 virtual void ReShapetoCompl(TVector< r_4 > const & in, TVector< complex<r_4> > & out);
48
[710]49 protected:
[791]50 virtual void checkint_rfft(int_4 l);
51 virtual void checkint_dfft(int_4 l);
52 virtual void checkint_cfft(int_4 l);
53 virtual void checkint_cdfft(int_4 l);
[710]54
55 int sz_rfft;
[791]56 r_4* ws_rfft;
[710]57
58 int sz_cfft;
[791]59 r_4* ws_cfft;
[710]60
61 int sz_dfft;
[791]62 r_8* ws_dfft;
[710]63
64 int sz_cdfft;
[791]65 r_8* ws_cdfft;
[710]66};
67
68} // Fin du namespace
69
70
71
72
73#endif
Note: See TracBrowser for help on using the repository browser.