15 .35093050047350483e-2, .81371973654528350e-2, .12696032654631030e-1, .17136931456510717e-1,
16 .21417949011113340e-1, .25499029631188088e-1, .29342046739267774e-1, .32911111388180923e-1,
17 .36172897054424253e-1, .39096947893535153e-1, .41655962113473378e-1, .43826046502201906e-1,
18 .45586939347881942e-1, .46922199540402283e-1, .47819360039637430e-1, .48270044257363900e-1,
19 .48270044257363900e-1, .47819360039637430e-1, .46922199540402283e-1, .45586939347881942e-1,
20 .43826046502201906e-1, .41655962113473378e-1, .39096947893535153e-1, .36172897054424253e-1,
21 .32911111388180923e-1, .29342046739267774e-1, .25499029631188088e-1, .21417949011113340e-1,
22 .17136931456510717e-1, .12696032654631030e-1, .81371973654528350e-2, .35093050047350483e-2
26 -.498631930924740780, -.49280575577263417, -.4823811277937532200, -.46745303796886984000,
27 -.448160577883026060, -.42468380686628499, -.3972418979839712000, -.36609105937014484000,
28 -.331522133465107600, -.29385787862038116, -.2534499544661147000, -.21067563806531767000,
29 -.165934301141063820, -.11964368112606854, -.7223598079139825e-1, -.24153832843869158e-1,
30 .24153832843869158e-1, .7223598079139825e-1, .11964368112606854, .165934301141063820,
31 .21067563806531767000, .2534499544661147000, .29385787862038116, .331522133465107600,
32 .36609105937014484000, .3972418979839712000, .42468380686628499, .448160577883026060,
33 .46745303796886984000, .4823811277937532200, .49280575577263417, .498631930924740780
37 template<
typename Integrand, methods Method>
48 double a = 0.5*(max+
min);
61 template<
typename Integrand, methods Method>
72 double a = 0.5*(max+
min);
77 func(x, y, numPoints);
91 double qg32(
double,
double,
double(*)(
double) );
119 for (
int i=0; i<
m_n; ++i)
121 double x = (
m_a*(m_n-i-0.5)+
m_b*(i+0.5))*rn;
157 const double sixth = 1./6.;
159 for (
int i=0; i<
m_n; ++i)
161 double x1 = (
m_a*(m_n-i-sixth)+
m_b*(i+sixth))*rn;
163 double x2 = (
m_a*(m_n-i-1+sixth)+
m_b*(i+1-sixth))*rn;
205 const int itmax=40/m_f.NREF, npt=5;
206 double d1[npt], d0[npt-1];
208 const double w1 = m_f.NREF*m_f.NREF, w2 = 1.0/w1;
209 for (
int i=0; i<npt; ++i)
213 for (
int i=0; i<itmax; ++i)
218 int l = (i<npt-1) ? i : npt-1;
219 for (
int m=0; m<l; ++m)
225 for (
int m=0; m<l; ++m)
227 d1[m+1] = (d1[m]-d0[m]*fr)/(w1-fr);
232 m_dy = fabs(m_sum-y);
235 if ( i > 2 && m_dy <= eps*fabs(y) )
268 const int itmax=40/m_f.NREF;
269 double coarse=0.,fine=0.;
270 for (
int i=0; i<itmax; ++i)
276 m_dy = fabs(coarse-fine);
279 if ( i > 2 && m_dy <= eps*fabs(fine) )
Midpoint(const T &f, double a, double b)
static const int numPoints
NORETURN void TotalInsanity(void)
ALIGNED(CD_ALIGN) static const double qg32_w[numPoints]
Trapezium(const T &f, double a, double b)
double sum(double min, double max) const
double sum(double min, double max) const
double reduce_ab(const double *a, const double *b, long ilo, long ihi)
double qg32(double, double, double(*)(double))
VecIntegrator(const Integrand &fun)
Integrator(const Integrand &fun)