libwt  1.0.0
A C++ library for the continous wavelet transform.
fft_fftw3.hh
1 #ifndef __WT_FFT_FFTW3_HH__
2 #define __WT_FFT_FFTW3_HH__
3 
4 #include <fftw3.h>
5 #include "types.hh"
6 
7 namespace wt {
8 
10 class FFT
11 {
12 public:
14  typedef enum {
17  } Direction;
18 
19 public:
21  FFT(CVector &in, CVector &out, Direction dir);
24  FFT(CMatrix &in, CMatrix &out, Direction dir);
26  FFT(CVector &inout, Direction dir);
28  FFT(CMatrix &inout, Direction dir);
29 
31  virtual ~FFT();
32 
34  void exec();
35 
36 public:
38  static void exec(CVector &in, CVector &out, Direction dir);
41  static void exec(CMatrix &in, CMatrix &out, Direction dir);
43  static void exec(CVector &inout, Direction dir);
45  static void exec(CMatrix &inout, Direction dir);
46 
49  static size_t roundUp(size_t N);
50 
51 protected:
53  fftw_plan _plan;
54 };
55 
56 }
57 
58 #endif // __WT_FFT_FFTW3_HH__
static size_t roundUp(size_t N)
Computes the smallest samples size larger than or equal to N for which the FFT can be computed fast...
Definition: fft_fftw3.cc:93
void exec()
Executes the FFT.
Definition: fft_fftw3.cc:64
FFT(CVector &in, CVector &out, Direction dir)
Constructs the FFT of the input vector in and stores the result into out.
Definition: fft_fftw3.cc:7
Direction
Specifies the possible FFT directions.
Definition: fft_fftw3.hh:14
Implements the generic FFT-plan interface for the FFTW3 library.
Definition: fft_fftw3.hh:10
virtual ~FFT()
Destructor.
Definition: fft_fftw3.cc:59
Definition: convolution.hh:7
Backward transform.
Definition: fft_fftw3.hh:16
Forward transform.
Definition: fft_fftw3.hh:15
fftw_plan _plan
The actual FFTW3 plan being executed.
Definition: fft_fftw3.hh:53