double V_2(double x, double y) { /* double x_eval = x; double y_eval = y; double x1 = -2.0; double y1 = 2.0; double x2 = 7.0; double y2 = 7.0; x_eval -= x1; y_eval -= y1; x2 -= x1; y2 -= y1; double L = sqrt(x2*x2+y2*y2); if (fabs(L) >= 1E-12) { x2 /= L; y2 /= L; } else return 0; x = (x_eval*y2-y_eval*x2); y = (x_eval*x2+y_eval*y2); return (antideriv(x,y)-antideriv(x,y-L))/(-_2pi);*/ /* double s = sqrt(x*x+y*y); if ( fabs(s) >= 1E-14 ) return log(s)/(-_2pi); else return 0.0;*/ return (antideriv(x,y)-antideriv(x,y-3.0))/(-_2pi); }
int main (void) { double (*testfn)(double); double (*antideriv)(double); int lower=-8; int upper=8; int budget=100000; testfn = exponential; antideriv = exponential; double answer = antideriv(upper)-antideriv(lower); printf("%20.14f \n", answer); adaptivetrial(trapezium, testfn, lower, upper, answer, budget); adaptivetrial(boole, testfn, lower, upper, answer, budget); depthtrial(trapezium, testfn, lower, upper, answer, budget); depthtrial(boole, testfn, lower, upper, answer, budget); }