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

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

Introduction FFTServerInterface et FFTPackServer - Reza 21/01/2000

File size: 1.8 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 virtual void FFTForward(TVector< complex<r_8> > const & in, TVector< complex<r_8> > & out);
20 virtual void FFTBackward(TVector< complex<r_8> > const & in, TVector< complex<r_8> > & out);
21 virtual void FFTForward(TVector< r_8 > const & in, TVector< complex<r_8> > & out);
22 virtual void FFTBackward(TVector< complex<r_8> > const & in, TVector< r_8 > & out);
23
24 virtual void FFTForward(TVector< complex<r_4> > const & in, TVector< complex<r_4> > & out);
25 virtual void FFTBackward(TVector< complex<r_4> > const & in, TVector< complex<r_4> > & out);
26 virtual void FFTForward(TVector< r_4 > const & in, TVector< complex<r_4> > & out);
27 virtual void FFTBackward(TVector< complex<r_4> > const & in, TVector< r_4 > & out);
28
29 // Methodes propres a cette classe
30 virtual void fftf(int l, float* inout);
31 virtual void fftb(int l, float* inout);
32 virtual void fftf(int l, double* inout);
33 virtual void fftb(int l, double* inout);
34 virtual void fftf(int l, complex<float>* inout);
35 virtual void fftb(int l, complex<float>* inout);
36 virtual void fftf(int l, complex<double>* inout);
37 virtual void fftb(int l, complex<double>* inout);
38
39 protected:
40 virtual void checkint_rfft(int l);
41 virtual void checkint_dfft(int l);
42 virtual void checkint_cfft(int l);
43 virtual void checkint_cdfft(int l);
44
45 int sz_rfft;
46 float* ws_rfft;
47
48 int sz_cfft;
49 float* ws_cfft;
50
51 int sz_dfft;
52 double* ws_dfft;
53
54 int sz_cdfft;
55 double* ws_cdfft;
56};
57
58} // Fin du namespace
59
60
61
62
63#endif
Note: See TracBrowser for help on using the repository browser.