aflibFFT.h

00001 
00002 
00003 
00004 #ifndef _AFLIBFFT_H
00005 #define _AFLIBFFT_H
00006 
00007 
00008 #ifdef HAVE_CONFIG_H
00009 #include <config.h>
00010 #endif
00011 
00012 #include "aflib.h"
00013 
00014 
00015 typedef struct {
00016         double re, im;
00017     } COMPLEX;
00018 
00027 class aflibFFT {
00028 
00029 public:
00030 
00031    aflibFFT();
00032 
00033    ~aflibFFT();
00034 
00035    void
00036    fft_double (
00037       unsigned  NumSamples,
00038       int       InverseTransform,
00039       const double   *RealIn,
00040       const double   *ImagIn,
00041       double   *RealOut,
00042       double   *ImagOut );
00043 
00044 private:
00045 
00046 unsigned int Nfactors;
00047 COMPLEX      *W_factors;
00048 
00049    int
00050    fft (
00051       COMPLEX *in,
00052       unsigned  n,
00053       COMPLEX *out);
00054 
00055    int
00056    rft (
00057       COMPLEX *in,
00058       unsigned  n,
00059       COMPLEX *out);
00060 
00061    void
00062    Fourier (
00063       COMPLEX *in,
00064       unsigned  n,
00065       COMPLEX *out);
00066 
00067    unsigned
00068    radix (unsigned n);
00069 
00070    void
00071    split (
00072       register COMPLEX *in,
00073       register unsigned r,
00074       register unsigned m,
00075       register COMPLEX *out);
00076 
00077    void
00078    join (
00079       register COMPLEX *in,
00080       register unsigned m,
00081       register unsigned n,
00082       register COMPLEX *out);
00083 
00084    int
00085    W_init(unsigned n);
00086 
00087 };
00088 
00089 
00090 #endif

Generated on Tue Jan 16 12:42:55 2007 for Open Source Audio Library Project by  doxygen 1.4.6