diff options
Diffstat (limited to 'fft-test.c')
-rw-r--r-- | fft-test.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/fft-test.c b/fft-test.c new file mode 100644 index 0000000..98667a5 --- /dev/null +++ b/fft-test.c @@ -0,0 +1,41 @@ +#include <assert.h> +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#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; +} |