fix(woppbs): handle complexity tie for lower error rate and better reproducibility

This commit is contained in:
rudy
2022-06-14 09:00:00 +02:00
committed by rudy-6-4
parent 0ab7ace9ac
commit 8775cc0be3
2 changed files with 75 additions and 73 deletions

View File

@@ -224,6 +224,7 @@ fn update_state_with_best_decompositions<W: UnsignedInteger>(
}
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<W: UnsignedInteger>(
(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<W: UnsignedInteger>(
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<W: UnsignedInteger>(
// 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<W: UnsignedInteger>(
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,
};

View File

@@ -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