function I = adquad(f, a, b, err, m) I1 = trapz_int(f, a, b, m); I2 = trapz_int(f, a, b, 2*m); if abs(I1 - I2) < err % success I = I2; return else % recursive subdivision I = adquad(f, a, (a+b)/2, err, m) + adquad(f, (a+b)/2, b, err, m); end end;