pub fn adaptive_central_difference<F>( function: F, x: f64, ) -> Result<DerivativeEstimate, AnalysisError>where F: Fn(f64) -> f64,