Added script front-end for primer-design code
[htsworkflow.git] / htswanalysis / MACS / lib / gsl / gsl-1.11 / integration / qk15.c
1 /* integration/qk15.c
2  * 
3  * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2007 Brian Gough
4  * 
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 3 of the License, or (at
8  * your option) any later version.
9  * 
10  * This program is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * General Public License for more details.
14  * 
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18  */
19
20 #include <config.h>
21 #include <gsl/gsl_integration.h>
22
23 /* Gauss quadrature weights and kronrod quadrature abscissae and
24    weights as evaluated with 80 decimal digit arithmetic by
25    L. W. Fullerton, Bell Labs, Nov. 1981. */
26
27 static const double xgk[8] =    /* abscissae of the 15-point kronrod rule */
28 {
29   0.991455371120812639206854697526329,
30   0.949107912342758524526189684047851,
31   0.864864423359769072789712788640926,
32   0.741531185599394439863864773280788,
33   0.586087235467691130294144838258730,
34   0.405845151377397166906606412076961,
35   0.207784955007898467600689403773245,
36   0.000000000000000000000000000000000
37 };
38
39 /* xgk[1], xgk[3], ... abscissae of the 7-point gauss rule. 
40    xgk[0], xgk[2], ... abscissae to optimally extend the 7-point gauss rule */
41
42 static const double wg[4] =     /* weights of the 7-point gauss rule */
43 {
44   0.129484966168869693270611432679082,
45   0.279705391489276667901467771423780,
46   0.381830050505118944950369775488975,
47   0.417959183673469387755102040816327
48 };
49
50 static const double wgk[8] =    /* weights of the 15-point kronrod rule */
51 {
52   0.022935322010529224963732008058970,
53   0.063092092629978553290700663189204,
54   0.104790010322250183839876322541518,
55   0.140653259715525918745189590510238,
56   0.169004726639267902826583426598550,
57   0.190350578064785409913256402421014,
58   0.204432940075298892414161999234649,
59   0.209482141084727828012999174891714
60 };
61
62 void
63 gsl_integration_qk15 (const gsl_function * f, double a, double b,
64       double *result, double *abserr,
65       double *resabs, double *resasc)
66 {
67   double fv1[8], fv2[8];
68   gsl_integration_qk (8, xgk, wg, wgk, fv1, fv2, f, a, b, result, abserr, resabs, resasc);
69 }
70