From 058d08cf49da5c24eac4f628e320f5429f67ee21 Mon Sep 17 00:00:00 2001 From: rudy Date: Mon, 9 May 2022 11:43:52 +0200 Subject: [PATCH] feat: verify the computed solution error probability --- concrete-optimizer/src/optimisation/atomic_pattern.rs | 6 ++++++ 1 file changed, 6 insertions(+) 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 }