From 4fffc26bbc405f3ee52cfe7339e0091e8877ef5a Mon Sep 17 00:00:00 2001 From: Quentin Bourgerie Date: Fri, 12 Aug 2022 10:32:18 +0200 Subject: [PATCH] fix: Don't let the optimizer to be to optimistic, up to 16 bits we didn't have yet a solution (#131) --- .../src/optimization/dag/solo_key/optimize_generic.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/concrete-optimizer/src/optimization/dag/solo_key/optimize_generic.rs b/concrete-optimizer/src/optimization/dag/solo_key/optimize_generic.rs index fd6f92621..70e6fab73 100644 --- a/concrete-optimizer/src/optimization/dag/solo_key/optimize_generic.rs +++ b/concrete-optimizer/src/optimization/dag/solo_key/optimize_generic.rs @@ -10,6 +10,7 @@ use crate::optimization::wop_atomic_pattern::optimize::optimize_one as wop_optim use crate::optimization::wop_atomic_pattern::Solution as WopSolution; const MINIMAL_WOP_PRECISION: Precision = 9; +const MAXIMAL_WOP_PRECISION: Precision = 16; pub enum Solution { WpSolution(WpSolution), @@ -54,6 +55,8 @@ pub fn optimize( ) .best_solution; opt_sol.map(Solution::WpSolution) + } else if max_precision > MAXIMAL_WOP_PRECISION { + None } else { let fallback_16b_precision = 16; let default_log_norm = default_log_norm2_woppbs;