/*******************************************************************************
*  cfft.h   :   radix-2 complex fft
*  author   :   duweitao
*  date     :   2008-June-24th
*  version  :   0.1
*  modify   :   initial version
*******************************************************************************/

#ifndef __CFFT_H__
#define __CFFT_H__
  typedef double            cfftdata_t;
  typedef unsigned short    u16_t ;
  typedef unsigned char     u8_t ;
  typedef struct {              
    u16_t       N;           // fft length
    u16_t       nLv;         // number of level
    u16_t       nBfL;        // number of butterfly per level
    cfftdata_t  FFTPI;       // PI
    cfftdata_t  *twd;        // twiddle factors
    u8_t        *bitRevMap;  // bit reverse map
    char        *errMsg;     // error message
    int         msgBufLen;   // error message buffer length
  } objCfft_t, *handleCfft_t;
    
int CfftInit(int N, handleCfft_t *hCfftPtr);
int CfftRun(cfftdata_t *in, cfftdata_t *out, handleCfft_t hCfft);
int CfftClose( handleCfft_t hCfft);
#else
#endif
