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;