Added script front-end for primer-design code
[htsworkflow.git] / htswanalysis / MACS / lib / gsl / gsl-1.11 / doc / examples / fftreal.c
1 #include <stdio.h>
2 #include <math.h>
3 #include <gsl/gsl_errno.h>
4 #include <gsl/gsl_fft_real.h>
5 #include <gsl/gsl_fft_halfcomplex.h>
6
7 int
8 main (void)
9 {
10   int i, n = 100;
11   double data[n];
12
13   gsl_fft_real_wavetable * real;
14   gsl_fft_halfcomplex_wavetable * hc;
15   gsl_fft_real_workspace * work;
16
17   for (i = 0; i < n; i++)
18     {
19       data[i] = 0.0;
20     }
21
22   for (i = n / 3; i < 2 * n / 3; i++)
23     {
24       data[i] = 1.0;
25     }
26
27   for (i = 0; i < n; i++)
28     {
29       printf ("%d: %e\n", i, data[i]);
30     }
31   printf ("\n");
32
33   work = gsl_fft_real_workspace_alloc (n);
34   real = gsl_fft_real_wavetable_alloc (n);
35
36   gsl_fft_real_transform (data, 1, n, 
37                           real, work);
38
39   gsl_fft_real_wavetable_free (real);
40
41   for (i = 11; i < n; i++)
42     {
43       data[i] = 0;
44     }
45
46   hc = gsl_fft_halfcomplex_wavetable_alloc (n);
47
48   gsl_fft_halfcomplex_inverse (data, 1, n, 
49                                hc, work);
50   gsl_fft_halfcomplex_wavetable_free (hc);
51
52   for (i = 0; i < n; i++)
53     {
54       printf ("%d: %e\n", i, data[i]);
55     }
56
57   gsl_fft_real_workspace_free (work);
58   return 0;
59 }