#include #include #include #include #include "fft.h" #define N_SAMPLES (1 << 14) int main () { complex_t orig[N_SAMPLES]; complex_t buffer[N_SAMPLES]; int i; for (i = 0; i < N_SAMPLES; ++i) { orig[i].re = drand48() * 10000; orig[i].im = drand48() * 10000; buffer[i] = orig[i]; } fft (buffer, N_SAMPLES); ifft (buffer, N_SAMPLES); for (i = 0; i < N_SAMPLES; ++i) { if (fabs (buffer[i].re - orig[i].re ) > 0.02) printf ("at %d: %f vs %f\n", i, buffer[i].re, orig[i].re); if (fabs (buffer[i].im - orig[i].im ) > 0.02) printf ("at %d: %f vs %f\n", i, buffer[i].im, orig[i].im); assert (fabs (buffer[i].re - orig[i].re) < 0.02); assert (fabs (buffer[i].im - orig[i].im) < 0.02); } return 0; }