From ee1d949d7c480ce8acaadad324223b4f1b2bf54c Mon Sep 17 00:00:00 2001 From: Rutherther Date: Sun, 16 Nov 2025 19:52:05 +0100 Subject: [PATCH] feat: add number of constraints as a generic --- codes/eoa_lib/src/constraints.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/codes/eoa_lib/src/constraints.rs b/codes/eoa_lib/src/constraints.rs index 1f879061c134940aca25ce181fb1025f1a4bd17e..9101cd7d01dbb693d8c208a6c0a390f961a77380 100644 --- a/codes/eoa_lib/src/constraints.rs +++ b/codes/eoa_lib/src/constraints.rs @@ -40,6 +40,7 @@ impl ConstraintFunction for LowerThanCo } pub struct ConstrainedFitnessFunction<'a, + const CONSTRAINTS: usize, TIn, TOut, TFitness: FitnessFunction, @@ -58,11 +59,12 @@ pub enum ConstrainedFitnessErr { } impl <'a, + const CONSTRAINTS: usize, TOut: std::ops::Mul + std::ops::AddAssign + Copy, TIn, TFitness: FitnessFunction, TConstraint: ConstraintFunction> - FitnessFunction for ConstrainedFitnessFunction<'a, TIn, TOut, TFitness, TConstraint> { + FitnessFunction for ConstrainedFitnessFunction<'a, CONSTRAINTS, TIn, TOut, TFitness, TConstraint> { type In = TFitness::In; type Out = TOut; type Err = ConstrainedFitnessErr; @@ -94,6 +96,7 @@ impl <'a, pub fn evolve_constraint_penalty_weight_k , TFitness: FitnessFunction, @@ -112,7 +115,7 @@ pub fn evolve_constraint_penalty_weight_k &EvolutionStats, &EvaluatedPopulation, - &mut ConstrainedFitnessFunction, + &mut ConstrainedFitnessFunction, &mut TSelection, &mut TPairing, &mut TCrossover, @@ -157,6 +160,7 @@ pub fn evolve_constraint_penalty_weight_k pub fn evolve_constraint_penalty_weight_tau_target , TFitness: FitnessFunction, @@ -174,7 +178,7 @@ pub fn evolve_constraint_penalty_weight_tau_target &EvolutionStats, &EvaluatedPopulation, - &mut ConstrainedFitnessFunction, + &mut ConstrainedFitnessFunction, &mut TSelection, &mut TPairing, &mut TCrossover,