diff --git a/concrete-optimizer/src/optimisation/atomic_pattern.rs b/concrete-optimizer/src/optimisation/atomic_pattern.rs index cbb2da97c..698fd9ae1 100644 --- a/concrete-optimizer/src/optimisation/atomic_pattern.rs +++ b/concrete-optimizer/src/optimisation/atomic_pattern.rs @@ -471,6 +471,7 @@ fn assert_checks( const BITS_CARRY: u64 = 1; const BITS_PADDING_WITHOUT_NOISE: u64 = 1; +const REL_EPSILON_PROBA: f64 = 1.0 + 1e-8; #[allow(clippy::too_many_lines)] pub fn optimise_one( @@ -582,5 +583,10 @@ pub fn optimise_one( } } + if let Some(sol) = state.best_solution { + assert!(0.0 <= sol.p_error && sol.p_error <= 1.0); + assert!(sol.p_error <= maximum_acceptable_error_probability * REL_EPSILON_PROBA); + } + state }