use crate::{fitness::square_and_sum, params::CmaesParams, state::CmaesState, strategy::Cmaes};
use anyhow::Result;
#[allow(unused_imports)]
use blas_src;
pub fn example() -> Result<()> {
let params = CmaesParams {
popsize: 50,
xstart: vec![0.0; 50],
sigma: 0.75,
};
let cmaes = Cmaes::new(¶ms)?;
let mut state = CmaesState::init_state(¶ms)?;
for _i in 0..150 {
let mut pop = cmaes.ask(&mut state)?;
let mut fitness = square_and_sum(&pop)?;
state = cmaes.tell(state, &mut pop, &mut fitness)?;
}
println!("Fitness (mean): {:+.4?}", &state.best_y_fit.mean());
Ok(())
}