template struct DErule : Quadrature { Doub a,b,hmax,s; T &func; DErule(T &funcc, const Doub aa, const Doub bb, const Doub hmaxx=3.7) : func(funcc), a(aa), b(bb), hmax(hmaxx) {n=0;} Doub next() { Doub del,fact,q,sum,t,twoh; Int it,j; n++; if (n == 1) { fact=0.25; return s=hmax*2.0*(b-a)*fact*func(0.5*(b+a),0.5*(b-a)); } else { for (it=1,j=1;j