pub fn adaptive_simpson<F>( function: F, a: f64, b: f64, absolute_tolerance: f64, max_evaluations: u32, ) -> Result<QuadratureResult, QuadratureError>where F: Fn(f64) -> f64,