pub fn differential_evolution<F>(
func: &F,
bounds: &[(f64, f64)],
config: DEConfig,
) -> Result<DEReport>Expand description
Runs Differential Evolution optimization on a function.
This is a convenience function that mirrors SciPy’s differential_evolution API.
It creates a DE optimizer with the given bounds and configuration, then runs
the optimization to find the global minimum.
§Arguments
func- The objective function to minimize, mapping&Array1<f64>tof64bounds- Vector of (lower, upper) bound pairs for each dimensionconfig- DE configuration (useDEConfigBuilderto construct)
§Returns
Returns Ok(DEReport) containing the optimization result on success.
§Errors
Returns DEError::InvalidBounds if any bound pair has upper < lower.
§Example
use autoeq_de::{differential_evolution, DEConfigBuilder};
let result = differential_evolution(
&|x| x[0].powi(2) + x[1].powi(2),
&[(-5.0, 5.0), (-5.0, 5.0)],
DEConfigBuilder::new().maxiter(50).seed(42).build(),
).expect("optimization failed");
assert!(result.fun < 0.01);