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