diff --git a/concrete-optimizer/src/optimization/wop_atomic_pattern/optimize.rs b/concrete-optimizer/src/optimization/wop_atomic_pattern/optimize.rs index e3917b4e6..8ca0490cd 100644 --- a/concrete-optimizer/src/optimization/wop_atomic_pattern/optimize.rs +++ b/concrete-optimizer/src/optimization/wop_atomic_pattern/optimize.rs @@ -224,6 +224,7 @@ fn update_state_with_best_decompositions( } let mut best_complexity = state.best_solution.map_or(f64::INFINITY, |s| s.complexity); + let mut best_variance = state.best_solution.map_or(f64::INFINITY, |s| s.noise_max); // BlindRotate dans Circuit BS for (br_dp_index, &br_decomposition_parameter) in BR_BL_FOR_CB.iter().enumerate() { @@ -247,7 +248,8 @@ fn update_state_with_best_decompositions( (n_inputs * (precision - 1)) as f64 * complexity_bit_extract_pbs; if complexity_bit_extract_wo_ks > best_complexity { - continue; + // next br_decomp are at least as costly + break; } // private packing keyswitch, <=> FP-KS (Circuit Boostrap) @@ -306,7 +308,8 @@ fn update_state_with_best_decompositions( let complexity_circuit_bs = complexity_all_pbs + complexity_all_ppks; if complexity_bit_extract_wo_ks + complexity_circuit_bs > best_complexity { - continue; + // next circuit_pbs_decomposition_parameter are at least as costly + break; } let noise_ggsw = base_noise_private_packing_ks + base_noise / 2.; @@ -359,34 +362,33 @@ fn update_state_with_best_decompositions( // next ks.level will be even more costly break; } - - if complexity < best_complexity { - let kappa = consts.kappa; - best_complexity = complexity; - let p_error = find_p_error(kappa, variance_max, noise_max); - let input_lwe_dimension = glwe_params.sample_extract_lwe_dimension(); - let glwe_polynomial_size = glwe_params.polynomial_size(); - let glwe_dimension = glwe_params.glwe_dimension; - state.best_solution = Some(Solution { - input_lwe_dimension, - internal_ks_output_lwe_dimension: internal_dim, - ks_decomposition_level_count: ks_decomposition_parameter.level, - ks_decomposition_base_log: ks_decomposition_parameter.log2_base, - glwe_polynomial_size, - glwe_dimension, - br_decomposition_level_count: br_decomposition_parameter.level, - br_decomposition_base_log: br_decomposition_parameter.log2_base, - noise_max, - complexity, - p_error, - cb_decomposition_level_count: Some( - circuit_pbs_decomposition_parameter.level, - ), - cb_decomposition_base_log: Some( - circuit_pbs_decomposition_parameter.log2_base, - ), - }); + #[allow(clippy::float_cmp)] + if complexity == best_complexity && noise_max > best_variance { + continue; } + + let kappa = consts.kappa; + best_complexity = complexity; + best_variance = noise_max; + let p_error = find_p_error(kappa, variance_max, noise_max); + let input_lwe_dimension = glwe_params.sample_extract_lwe_dimension(); + let glwe_polynomial_size = glwe_params.polynomial_size(); + let glwe_dimension = glwe_params.glwe_dimension; + state.best_solution = Some(Solution { + input_lwe_dimension, + internal_ks_output_lwe_dimension: internal_dim, + ks_decomposition_level_count: ks_decomposition_parameter.level, + ks_decomposition_base_log: ks_decomposition_parameter.log2_base, + glwe_polynomial_size, + glwe_dimension, + br_decomposition_level_count: br_decomposition_parameter.level, + br_decomposition_base_log: br_decomposition_parameter.log2_base, + noise_max, + complexity, + p_error, + cb_decomposition_level_count: Some(circuit_pbs_decomposition_parameter.level), + cb_decomposition_base_log: Some(circuit_pbs_decomposition_parameter.log2_base), + }); } } } @@ -437,8 +439,8 @@ pub fn optimise_one( security_level, noise_factor: log_norm.exp2(), ciphertext_modulus_log, - keyswitch_decompositions: vec![], // to be used later - blind_rotate_decompositions: vec![], // to be used later + keyswitch_decompositions: vec![], + blind_rotate_decompositions: vec![], safe_variance: variance_max, }; diff --git a/v0-parameters/src/wop_parameters.ref-20-06-2022 b/v0-parameters/src/wop_parameters.ref-20-06-2022 index 96d22a773..b61f6af46 100644 --- a/v0-parameters/src/wop_parameters.ref-20-06-2022 +++ b/v0-parameters/src/wop_parameters.ref-20-06-2022 @@ -4,9 +4,9 @@ /* 1 */ V0Parameter( 2, 10, 505, 1, 23, 4, 2), // 130 mops, 6.1e-5 errors /* 2 */ V0Parameter( 2, 10, 528, 1, 23, 5, 2), // 135 mops, 6.0e-5 errors /* 3 */ V0Parameter( 2, 10, 572, 1, 23, 5, 2), // 209 mops, 6.3e-5 errors - /* 4 */ V0Parameter( 2, 10, 497, 2, 15, 4, 2), // 322 mops, 6.0e-5 errors - /* 5 */ V0Parameter( 2, 10, 498, 2, 15, 4, 2), // 322 mops, 5.3e-5 errors - /* 6 */ V0Parameter( 2, 10, 499, 2, 15, 4, 2), // 323 mops, 6.1e-5 errors + /* 4 */ V0Parameter( 2, 10, 497, 2, 16, 4, 2), // 322 mops, 6.0e-5 errors + /* 5 */ V0Parameter( 2, 10, 498, 2, 16, 4, 2), // 322 mops, 5.2e-5 errors + /* 6 */ V0Parameter( 2, 10, 499, 2, 16, 4, 2), // 323 mops, 5.4e-5 errors /* 7 */ V0Parameter( 2, 10, 497, 2, 16, 5, 2), // 324 mops, 5.8e-5 errors /* 8 */ V0Parameter( 2, 10, 520, 2, 16, 5, 2), // 332 mops, 5.9e-5 errors /* 9 */ V0Parameter( 2, 10, 550, 2, 16, 5, 2), // 454 mops, 6.2e-5 errors @@ -37,9 +37,9 @@ /* 0 */ V0Parameter( 2, 10, 504, 1, 23, 5, 2), // 300 mops, 6.3e-5 errors /* 1 */ V0Parameter( 2, 10, 508, 1, 23, 5, 2), // 424 mops, 5.5e-5 errors /* 2 */ V0Parameter( 2, 10, 521, 1, 23, 5, 2), // 556 mops, 6.1e-5 errors - /* 3 */ V0Parameter( 2, 10, 497, 2, 15, 4, 2), // 701 mops, 6.2e-5 errors - /* 4 */ V0Parameter( 2, 10, 493, 2, 15, 5, 2), // 702 mops, 6.2e-5 errors - /* 5 */ V0Parameter( 2, 10, 495, 2, 15, 5, 2), // 703 mops, 5.5e-5 errors + /* 3 */ V0Parameter( 2, 10, 497, 2, 16, 4, 2), // 701 mops, 6.1e-5 errors + /* 4 */ V0Parameter( 2, 10, 493, 2, 16, 5, 2), // 702 mops, 5.8e-5 errors + /* 5 */ V0Parameter( 2, 10, 495, 2, 16, 5, 2), // 703 mops, 5.2e-5 errors /* 6 */ V0Parameter( 2, 10, 503, 2, 16, 5, 2), // 710 mops, 5.3e-5 errors /* 7 */ V0Parameter( 2, 10, 507, 2, 16, 5, 2), // 925 mops, 5.6e-5 errors /* 8 */ V0Parameter( 2, 10, 496, 3, 12, 5, 2), // 991 mops, 5.5e-5 errors @@ -70,9 +70,9 @@ { /* precision 3 */ /* 0 */ V0Parameter( 2, 10, 528, 1, 23, 5, 2), // 620 mops, 6.0e-5 errors /* 1 */ V0Parameter( 2, 10, 572, 1, 23, 5, 2), // 920 mops, 6.3e-5 errors - /* 2 */ V0Parameter( 2, 10, 497, 2, 15, 4, 2), // 1403 mops, 6.0e-5 errors - /* 3 */ V0Parameter( 2, 10, 493, 2, 15, 5, 2), // 1404 mops, 5.6e-5 errors - /* 4 */ V0Parameter( 2, 10, 494, 2, 15, 5, 2), // 1405 mops, 5.8e-5 errors + /* 2 */ V0Parameter( 2, 10, 497, 2, 16, 4, 2), // 1403 mops, 6.0e-5 errors + /* 3 */ V0Parameter( 2, 10, 493, 2, 16, 5, 2), // 1404 mops, 5.4e-5 errors + /* 4 */ V0Parameter( 2, 10, 494, 2, 16, 5, 2), // 1405 mops, 5.1e-5 errors /* 5 */ V0Parameter( 2, 10, 497, 2, 16, 5, 2), // 1410 mops, 5.8e-5 errors /* 6 */ V0Parameter( 2, 10, 520, 2, 16, 5, 2), // 1449 mops, 5.9e-5 errors /* 7 */ V0Parameter( 2, 10, 550, 2, 16, 5, 2), // 1943 mops, 6.2e-5 errors @@ -103,10 +103,10 @@ }, { /* precision 4 */ /* 0 */ V0Parameter( 2, 10, 510, 1, 23, 5, 2), // 1683 mops, 6.2e-5 errors - /* 1 */ V0Parameter( 2, 10, 497, 2, 15, 4, 2), // 2161 mops, 6.1e-5 errors - /* 2 */ V0Parameter( 2, 10, 493, 2, 15, 5, 2), // 2162 mops, 5.9e-5 errors - /* 3 */ V0Parameter( 2, 10, 494, 2, 15, 5, 2), // 2165 mops, 6.2e-5 errors - /* 4 */ V0Parameter( 2, 10, 500, 2, 15, 5, 2), // 2181 mops, 6.2e-5 errors + /* 1 */ V0Parameter( 2, 10, 497, 2, 16, 4, 2), // 2161 mops, 6.0e-5 errors + /* 2 */ V0Parameter( 2, 10, 493, 2, 16, 5, 2), // 2162 mops, 5.6e-5 errors + /* 3 */ V0Parameter( 2, 10, 494, 2, 16, 5, 2), // 2165 mops, 5.9e-5 errors + /* 4 */ V0Parameter( 2, 10, 500, 2, 16, 5, 2), // 2181 mops, 5.3e-5 errors /* 5 */ V0Parameter( 2, 10, 502, 2, 16, 5, 2), // 2818 mops, 6.3e-5 errors /* 6 */ V0Parameter( 2, 10, 495, 3, 12, 5, 2), // 3046 mops, 5.7e-5 errors /* 7 */ V0Parameter( 2, 10, 504, 3, 12, 5, 2), // 3078 mops, 5.7e-5 errors @@ -137,10 +137,10 @@ }, { /* precision 5 */ /* 0 */ V0Parameter( 2, 10, 510, 1, 23, 5, 2), // 1683 mops, 6.2e-5 errors - /* 1 */ V0Parameter( 2, 10, 497, 2, 15, 4, 2), // 2161 mops, 6.1e-5 errors - /* 2 */ V0Parameter( 2, 10, 493, 2, 15, 5, 2), // 2162 mops, 5.9e-5 errors - /* 3 */ V0Parameter( 2, 10, 494, 2, 15, 5, 2), // 2165 mops, 6.2e-5 errors - /* 4 */ V0Parameter( 2, 10, 500, 2, 15, 5, 2), // 2181 mops, 6.2e-5 errors + /* 1 */ V0Parameter( 2, 10, 497, 2, 16, 4, 2), // 2161 mops, 6.0e-5 errors + /* 2 */ V0Parameter( 2, 10, 493, 2, 16, 5, 2), // 2162 mops, 5.6e-5 errors + /* 3 */ V0Parameter( 2, 10, 494, 2, 16, 5, 2), // 2165 mops, 5.9e-5 errors + /* 4 */ V0Parameter( 2, 10, 500, 2, 16, 5, 2), // 2181 mops, 5.3e-5 errors /* 5 */ V0Parameter( 2, 10, 502, 2, 16, 5, 2), // 2818 mops, 6.3e-5 errors /* 6 */ V0Parameter( 2, 10, 495, 3, 12, 5, 2), // 3046 mops, 5.7e-5 errors /* 7 */ V0Parameter( 2, 10, 504, 3, 12, 5, 2), // 3078 mops, 5.7e-5 errors @@ -171,9 +171,9 @@ }, { /* precision 6 */ /* 0 */ V0Parameter( 2, 10, 529, 1, 23, 5, 2), // 2586 mops, 6.2e-5 errors - /* 1 */ V0Parameter( 2, 10, 497, 2, 15, 4, 2), // 3242 mops, 6.2e-5 errors - /* 2 */ V0Parameter( 2, 10, 493, 2, 15, 5, 2), // 3243 mops, 6.0e-5 errors - /* 3 */ V0Parameter( 2, 10, 495, 2, 15, 5, 2), // 3251 mops, 6.0e-5 errors + /* 1 */ V0Parameter( 2, 10, 497, 2, 16, 4, 2), // 3242 mops, 6.1e-5 errors + /* 2 */ V0Parameter( 2, 10, 493, 2, 16, 5, 2), // 3243 mops, 5.9e-5 errors + /* 3 */ V0Parameter( 2, 10, 495, 2, 16, 5, 2), // 3251 mops, 5.7e-5 errors /* 4 */ V0Parameter( 2, 10, 504, 2, 16, 5, 2), // 3287 mops, 6.0e-5 errors /* 5 */ V0Parameter( 2, 10, 509, 2, 16, 5, 2), // 4263 mops, 6.2e-5 errors /* 6 */ V0Parameter( 2, 10, 496, 3, 12, 5, 2), // 4575 mops, 6.2e-5 errors @@ -205,9 +205,9 @@ }, { /* precision 7 */ /* 0 */ V0Parameter( 2, 10, 529, 1, 23, 5, 2), // 2586 mops, 6.2e-5 errors - /* 1 */ V0Parameter( 2, 10, 497, 2, 15, 4, 2), // 3242 mops, 6.2e-5 errors - /* 2 */ V0Parameter( 2, 10, 493, 2, 15, 5, 2), // 3243 mops, 6.0e-5 errors - /* 3 */ V0Parameter( 2, 10, 495, 2, 15, 5, 2), // 3251 mops, 6.0e-5 errors + /* 1 */ V0Parameter( 2, 10, 497, 2, 16, 4, 2), // 3242 mops, 6.1e-5 errors + /* 2 */ V0Parameter( 2, 10, 493, 2, 16, 5, 2), // 3243 mops, 5.9e-5 errors + /* 3 */ V0Parameter( 2, 10, 495, 2, 16, 5, 2), // 3251 mops, 5.7e-5 errors /* 4 */ V0Parameter( 2, 10, 504, 2, 16, 5, 2), // 3287 mops, 6.0e-5 errors /* 5 */ V0Parameter( 2, 10, 509, 2, 16, 5, 2), // 4263 mops, 6.2e-5 errors /* 6 */ V0Parameter( 2, 10, 496, 3, 12, 5, 2), // 4575 mops, 6.2e-5 errors @@ -239,9 +239,9 @@ }, { /* precision 8 */ /* 0 */ V0Parameter( 2, 10, 529, 1, 23, 5, 2), // 2586 mops, 6.2e-5 errors - /* 1 */ V0Parameter( 2, 10, 497, 2, 15, 4, 2), // 3242 mops, 6.2e-5 errors - /* 2 */ V0Parameter( 2, 10, 493, 2, 15, 5, 2), // 3243 mops, 6.0e-5 errors - /* 3 */ V0Parameter( 2, 10, 495, 2, 15, 5, 2), // 3251 mops, 6.0e-5 errors + /* 1 */ V0Parameter( 2, 10, 497, 2, 16, 4, 2), // 3242 mops, 6.1e-5 errors + /* 2 */ V0Parameter( 2, 10, 493, 2, 16, 5, 2), // 3243 mops, 5.9e-5 errors + /* 3 */ V0Parameter( 2, 10, 495, 2, 16, 5, 2), // 3251 mops, 5.7e-5 errors /* 4 */ V0Parameter( 2, 10, 504, 2, 16, 5, 2), // 3287 mops, 6.0e-5 errors /* 5 */ V0Parameter( 2, 10, 509, 2, 16, 5, 2), // 4263 mops, 6.2e-5 errors /* 6 */ V0Parameter( 2, 10, 496, 3, 12, 5, 2), // 4575 mops, 6.2e-5 errors @@ -272,9 +272,9 @@ /* 31 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0), }, { /* precision 9 */ - /* 0 */ V0Parameter( 2, 10, 497, 2, 15, 4, 2), // 4379 mops, 6.3e-5 errors + /* 0 */ V0Parameter( 2, 10, 497, 2, 16, 4, 2), // 4379 mops, 6.2e-5 errors /* 1 */ V0Parameter( 2, 10, 493, 2, 16, 5, 2), // 4381 mops, 6.3e-5 errors - /* 2 */ V0Parameter( 2, 10, 496, 2, 15, 5, 2), // 4397 mops, 5.9e-5 errors + /* 2 */ V0Parameter( 2, 10, 496, 2, 16, 5, 2), // 4397 mops, 5.5e-5 errors /* 3 */ V0Parameter( 2, 10, 510, 2, 16, 5, 2), // 4473 mops, 5.6e-5 errors /* 4 */ V0Parameter( 2, 10, 519, 2, 16, 5, 2), // 5809 mops, 6.1e-5 errors /* 5 */ V0Parameter( 2, 10, 498, 3, 12, 5, 2), // 6192 mops, 5.3e-5 errors @@ -306,9 +306,9 @@ /* 31 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0), }, { /* precision 10 */ - /* 0 */ V0Parameter( 2, 10, 497, 2, 15, 4, 2), // 4379 mops, 6.3e-5 errors + /* 0 */ V0Parameter( 2, 10, 497, 2, 16, 4, 2), // 4379 mops, 6.2e-5 errors /* 1 */ V0Parameter( 2, 10, 493, 2, 16, 5, 2), // 4381 mops, 6.3e-5 errors - /* 2 */ V0Parameter( 2, 10, 496, 2, 15, 5, 2), // 4397 mops, 5.9e-5 errors + /* 2 */ V0Parameter( 2, 10, 496, 2, 16, 5, 2), // 4397 mops, 5.5e-5 errors /* 3 */ V0Parameter( 2, 10, 510, 2, 16, 5, 2), // 4473 mops, 5.6e-5 errors /* 4 */ V0Parameter( 2, 10, 519, 2, 16, 5, 2), // 5809 mops, 6.1e-5 errors /* 5 */ V0Parameter( 2, 10, 498, 3, 12, 5, 2), // 6192 mops, 5.3e-5 errors @@ -340,9 +340,9 @@ /* 31 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0), }, { /* precision 11 */ - /* 0 */ V0Parameter( 2, 10, 497, 2, 15, 4, 2), // 4379 mops, 6.3e-5 errors + /* 0 */ V0Parameter( 2, 10, 497, 2, 16, 4, 2), // 4379 mops, 6.2e-5 errors /* 1 */ V0Parameter( 2, 10, 493, 2, 16, 5, 2), // 4381 mops, 6.3e-5 errors - /* 2 */ V0Parameter( 2, 10, 496, 2, 15, 5, 2), // 4397 mops, 5.9e-5 errors + /* 2 */ V0Parameter( 2, 10, 496, 2, 16, 5, 2), // 4397 mops, 5.5e-5 errors /* 3 */ V0Parameter( 2, 10, 510, 2, 16, 5, 2), // 4473 mops, 5.6e-5 errors /* 4 */ V0Parameter( 2, 10, 519, 2, 16, 5, 2), // 5809 mops, 6.1e-5 errors /* 5 */ V0Parameter( 2, 10, 498, 3, 12, 5, 2), // 6192 mops, 5.3e-5 errors @@ -374,8 +374,8 @@ /* 31 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0), }, { /* precision 12 */ - /* 0 */ V0Parameter( 2, 10, 493, 2, 15, 5, 2), // 5846 mops, 5.6e-5 errors - /* 1 */ V0Parameter( 2, 10, 494, 2, 15, 5, 2), // 5853 mops, 5.8e-5 errors + /* 0 */ V0Parameter( 2, 10, 493, 2, 16, 5, 2), // 5846 mops, 5.4e-5 errors + /* 1 */ V0Parameter( 2, 10, 494, 2, 16, 5, 2), // 5853 mops, 5.1e-5 errors /* 2 */ V0Parameter( 2, 10, 497, 2, 16, 5, 2), // 5874 mops, 5.8e-5 errors /* 3 */ V0Parameter( 2, 10, 520, 2, 16, 5, 2), // 6039 mops, 5.9e-5 errors /* 4 */ V0Parameter( 2, 10, 550, 2, 16, 5, 2), // 8030 mops, 6.2e-5 errors @@ -408,8 +408,8 @@ /* 31 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0), }, { /* precision 13 */ - /* 0 */ V0Parameter( 2, 10, 493, 2, 15, 5, 2), // 5846 mops, 5.6e-5 errors - /* 1 */ V0Parameter( 2, 10, 494, 2, 15, 5, 2), // 5853 mops, 5.8e-5 errors + /* 0 */ V0Parameter( 2, 10, 493, 2, 16, 5, 2), // 5846 mops, 5.4e-5 errors + /* 1 */ V0Parameter( 2, 10, 494, 2, 16, 5, 2), // 5853 mops, 5.1e-5 errors /* 2 */ V0Parameter( 2, 10, 497, 2, 16, 5, 2), // 5874 mops, 5.8e-5 errors /* 3 */ V0Parameter( 2, 10, 520, 2, 16, 5, 2), // 6039 mops, 5.9e-5 errors /* 4 */ V0Parameter( 2, 10, 550, 2, 16, 5, 2), // 8030 mops, 6.2e-5 errors @@ -442,8 +442,8 @@ /* 31 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0), }, { /* precision 14 */ - /* 0 */ V0Parameter( 2, 10, 493, 2, 15, 5, 2), // 5846 mops, 5.6e-5 errors - /* 1 */ V0Parameter( 2, 10, 494, 2, 15, 5, 2), // 5853 mops, 5.8e-5 errors + /* 0 */ V0Parameter( 2, 10, 493, 2, 16, 5, 2), // 5846 mops, 5.4e-5 errors + /* 1 */ V0Parameter( 2, 10, 494, 2, 16, 5, 2), // 5853 mops, 5.1e-5 errors /* 2 */ V0Parameter( 2, 10, 497, 2, 16, 5, 2), // 5874 mops, 5.8e-5 errors /* 3 */ V0Parameter( 2, 10, 520, 2, 16, 5, 2), // 6039 mops, 5.9e-5 errors /* 4 */ V0Parameter( 2, 10, 550, 2, 16, 5, 2), // 8030 mops, 6.2e-5 errors @@ -476,8 +476,8 @@ /* 31 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0), }, { /* precision 15 */ - /* 0 */ V0Parameter( 2, 10, 493, 2, 15, 5, 2), // 5846 mops, 5.6e-5 errors - /* 1 */ V0Parameter( 2, 10, 494, 2, 15, 5, 2), // 5853 mops, 5.8e-5 errors + /* 0 */ V0Parameter( 2, 10, 493, 2, 16, 5, 2), // 5846 mops, 5.4e-5 errors + /* 1 */ V0Parameter( 2, 10, 494, 2, 16, 5, 2), // 5853 mops, 5.1e-5 errors /* 2 */ V0Parameter( 2, 10, 497, 2, 16, 5, 2), // 5874 mops, 5.8e-5 errors /* 3 */ V0Parameter( 2, 10, 520, 2, 16, 5, 2), // 6039 mops, 5.9e-5 errors /* 4 */ V0Parameter( 2, 10, 550, 2, 16, 5, 2), // 8030 mops, 6.2e-5 errors @@ -510,10 +510,10 @@ /* 31 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0), }, { /* precision 16 */ - /* 0 */ V0Parameter( 2, 10, 494, 2, 15, 5, 2), // 7446 mops, 5.7e-5 errors + /* 0 */ V0Parameter( 2, 10, 494, 2, 16, 5, 2), // 7446 mops, 5.5e-5 errors /* 1 */ V0Parameter( 2, 10, 498, 2, 16, 5, 2), // 7482 mops, 6.2e-5 errors /* 2 */ V0Parameter( 2, 10, 539, 2, 16, 5, 2), // 7854 mops, 6.1e-5 errors - /* 3 */ V0Parameter( 2, 10, 495, 3, 11, 5, 2), // 10439 mops, 6.3e-5 errors + /* 3 */ V0Parameter( 2, 10, 495, 3, 12, 5, 2), // 10439 mops, 5.0e-5 errors /* 4 */ V0Parameter( 2, 10, 502, 3, 12, 5, 2), // 10524 mops, 5.4e-5 errors /* 5 */ V0Parameter( 2, 10, 485, 3, 12, 9, 1), // 13437 mops, 5.7e-5 errors /* 6 */ V0Parameter( 2, 10, 517, 3, 12, 5, 2), // 13775 mops, 6.1e-5 errors