function integrand(x) { return (Math.exp(x)); } ; var from=0 ; var to=1 ; var accuracy=0.001 ; // or whatever var acc2=accuracy/Math.abs(to-from) ; var sum=0 ; var ordinates=0; function adaptive (from, to) { var median =(to+from)/2 ; stepWidth=to-from ; low=integrand(from) ; high=integrand(to) ; trapezoid=(low+high)*stepWidth/2 ; Simpson=(low+high+4*integrand(median))*stepWidth/6 ; errMargin=acc2*Math.abs(stepWidth) ; if (Math.abs(Simpson-trapezoid)