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

Last change on this file since 753 was 717, checked in by ansari, 26 years ago

Introduction FFTMayer, debug de FFTPack - Reza 5/2/2000

File size: 2.3 KB
Line 
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
10class FFTPackServer : public FFTServerInterface {
11 public:
12 FFTPackServer();
13 virtual ~FFTPackServer();
14
15 // Implementation de l'interface FFTServerInterface
16
17 virtual FFTServerInterface * Clone();
18
19 // Transforme unidimensionnel sur des double
20 virtual void FFTForward(TVector< complex<r_8> > const & in, TVector< complex<r_8> > & out);
21 virtual void FFTBackward(TVector< complex<r_8> > const & in, TVector< complex<r_8> > & out);
22 virtual void FFTForward(TVector< r_8 > const & in, TVector< complex<r_8> > & out);
23 virtual void FFTBackward(TVector< complex<r_8> > const & in, TVector< r_8 > & out);
24
25 // Transforme unidimensionnel sur des float
26 virtual void FFTForward(TVector< complex<r_4> > const & in, TVector< complex<r_4> > & out);
27 virtual void FFTBackward(TVector< complex<r_4> > const & in, TVector< complex<r_4> > & out);
28 virtual void FFTForward(TVector< r_4 > const & in, TVector< complex<r_4> > & out);
29 virtual void FFTBackward(TVector< complex<r_4> > const & in, TVector< r_4 > & out);
30
31 // Methodes propres a cette classe
32 virtual void fftf(int l, float* inout);
33 virtual void fftb(int l, float* inout);
34 virtual void fftf(int l, double* inout);
35 virtual void fftb(int l, double* inout);
36 virtual void fftf(int l, complex<float>* inout);
37 virtual void fftb(int l, complex<float>* inout);
38 virtual void fftf(int l, complex<double>* inout);
39 virtual void fftb(int l, complex<double>* inout);
40
41// Methodes statiques pour reordonner les donnees
42 virtual void ReShapetoReal( TVector< complex<r_8> > const & in, TVector< r_8 > & out);
43 virtual void ReShapetoReal( TVector< complex<r_4> > const & in, TVector< r_4 > & out);
44
45 virtual void ReShapetoCompl(TVector< r_8 > const & in, TVector< complex<r_8> > & out);
46 virtual void ReShapetoCompl(TVector< r_4 > const & in, TVector< complex<r_4> > & out);
47
48 protected:
49 virtual void checkint_rfft(int l);
50 virtual void checkint_dfft(int l);
51 virtual void checkint_cfft(int l);
52 virtual void checkint_cdfft(int l);
53
54 int sz_rfft;
55 float* ws_rfft;
56
57 int sz_cfft;
58 float* ws_cfft;
59
60 int sz_dfft;
61 double* ws_dfft;
62
63 int sz_cdfft;
64 double* ws_cdfft;
65};
66
67} // Fin du namespace
68
69
70
71
72#endif
Note: See TracBrowser for help on using the repository browser.