#define FUNC(x) ((*funk)(1.0/(x))/((x)*(x))) double midinf(double (*funk)(double), double aa, double bb, int n) { double x,tnm,sum,del,ddel,b,a; static double s; int it,j; b=1.0/aa; a=1.0/bb; if (n == 1) { return (s=(b-a)*FUNC(0.5*(a+b))); } else { for(it=1,j=1;j