Added script front-end for primer-design code
[htsworkflow.git] / htswanalysis / MACS / lib / gsl / gsl-1.11 / doc / examples / sum.c
1 #include <stdio.h>
2 #include <gsl/gsl_math.h>
3 #include <gsl/gsl_sum.h>
4
5 #define N 20
6
7 int
8 main (void)
9 {
10   double t[N];
11   double sum_accel, err;
12   double sum = 0;
13   int n;
14   
15   gsl_sum_levin_u_workspace * w 
16     = gsl_sum_levin_u_alloc (N);
17
18   const double zeta_2 = M_PI * M_PI / 6.0;
19   
20   /* terms for zeta(2) = \sum_{n=1}^{\infty} 1/n^2 */
21
22   for (n = 0; n < N; n++)
23     {
24       double np1 = n + 1.0;
25       t[n] = 1.0 / (np1 * np1);
26       sum += t[n];
27     }
28   
29   gsl_sum_levin_u_accel (t, N, w, &sum_accel, &err);
30
31   printf ("term-by-term sum = % .16f using %d terms\n", 
32           sum, N);
33
34   printf ("term-by-term sum = % .16f using %d terms\n", 
35           w->sum_plain, w->terms_used);
36
37   printf ("exact value      = % .16f\n", zeta_2);
38   printf ("accelerated sum  = % .16f using %d terms\n", 
39           sum_accel, w->terms_used);
40
41   printf ("estimated error  = % .16f\n", err);
42   printf ("actual error     = % .16f\n", 
43           sum_accel - zeta_2);
44
45   gsl_sum_levin_u_free (w);
46   return 0;
47 }