def quad(fintegrand, xmin, xmax, n=1e4): spacings = np.logspace(np.log10(xmin), np.log10(xmax), n) integrand_arr = fintegrand(spacings) val = np.trapz(integrand_arr, dx=np.diff(spacings)) return val