pub fn differential_evolution( objective: fn(&[f64]) -> f64, bounds: &[(f64, f64)], pop_size: usize, generations: usize, f_weight: f64, cr: f64, seed: u64, ) -> Vec<f64>