core/vnl/algo/vnl_fft_base.h
Go to the documentation of this file.
00001 // This is core/vnl/algo/vnl_fft_base.h
00002 #ifndef vnl_fft_base_h_
00003 #define vnl_fft_base_h_
00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00005 #pragma interface
00006 #endif
00007 //:
00008 // \file
00009 // \brief In-place n-D fast Fourier transform
00010 // \author fsm
00011 
00012 #include <vcl_complex.h>
00013 #include <vnl/algo/vnl_fft_prime_factors.h>
00014 
00015 //: Base class for in-place ND fast Fourier transform.
00016 
00017 export template <int D, class T>
00018 struct vnl_fft_base
00019 {
00020   vnl_fft_base() { }
00021 
00022   //: dir = +1/-1 according to direction of transform.
00023   void transform(vcl_complex<T> *signal, int dir);
00024 
00025  protected:
00026   //: prime factorizations of signal dimensions.
00027   vnl_fft_prime_factors<T> factors_[D];
00028 };
00029 
00030 #endif // vnl_fft_base_h_