genx 0.4.0

An easy to use and modular genetic algorithms library.
Documentation
pub fn sigma_scaling(fitness_values: &mut Vec<f32>, scaling_factor: f32) {
  let average_fitness = fitness_values.iter().sum::<f32>() / (fitness_values.len() as f32);
  let standard_deviation = fitness_values
    .iter()
    .map(|x| (x - average_fitness).powi(2))
    .sum::<f32>();
  let standard_deviation = (standard_deviation / (fitness_values.len() as f32)).sqrt();
  let worst_fitness = average_fitness - standard_deviation * scaling_factor;
  for x in fitness_values {
    if *x <= worst_fitness {
      *x = 0.0;
    }
    else {
      *x = *x - worst_fitness;
    }

    *x = *x + 1.0;
  }
}