Chris@184: #include Chris@184: #include Chris@184: #include Chris@184: #include Chris@184: #include "pstats.h" Chris@184: Chris@184: #ifdef DATATYPEdouble Chris@184: Chris@184: #define CPXTYPE fftw_complex Chris@184: #define PLAN fftw_plan Chris@184: #define FFTMALLOC fftw_malloc Chris@184: #define MAKEPLAN fftw_plan_dft_1d Chris@184: #define DOFFT fftw_execute Chris@184: #define DESTROYPLAN fftw_destroy_plan Chris@184: #define FFTFREE fftw_free Chris@184: Chris@184: #elif defined(DATATYPEfloat) Chris@184: Chris@184: #define CPXTYPE fftwf_complex Chris@184: #define PLAN fftwf_plan Chris@184: #define FFTMALLOC fftwf_malloc Chris@184: #define MAKEPLAN fftwf_plan_dft_1d Chris@184: #define DOFFT fftwf_execute Chris@184: #define DESTROYPLAN fftwf_destroy_plan Chris@184: #define FFTFREE fftwf_free Chris@184: Chris@184: #endif Chris@184: Chris@184: #ifndef CPXTYPE Chris@184: int main(void) Chris@184: { Chris@184: fprintf(stderr,"Datatype not available in FFTW\n" ); Chris@184: return 0; Chris@184: } Chris@184: #else Chris@184: int main(int argc,char ** argv) Chris@184: { Chris@184: int nfft=1024; Chris@184: int isinverse=0; Chris@184: int numffts=1000,i; Chris@184: Chris@184: CPXTYPE * in=NULL; Chris@184: CPXTYPE * out=NULL; Chris@184: PLAN p; Chris@184: Chris@184: pstats_init(); Chris@184: Chris@184: while (1) { Chris@184: int c = getopt (argc, argv, "n:ix:h"); Chris@184: if (c == -1) Chris@184: break; Chris@184: switch (c) { Chris@184: case 'n': Chris@184: nfft = atoi (optarg); Chris@184: break; Chris@184: case 'x': Chris@184: numffts = atoi (optarg); Chris@184: break; Chris@184: case 'i': Chris@184: isinverse = 1; Chris@184: break; Chris@184: case 'h': Chris@184: case '?': Chris@184: default: Chris@184: fprintf(stderr,"options:\n-n N: complex fft length\n-i: inverse\n-x N: number of ffts to compute\n" Chris@184: ""); Chris@184: } Chris@184: } Chris@184: Chris@184: in=FFTMALLOC(sizeof(CPXTYPE) * nfft); Chris@184: out=FFTMALLOC(sizeof(CPXTYPE) * nfft); Chris@184: for (i=0;i