Added script front-end for primer-design code
[htsworkflow.git] / htswanalysis / MACS / lib / gsl / gsl-1.11 / doc / examples / fitting.c
1 #include <stdio.h>
2 #include <gsl/gsl_fit.h>
3
4 int
5 main (void)
6 {
7   int i, n = 4;
8   double x[4] = { 1970, 1980, 1990, 2000 };
9   double y[4] = {   12,   11,   14,   13 };
10   double w[4] = {  0.1,  0.2,  0.3,  0.4 };
11
12   double c0, c1, cov00, cov01, cov11, chisq;
13
14   gsl_fit_wlinear (x, 1, w, 1, y, 1, n, 
15                    &c0, &c1, &cov00, &cov01, &cov11, 
16                    &chisq);
17
18   printf ("# best fit: Y = %g + %g X\n", c0, c1);
19   printf ("# covariance matrix:\n");
20   printf ("# [ %g, %g\n#   %g, %g]\n", 
21           cov00, cov01, cov01, cov11);
22   printf ("# chisq = %g\n", chisq);
23
24   for (i = 0; i < n; i++)
25     printf ("data: %g %g %g\n", 
26                    x[i], y[i], 1/sqrt(w[i]));
27
28   printf ("\n");
29
30   for (i = -30; i < 130; i++)
31     {
32       double xf = x[0] + (i/100.0) * (x[n-1] - x[0]);
33       double yf, yf_err;
34
35       gsl_fit_linear_est (xf, 
36                           c0, c1, 
37                           cov00, cov01, cov11, 
38                           &yf, &yf_err);
39
40       printf ("fit: %g %g\n", xf, yf);
41       printf ("hi : %g %g\n", xf, yf + yf_err);
42       printf ("lo : %g %g\n", xf, yf - yf_err);
43     }
44   return 0;
45 }