double exact_scale_to_time(double scale) { if (scale == 1.0) return 0.0; if (scale < 1e-30) scale = 1e-30; double tol = fabs(scale-1.0)*1e-7; if (tol>1e-7) tol = 1e-7; return (adaptiveSimpsons(inv_hubble_scaling, NULL, 1.0, scale, tol, 20)); }
int main() { double a = 0; double b = 4; double epsilon = 1e-6; std::cout.precision (16); std::cout << "Adaptive: I = " << adaptiveSimpsons (f, a, b, epsilon); std::cout << " | " << evaluations << " evaluations"; std::cout << " | max depth: " << maxDepth << std::endl; return 0; }