diff --git a/tfhe/benches/core_crypto/ks_bench.rs b/tfhe/benches/core_crypto/ks_bench.rs index 8b21e700a9..4f165c7b78 100644 --- a/tfhe/benches/core_crypto/ks_bench.rs +++ b/tfhe/benches/core_crypto/ks_bench.rs @@ -23,13 +23,13 @@ use tfhe::shortint::parameters::{ }; #[cfg(not(feature = "gpu"))] use tfhe::shortint::parameters::{ - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, }; use tfhe::shortint::prelude::*; use tfhe::shortint::{MultiBitPBSParameters, PBSParameters}; @@ -53,12 +53,12 @@ const SHORTINT_BENCH_PARAMS: [ClassicPBSParameters; 4] = [ #[cfg(not(feature = "gpu"))] const SHORTINT_MULTI_BIT_BENCH_PARAMS: [MultiBitPBSParameters; 6] = [ - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, ]; #[cfg(feature = "gpu")] diff --git a/tfhe/benches/core_crypto/pbs_bench.rs b/tfhe/benches/core_crypto/pbs_bench.rs index a3fa0bc554..406490ffe8 100644 --- a/tfhe/benches/core_crypto/pbs_bench.rs +++ b/tfhe/benches/core_crypto/pbs_bench.rs @@ -102,12 +102,12 @@ fn multi_bit_benchmark_parameters_64bits( ] } else { vec![ - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, ] }; diff --git a/tfhe/benches/shortint/bench.rs b/tfhe/benches/shortint/bench.rs index a61586bbfd..2737d71b38 100644 --- a/tfhe/benches/shortint/bench.rs +++ b/tfhe/benches/shortint/bench.rs @@ -38,17 +38,17 @@ const SERVER_KEY_BENCH_PARAMS_EXTENDED: [ClassicPBSParameters; 16] = [ ]; const SERVER_KEY_MULTI_BIT_BENCH_PARAMS: [MultiBitPBSParameters; 2] = [ - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, ]; const SERVER_KEY_MULTI_BIT_BENCH_PARAMS_EXTENDED: [MultiBitPBSParameters; 6] = [ - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, ]; enum BenchParamsSet { diff --git a/tfhe/benches/utilities.rs b/tfhe/benches/utilities.rs index 5348010941..9cd33200cd 100644 --- a/tfhe/benches/utilities.rs +++ b/tfhe/benches/utilities.rs @@ -41,7 +41,7 @@ pub mod shortint_utils { #[cfg(feature = "gpu")] use tfhe::shortint::parameters::PARAM_GPU_MULTI_BIT_MESSAGE_2_CARRY_2_GROUP_3_KS_PBS; #[cfg(not(feature = "gpu"))] - use tfhe::shortint::parameters::PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; + use tfhe::shortint::parameters::V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; use tfhe::shortint::parameters::{ ShortintKeySwitchingParameters, PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, }; @@ -63,8 +63,9 @@ pub mod shortint_utils { #[cfg(feature = "gpu")] let params = vec![PARAM_GPU_MULTI_BIT_MESSAGE_2_CARRY_2_GROUP_3_KS_PBS.into()]; #[cfg(not(feature = "gpu"))] - let params = - vec![PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64.into()]; + let params = vec![ + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64.into(), + ]; let params_and_bit_sizes = iproduct!(params, env_config.bit_sizes()); Self { diff --git a/tfhe/docs/guides/parallelized_pbs.md b/tfhe/docs/guides/parallelized_pbs.md index 3ae49f3795..a1f8adaf34 100644 --- a/tfhe/docs/guides/parallelized_pbs.md +++ b/tfhe/docs/guides/parallelized_pbs.md @@ -17,7 +17,7 @@ use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint32}; fn main() -> Result<(), Box> { let config = ConfigBuilder::default() .use_custom_parameters( - tfhe::shortint::parameters::PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + tfhe::shortint::parameters::V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, ) .build(); @@ -50,7 +50,7 @@ use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint32}; fn main() -> Result<(), Box> { let config = ConfigBuilder::default() .use_custom_parameters( - tfhe::shortint::parameters::PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64.with_deterministic_execution(), + tfhe::shortint::parameters::V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64.with_deterministic_execution(), ) .build(); diff --git a/tfhe/examples/sha256.rs b/tfhe/examples/sha256.rs index 2fb908c031..dbc5182758 100644 --- a/tfhe/examples/sha256.rs +++ b/tfhe/examples/sha256.rs @@ -187,10 +187,10 @@ fn main() -> Result<(), std::io::Error> { let config = match args.multibit { None => ConfigBuilder::default(), Some(2) => ConfigBuilder::with_custom_parameters( - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, ), Some(3) => ConfigBuilder::with_custom_parameters( - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, ), Some(v) => { panic!("Invalid multibit setting {v}"); diff --git a/tfhe/examples/utilities/generates_test_keys.rs b/tfhe/examples/utilities/generates_test_keys.rs index 9bc1639529..033f65125c 100644 --- a/tfhe/examples/utilities/generates_test_keys.rs +++ b/tfhe/examples/utilities/generates_test_keys.rs @@ -17,12 +17,12 @@ use tfhe::shortint::parameters::key_switching::p_fail_2_minus_64::ks_pbs::PARAM_ use tfhe::shortint::parameters::key_switching::ShortintKeySwitchingParameters; use tfhe::shortint::parameters::multi_bit::gaussian::p_fail_2_minus_64::ks_pbs::{ - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, }; use tfhe::shortint::parameters::{ ClassicPBSParameters, PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, @@ -72,12 +72,12 @@ fn client_server_keys() { let coverage_only: bool = matches.get_flag("coverage_only"); if multi_bit_only { const MULTI_BIT_PARAMS: [MultiBitPBSParameters; 6] = [ - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, ]; generate_pbs_multi_bit_keys(&MULTI_BIT_PARAMS); diff --git a/tfhe/examples/utilities/shortint_key_sizes.rs b/tfhe/examples/utilities/shortint_key_sizes.rs index 9cf228e57c..99350b1339 100644 --- a/tfhe/examples/utilities/shortint_key_sizes.rs +++ b/tfhe/examples/utilities/shortint_key_sizes.rs @@ -16,16 +16,16 @@ use tfhe::shortint::parameters::{ PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, }; use tfhe::shortint::{ ClassicPBSParameters, ClientKey, CompactPrivateKey, CompressedCompactPublicKey, @@ -45,12 +45,12 @@ fn client_server_key_sizes(results_file: &Path) { V0_11_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64.into(), V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64.into(), V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64.into(), - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64.into(), - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64.into(), - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64.into(), - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64.into(), - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64.into(), - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64.into(), + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64.into(), + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64.into(), + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64.into(), + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64.into(), + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64.into(), + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64.into(), PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64.into(), PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64.into(), PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64.into(), diff --git a/tfhe/src/high_level_api/integers/signed/tests.rs b/tfhe/src/high_level_api/integers/signed/tests.rs index 32af8a2a0c..bd5bca0a35 100644 --- a/tfhe/src/high_level_api/integers/signed/tests.rs +++ b/tfhe/src/high_level_api/integers/signed/tests.rs @@ -281,7 +281,7 @@ fn test_int64_rotate() { fn test_multi_bit_rotate() { let config = ConfigBuilder::default() .use_custom_parameters( - crate::shortint::parameters::PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + crate::shortint::parameters::V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, ) .build(); fhe_int64_rotate(config); @@ -369,7 +369,7 @@ fn test_int32_div_rem() { fn test_multi_div_rem() { let config = ConfigBuilder::default() .use_custom_parameters( - crate::shortint::parameters::PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + crate::shortint::parameters::V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, ) .build(); fhe_int32_div_rem(config); diff --git a/tfhe/src/high_level_api/integers/unsigned/tests/cpu.rs b/tfhe/src/high_level_api/integers/unsigned/tests/cpu.rs index c662f80b10..d44b959641 100644 --- a/tfhe/src/high_level_api/integers/unsigned/tests/cpu.rs +++ b/tfhe/src/high_level_api/integers/unsigned/tests/cpu.rs @@ -111,7 +111,7 @@ fn test_uint32_shift() { #[test] fn test_uint32_shift_multibit() { let config = ConfigBuilder::default() - .use_custom_parameters(PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64) + .use_custom_parameters(V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64) .build(); let (client_key, server_key) = generate_keys(config); @@ -135,7 +135,7 @@ fn test_uint32_rotate() { #[test] fn test_multi_bit_rotate() { let client_key = setup_cpu(Some( - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, )); super::test_case_uint32_rotate(&client_key); } @@ -149,7 +149,7 @@ fn test_uint32_div_rem() { #[test] fn test_multi_div_rem() { let client_key = setup_cpu(Some( - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, )); super::test_case_uint32_div_rem(&client_key); } diff --git a/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_add.rs b/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_add.rs index 232f9ab0dc..0735a4ffee 100644 --- a/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_add.rs +++ b/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_add.rs @@ -33,10 +33,10 @@ create_parameterized_test!( PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, } } ); @@ -60,10 +60,10 @@ create_parameterized_test!( PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, } } ); diff --git a/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_div_rem.rs b/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_div_rem.rs index bca1d04b06..c6daae2e75 100644 --- a/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_div_rem.rs +++ b/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_div_rem.rs @@ -25,10 +25,10 @@ create_parameterized_test!( PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, } } ); @@ -43,10 +43,10 @@ create_parameterized_test!( PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, } } ); diff --git a/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_ilog2.rs b/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_ilog2.rs index 1b71e22066..ab8ecf5818 100644 --- a/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_ilog2.rs +++ b/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_ilog2.rs @@ -28,10 +28,10 @@ create_parameterized_test!(integer_signed_default_checked_ilog2 { PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64 + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64 }); fn integer_signed_default_trailing_zeros

(param: P) diff --git a/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_mul.rs b/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_mul.rs index 0252102a0c..8b09451745 100644 --- a/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_mul.rs +++ b/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_mul.rs @@ -28,10 +28,10 @@ create_parameterized_test!( PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, } } ); diff --git a/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_sub.rs b/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_sub.rs index 9c279dd487..850619680d 100644 --- a/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_sub.rs +++ b/tfhe/src/integer/server_key/radix_parallel/tests_signed/test_sub.rs @@ -34,10 +34,10 @@ create_parameterized_test!(integer_signed_default_overflowing_sub_parallel { PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64 + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64 } }); create_parameterized_test!(integer_extensive_trivial_signed_default_overflowing_sub); diff --git a/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/mod.rs b/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/mod.rs index 08660a977a..9828c00169 100644 --- a/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/mod.rs +++ b/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/mod.rs @@ -442,10 +442,10 @@ create_parameterized_test!( PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, } } ); @@ -460,10 +460,10 @@ create_parameterized_test!( PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, } } ); @@ -479,10 +479,10 @@ create_parameterized_test!( PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, } } ); @@ -497,10 +497,10 @@ create_parameterized_test!( PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, } } ); @@ -519,10 +519,10 @@ create_parameterized_test!( V0_11_PARAM_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, // Test case where carry_modulus > message_modulus V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, } } ); diff --git a/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/test_add.rs b/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/test_add.rs index cd98362d1d..b5906913f3 100644 --- a/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/test_add.rs +++ b/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/test_add.rs @@ -32,10 +32,10 @@ create_parameterized_test!(integer_advanced_overflowing_add_assign_with_carry_at PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64 + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64 } }); create_parameterized_test!(integer_advanced_add_assign_with_carry_sequential); @@ -48,10 +48,10 @@ create_parameterized_test!(integer_extensive_trivial_overflowing_advanced_add_as PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64 + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64 } }); create_parameterized_test!( diff --git a/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/test_div_mod.rs b/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/test_div_mod.rs index 60e78b8569..55395d5781 100644 --- a/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/test_div_mod.rs +++ b/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/test_div_mod.rs @@ -23,10 +23,10 @@ create_parameterized_test!( PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, } } ); @@ -42,10 +42,10 @@ create_parameterized_test!( PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, } } ); @@ -61,10 +61,10 @@ create_parameterized_test!( PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, } } ); @@ -80,10 +80,10 @@ create_parameterized_test!( PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, } } ); @@ -99,10 +99,10 @@ create_parameterized_test!( PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, } } ); @@ -118,10 +118,10 @@ create_parameterized_test!( PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, } } ); diff --git a/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/test_ilog2.rs b/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/test_ilog2.rs index b2e9845f25..0092276855 100644 --- a/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/test_ilog2.rs +++ b/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/test_ilog2.rs @@ -22,10 +22,10 @@ create_parameterized_test!(integer_default_checked_ilog2 { PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64 + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64 }); fn integer_default_trailing_zeros

(param: P) diff --git a/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/test_sub.rs b/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/test_sub.rs index 75bc5e6423..6c11ca7cfd 100644 --- a/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/test_sub.rs +++ b/tfhe/src/integer/server_key/radix_parallel/tests_unsigned/test_sub.rs @@ -32,10 +32,10 @@ create_parameterized_test!(integer_advanced_sub_assign_with_borrow_at_least_4_bi PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64 + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64 } }); create_parameterized_test!(integer_advanced_sub_assign_with_borrow_sequential); diff --git a/tfhe/src/integer/tests.rs b/tfhe/src/integer/tests.rs index a2f784df6b..bed121a917 100644 --- a/tfhe/src/integer/tests.rs +++ b/tfhe/src/integer/tests.rs @@ -27,12 +27,12 @@ macro_rules! create_parameterized_test { V0_11_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V0_11_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64 + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64 } }); }; diff --git a/tfhe/src/shortint/keycache.rs b/tfhe/src/shortint/keycache.rs index 75728b34b7..e377910f82 100644 --- a/tfhe/src/shortint/keycache.rs +++ b/tfhe/src/shortint/keycache.rs @@ -59,63 +59,63 @@ named_params_impl!( ShortintParameterSet => V0_11_PARAM_MESSAGE_3_CARRY_3_PBS_KS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_PBS_KS_GAUSSIAN_2M64, // MultiBit Group 2 - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, // MultiBit Group 3 - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, // MultiBit Group 2 GPU PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, diff --git a/tfhe/src/shortint/parameters/multi_bit/gaussian/mod.rs b/tfhe/src/shortint/parameters/multi_bit/gaussian/mod.rs index 25f5fe6f0f..58f1c28ab6 100644 --- a/tfhe/src/shortint/parameters/multi_bit/gaussian/mod.rs +++ b/tfhe/src/shortint/parameters/multi_bit/gaussian/mod.rs @@ -6,62 +6,62 @@ use crate::shortint::parameters::*; pub mod p_fail_2_minus_64; pub const ALL_MULTI_BIT_PARAMETER_VEC: [MultiBitPBSParameters; 63] = [ - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, diff --git a/tfhe/src/shortint/parameters/multi_bit/gaussian/p_fail_2_minus_64/ks_pbs.rs b/tfhe/src/shortint/parameters/multi_bit/gaussian/p_fail_2_minus_64/ks_pbs.rs index 066ffb1b6d..b5b4d0b85f 100644 --- a/tfhe/src/shortint/parameters/multi_bit/gaussian/p_fail_2_minus_64/ks_pbs.rs +++ b/tfhe/src/shortint/parameters/multi_bit/gaussian/p_fail_2_minus_64/ks_pbs.rs @@ -1,1464 +1,1879 @@ use crate::core_crypto::prelude::*; use crate::shortint::ciphertext::MaxNoiseLevel; +use crate::shortint::parameters::multi_bit::MultiBitPBSParameters; use crate::shortint::parameters::{CarryModulus, MessageModulus}; -use crate::shortint::MultiBitPBSParameters; - -// p-fail = 2^-65.348, algorithmic cost ~ 41, 2-norm = 1 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(700), - glwe_dimension: GlweDimension(3), - polynomial_size: PolynomialSize(512), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 3.58747009344789e-05, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.9524392655548086e-11, - )), - pbs_base_log: DecompositionBaseLog(16), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(4), - ks_level: DecompositionLevelCount(3), - message_modulus: MessageModulus(2), - carry_modulus: CarryModulus(1), - max_noise_level: MaxNoiseLevel::new(1), - log2_p_fail: -65.348, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.263, algorithmic cost ~ 59, 2-norm = 3 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(750), - glwe_dimension: GlweDimension(2), - polynomial_size: PolynomialSize(1024), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.5140301927925663e-05, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.845267479601915e-15, - )), - pbs_base_log: DecompositionBaseLog(22), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(4), - ks_level: DecompositionLevelCount(3), - message_modulus: MessageModulus(2), - carry_modulus: CarryModulus(2), - max_noise_level: MaxNoiseLevel::new(3), - log2_p_fail: -64.263, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.119, algorithmic cost ~ 68, 2-norm = 7 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(862), - glwe_dimension: GlweDimension(2), - polynomial_size: PolynomialSize(1024), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.192351209970737e-06, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.845267479601915e-15, - )), - pbs_base_log: DecompositionBaseLog(22), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(5), - ks_level: DecompositionLevelCount(3), - message_modulus: MessageModulus(2), - carry_modulus: CarryModulus(4), - max_noise_level: MaxNoiseLevel::new(7), - log2_p_fail: -64.119, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.871, algorithmic cost ~ 127, 2-norm = 15 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(840), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(2048), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 3.2044815829012556e-06, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.845267479601915e-15, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(3), - ks_level: DecompositionLevelCount(5), - message_modulus: MessageModulus(2), - carry_modulus: CarryModulus(8), - max_noise_level: MaxNoiseLevel::new(15), - log2_p_fail: -64.871, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.172, algorithmic cost ~ 292, 2-norm = 31 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(950), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(4096), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 4.803076706754256e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(15), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(4), - ks_level: DecompositionLevelCount(4), - message_modulus: MessageModulus(2), - carry_modulus: CarryModulus(16), - max_noise_level: MaxNoiseLevel::new(31), - log2_p_fail: -64.172, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.06, algorithmic cost ~ 887, 2-norm = 63 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(984), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(8192), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.671498718807819e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(11), - pbs_level: DecompositionLevelCount(3), - ks_base_log: DecompositionBaseLog(3), - ks_level: DecompositionLevelCount(6), - message_modulus: MessageModulus(2), - carry_modulus: CarryModulus(32), - max_noise_level: MaxNoiseLevel::new(63), - log2_p_fail: -64.06, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.03, algorithmic cost ~ 2853, 2-norm = 127 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(1018), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(16384), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.4859028577569142e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(8), - pbs_level: DecompositionLevelCount(4), - ks_base_log: DecompositionBaseLog(1), - ks_level: DecompositionLevelCount(20), - message_modulus: MessageModulus(2), - carry_modulus: CarryModulus(64), - max_noise_level: MaxNoiseLevel::new(127), - log2_p_fail: -64.03, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.171, algorithmic cost ~ 49, 2-norm = 1 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(766), - glwe_dimension: GlweDimension(3), - polynomial_size: PolynomialSize(512), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.1488024017979662e-05, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.9524392655548086e-11, - )), - pbs_base_log: DecompositionBaseLog(16), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(3), - ks_level: DecompositionLevelCount(5), - message_modulus: MessageModulus(4), - carry_modulus: CarryModulus(1), - max_noise_level: MaxNoiseLevel::new(1), - log2_p_fail: -64.171, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.615, algorithmic cost ~ 67, 2-norm = 2 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(860), - glwe_dimension: GlweDimension(2), - polynomial_size: PolynomialSize(1024), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.269322810630956e-06, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.845267479601915e-15, - )), - pbs_base_log: DecompositionBaseLog(22), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(5), - ks_level: DecompositionLevelCount(3), - message_modulus: MessageModulus(4), - carry_modulus: CarryModulus(2), - max_noise_level: MaxNoiseLevel::new(2), - log2_p_fail: -64.615, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.442, algorithmic cost ~ 84, 2-norm = 5 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(888), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(2048), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.3998779623487315e-06, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.845267479601915e-15, - )), - pbs_base_log: DecompositionBaseLog(21), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(4), - ks_level: DecompositionLevelCount(4), - message_modulus: MessageModulus(4), - carry_modulus: CarryModulus(4), - max_noise_level: MaxNoiseLevel::new(5), - log2_p_fail: -64.442, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.099, algorithmic cost ~ 291, 2-norm = 10 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(948), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(4096), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 4.971708676181112e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(4), - ks_level: DecompositionLevelCount(4), - message_modulus: MessageModulus(4), - carry_modulus: CarryModulus(8), - max_noise_level: MaxNoiseLevel::new(10), - log2_p_fail: -64.099, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.298, algorithmic cost ~ 665, 2-norm = 21 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(990), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(8192), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.408776579232607e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(3), - ks_level: DecompositionLevelCount(6), - message_modulus: MessageModulus(4), - carry_modulus: CarryModulus(16), - max_noise_level: MaxNoiseLevel::new(21), - log2_p_fail: -64.298, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.168, algorithmic cost ~ 2408, 2-norm = 42 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(1020), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(16384), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.4355035400171204e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(11), - pbs_level: DecompositionLevelCount(3), - ks_base_log: DecompositionBaseLog(1), - ks_level: DecompositionLevelCount(21), - message_modulus: MessageModulus(4), - carry_modulus: CarryModulus(32), - max_noise_level: MaxNoiseLevel::new(42), - log2_p_fail: -64.168, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.709, algorithmic cost ~ 67, 2-norm = 1 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(860), - glwe_dimension: GlweDimension(2), - polynomial_size: PolynomialSize(1024), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.269322810630956e-06, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.845267479601915e-15, - )), - pbs_base_log: DecompositionBaseLog(22), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(5), - ks_level: DecompositionLevelCount(3), - message_modulus: MessageModulus(8), - carry_modulus: CarryModulus(1), - max_noise_level: MaxNoiseLevel::new(1), - log2_p_fail: -64.709, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.253, algorithmic cost ~ 82, 2-norm = 2 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(910), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(2048), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 9.577287511785255e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.845267479601915e-15, - )), - pbs_base_log: DecompositionBaseLog(21), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(5), - ks_level: DecompositionLevelCount(3), - message_modulus: MessageModulus(8), - carry_modulus: CarryModulus(2), - max_noise_level: MaxNoiseLevel::new(2), - log2_p_fail: -64.253, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.115, algorithmic cost ~ 291, 2-norm = 4 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(948), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(4096), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 4.971708676181112e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(4), - ks_level: DecompositionLevelCount(4), - message_modulus: MessageModulus(8), - carry_modulus: CarryModulus(4), - max_noise_level: MaxNoiseLevel::new(4), - log2_p_fail: -64.115, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.02, algorithmic cost ~ 661, 2-norm = 9 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(984), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(8192), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.671498718807819e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(3), - ks_level: DecompositionLevelCount(6), - message_modulus: MessageModulus(8), - carry_modulus: CarryModulus(8), - max_noise_level: MaxNoiseLevel::new(9), - log2_p_fail: -64.02, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.111, algorithmic cost ~ 2365, 2-norm = 18 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(1016), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(16384), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.5380716530060473e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(10), - pbs_level: DecompositionLevelCount(3), - ks_base_log: DecompositionBaseLog(1), - ks_level: DecompositionLevelCount(20), - message_modulus: MessageModulus(8), - carry_modulus: CarryModulus(16), - max_noise_level: MaxNoiseLevel::new(18), - log2_p_fail: -64.111, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.305, algorithmic cost ~ 82, 2-norm = 1 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(908), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(2048), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 9.913537993191986e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.845267479601915e-15, - )), - pbs_base_log: DecompositionBaseLog(21), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(5), - ks_level: DecompositionLevelCount(3), - message_modulus: MessageModulus(16), - carry_modulus: CarryModulus(1), - max_noise_level: MaxNoiseLevel::new(1), - log2_p_fail: -64.305, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.085, algorithmic cost ~ 220, 2-norm = 2 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(926), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(4096), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 7.266969277511613e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(21), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(2), - ks_level: DecompositionLevelCount(9), - message_modulus: MessageModulus(16), - carry_modulus: CarryModulus(2), - max_noise_level: MaxNoiseLevel::new(2), - log2_p_fail: -64.085, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.178, algorithmic cost ~ 661, 2-norm = 4 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(984), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(8192), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.671498718807819e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(3), - ks_level: DecompositionLevelCount(6), - message_modulus: MessageModulus(16), - carry_modulus: CarryModulus(4), - max_noise_level: MaxNoiseLevel::new(4), - log2_p_fail: -64.178, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.259, algorithmic cost ~ 2365, 2-norm = 8 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(1016), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(16384), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.5380716530060473e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(10), - pbs_level: DecompositionLevelCount(3), - ks_base_log: DecompositionBaseLog(1), - ks_level: DecompositionLevelCount(20), - message_modulus: MessageModulus(16), - carry_modulus: CarryModulus(8), - max_noise_level: MaxNoiseLevel::new(8), - log2_p_fail: -64.259, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.126, algorithmic cost ~ 189, 2-norm = 1 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(962), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(4096), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 3.9048344098472363e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(21), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(4), - ks_level: DecompositionLevelCount(4), - message_modulus: MessageModulus(32), - carry_modulus: CarryModulus(1), - max_noise_level: MaxNoiseLevel::new(1), - log2_p_fail: -64.126, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.207, algorithmic cost ~ 661, 2-norm = 2 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(984), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(8192), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.671498718807819e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(3), - ks_level: DecompositionLevelCount(6), - message_modulus: MessageModulus(32), - carry_modulus: CarryModulus(2), - max_noise_level: MaxNoiseLevel::new(2), - log2_p_fail: -64.207, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.114, algorithmic cost ~ 1886, 2-norm = 4 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(1018), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(16384), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.4859028577569142e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(1), - ks_level: DecompositionLevelCount(20), - message_modulus: MessageModulus(32), - carry_modulus: CarryModulus(4), - max_noise_level: MaxNoiseLevel::new(4), - log2_p_fail: -64.114, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.214, algorithmic cost ~ 661, 2-norm = 1 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(984), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(8192), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.671498718807819e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(3), - ks_level: DecompositionLevelCount(6), - message_modulus: MessageModulus(64), - carry_modulus: CarryModulus(1), - max_noise_level: MaxNoiseLevel::new(1), - log2_p_fail: -64.214, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.16, algorithmic cost ~ 1882, 2-norm = 2 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(1016), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(16384), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.5380716530060473e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(1), - ks_level: DecompositionLevelCount(20), - message_modulus: MessageModulus(64), - carry_modulus: CarryModulus(2), - max_noise_level: MaxNoiseLevel::new(2), - log2_p_fail: -64.16, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -// p-fail = 2^-64.261, algorithmic cost ~ 1882, 2-norm = 1 -pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(1016), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(16384), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.5380716530060473e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(1), - ks_level: DecompositionLevelCount(20), - message_modulus: MessageModulus(128), - carry_modulus: CarryModulus(1), - max_noise_level: MaxNoiseLevel::new(1), - log2_p_fail: -64.261, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), - deterministic_execution: false, - }; -pub const ALL_MULTI_BIT_PARAMETER_2_VEC: [MultiBitPBSParameters; 28] = [ - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, -]; // p-fail = 2^-67.438, algorithmic cost ~ 45, 2-norm = 1 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(702), - glwe_dimension: GlweDimension(3), - polynomial_size: PolynomialSize(512), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 3.4657891610923056e-05, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.9524392655548086e-11, - )), - pbs_base_log: DecompositionBaseLog(16), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(4), - ks_level: DecompositionLevelCount(3), - message_modulus: MessageModulus(2), - carry_modulus: CarryModulus(1), - max_noise_level: MaxNoiseLevel::new(1), - log2_p_fail: -67.438, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.086, algorithmic cost ~ 61, 2-norm = 3 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(750), - glwe_dimension: GlweDimension(2), - polynomial_size: PolynomialSize(1024), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.5140301927925663e-05, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.845267479601915e-15, - )), - pbs_base_log: DecompositionBaseLog(20), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(4), - ks_level: DecompositionLevelCount(3), - message_modulus: MessageModulus(2), - carry_modulus: CarryModulus(2), - max_noise_level: MaxNoiseLevel::new(3), - log2_p_fail: -64.086, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.377, algorithmic cost ~ 70, 2-norm = 7 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(864), - glwe_dimension: GlweDimension(2), - polynomial_size: PolynomialSize(1024), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.117990356129097e-06, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.845267479601915e-15, - )), - pbs_base_log: DecompositionBaseLog(21), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(5), - ks_level: DecompositionLevelCount(3), - message_modulus: MessageModulus(2), - carry_modulus: CarryModulus(4), - max_noise_level: MaxNoiseLevel::new(7), - log2_p_fail: -64.377, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.87, algorithmic cost ~ 127, 2-norm = 15 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(840), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(2048), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 3.2044815829012556e-06, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.845267479601915e-15, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(3), - ks_level: DecompositionLevelCount(5), - message_modulus: MessageModulus(2), - carry_modulus: CarryModulus(8), - max_noise_level: MaxNoiseLevel::new(15), - log2_p_fail: -64.87, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.453, algorithmic cost ~ 288, 2-norm = 31 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(951), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(4096), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 4.7209178960699193e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(4), - ks_level: DecompositionLevelCount(4), - message_modulus: MessageModulus(2), - carry_modulus: CarryModulus(16), - max_noise_level: MaxNoiseLevel::new(31), - log2_p_fail: -64.453, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.606, algorithmic cost ~ 884, 2-norm = 63 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(987), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(8192), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.5367387617400005e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(10), - pbs_level: DecompositionLevelCount(3), - ks_base_log: DecompositionBaseLog(3), - ks_level: DecompositionLevelCount(6), - message_modulus: MessageModulus(2), - carry_modulus: CarryModulus(32), - max_noise_level: MaxNoiseLevel::new(63), - log2_p_fail: -64.606, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.101, algorithmic cost ~ 3855, 2-norm = 127 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(1014), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(16384), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.592072050626447e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(6), - pbs_level: DecompositionLevelCount(6), - ks_base_log: DecompositionBaseLog(1), - ks_level: DecompositionLevelCount(21), - message_modulus: MessageModulus(2), - carry_modulus: CarryModulus(64), - max_noise_level: MaxNoiseLevel::new(127), - log2_p_fail: -64.101, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.031, algorithmic cost ~ 58, 2-norm = 1 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(765), - glwe_dimension: GlweDimension(3), - polynomial_size: PolynomialSize(512), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.1687951746275051e-05, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.9524392655548086e-11, - )), - pbs_base_log: DecompositionBaseLog(16), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(2), - ks_level: DecompositionLevelCount(7), - message_modulus: MessageModulus(4), - carry_modulus: CarryModulus(1), - max_noise_level: MaxNoiseLevel::new(1), - log2_p_fail: -64.031, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-65.038, algorithmic cost ~ 70, 2-norm = 2 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(861), - glwe_dimension: GlweDimension(2), - polynomial_size: PolynomialSize(1024), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.230505012256408e-06, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.845267479601915e-15, - )), - pbs_base_log: DecompositionBaseLog(21), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(5), - ks_level: DecompositionLevelCount(3), - message_modulus: MessageModulus(4), - carry_modulus: CarryModulus(2), - max_noise_level: MaxNoiseLevel::new(2), - log2_p_fail: -65.038, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.442, algorithmic cost ~ 80, 2-norm = 5 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(891), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(2048), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.3292631075564801e-06, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.845267479601915e-15, - )), - pbs_base_log: DecompositionBaseLog(21), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(4), - ks_level: DecompositionLevelCount(4), - message_modulus: MessageModulus(4), - carry_modulus: CarryModulus(4), - max_noise_level: MaxNoiseLevel::new(5), - log2_p_fail: -64.442, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.086, algorithmic cost ~ 287, 2-norm = 10 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(948), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(4096), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 4.971708676181112e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(4), - ks_level: DecompositionLevelCount(4), - message_modulus: MessageModulus(4), - carry_modulus: CarryModulus(8), - max_noise_level: MaxNoiseLevel::new(10), - log2_p_fail: -64.086, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.068, algorithmic cost ~ 653, 2-norm = 21 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(996), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(8192), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.1718912188918548e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(3), - ks_level: DecompositionLevelCount(6), - message_modulus: MessageModulus(4), - carry_modulus: CarryModulus(16), - max_noise_level: MaxNoiseLevel::new(21), - log2_p_fail: -64.068, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.064, algorithmic cost ~ 2859, 2-norm = 42 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(1014), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(16384), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.592072050626447e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(8), - pbs_level: DecompositionLevelCount(4), - ks_base_log: DecompositionBaseLog(1), - ks_level: DecompositionLevelCount(21), - message_modulus: MessageModulus(4), - carry_modulus: CarryModulus(32), - max_noise_level: MaxNoiseLevel::new(42), - log2_p_fail: -64.064, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.73, algorithmic cost ~ 70, 2-norm = 1 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(861), - glwe_dimension: GlweDimension(2), - polynomial_size: PolynomialSize(1024), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.230505012256408e-06, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.845267479601915e-15, - )), - pbs_base_log: DecompositionBaseLog(19), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(5), - ks_level: DecompositionLevelCount(3), - message_modulus: MessageModulus(8), - carry_modulus: CarryModulus(1), - max_noise_level: MaxNoiseLevel::new(1), - log2_p_fail: -64.73, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.769, algorithmic cost ~ 78, 2-norm = 2 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(912), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(2048), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 9.252442079345288e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.845267479601915e-15, - )), - pbs_base_log: DecompositionBaseLog(21), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(5), - ks_level: DecompositionLevelCount(3), - message_modulus: MessageModulus(8), - carry_modulus: CarryModulus(2), - max_noise_level: MaxNoiseLevel::new(2), - log2_p_fail: -64.769, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.113, algorithmic cost ~ 287, 2-norm = 4 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(948), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(4096), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 4.971708676181112e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(4), - ks_level: DecompositionLevelCount(4), - message_modulus: MessageModulus(8), - carry_modulus: CarryModulus(4), - max_noise_level: MaxNoiseLevel::new(4), - log2_p_fail: -64.113, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.437, algorithmic cost ~ 647, 2-norm = 9 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(987), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(8192), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.5367387617400005e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(3), - ks_level: DecompositionLevelCount(6), - message_modulus: MessageModulus(8), - carry_modulus: CarryModulus(8), - max_noise_level: MaxNoiseLevel::new(9), - log2_p_fail: -64.437, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.139, algorithmic cost ~ 2859, 2-norm = 18 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(1014), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(16384), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.592072050626447e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(8), - pbs_level: DecompositionLevelCount(4), - ks_base_log: DecompositionBaseLog(1), - ks_level: DecompositionLevelCount(21), - message_modulus: MessageModulus(8), - carry_modulus: CarryModulus(16), - max_noise_level: MaxNoiseLevel::new(18), - log2_p_fail: -64.139, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.351, algorithmic cost ~ 78, 2-norm = 1 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(909), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(2048), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 9.743962418842052e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.845267479601915e-15, - )), - pbs_base_log: DecompositionBaseLog(20), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(5), - ks_level: DecompositionLevelCount(3), - message_modulus: MessageModulus(16), - carry_modulus: CarryModulus(1), - max_noise_level: MaxNoiseLevel::new(1), - log2_p_fail: -64.351, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.117, algorithmic cost ~ 287, 2-norm = 2 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(948), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(4096), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 4.971708676181112e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(4), - ks_level: DecompositionLevelCount(4), - message_modulus: MessageModulus(16), - carry_modulus: CarryModulus(2), - max_noise_level: MaxNoiseLevel::new(2), - log2_p_fail: -64.117, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.138, algorithmic cost ~ 645, 2-norm = 4 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(984), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(8192), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.671498718807819e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(3), - ks_level: DecompositionLevelCount(6), - message_modulus: MessageModulus(16), - carry_modulus: CarryModulus(4), - max_noise_level: MaxNoiseLevel::new(4), - log2_p_fail: -64.138, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.111, algorithmic cost ~ 2360, 2-norm = 8 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(1014), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(16384), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.592072050626447e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(10), - pbs_level: DecompositionLevelCount(3), - ks_base_log: DecompositionBaseLog(1), - ks_level: DecompositionLevelCount(21), - message_modulus: MessageModulus(16), - carry_modulus: CarryModulus(8), - max_noise_level: MaxNoiseLevel::new(8), - log2_p_fail: -64.111, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.194, algorithmic cost ~ 181, 2-norm = 1 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(972), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(4096), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 3.286032625627172e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(21), - pbs_level: DecompositionLevelCount(1), - ks_base_log: DecompositionBaseLog(4), - ks_level: DecompositionLevelCount(4), - message_modulus: MessageModulus(32), - carry_modulus: CarryModulus(1), - max_noise_level: MaxNoiseLevel::new(1), - log2_p_fail: -64.194, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.146, algorithmic cost ~ 645, 2-norm = 2 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(984), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(8192), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.671498718807819e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(15), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(3), - ks_level: DecompositionLevelCount(6), - message_modulus: MessageModulus(32), - carry_modulus: CarryModulus(2), - max_noise_level: MaxNoiseLevel::new(2), - log2_p_fail: -64.146, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.145, algorithmic cost ~ 2360, 2-norm = 4 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(1014), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(16384), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.592072050626447e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(10), - pbs_level: DecompositionLevelCount(3), - ks_base_log: DecompositionBaseLog(1), - ks_level: DecompositionLevelCount(21), - message_modulus: MessageModulus(32), - carry_modulus: CarryModulus(4), - max_noise_level: MaxNoiseLevel::new(4), - log2_p_fail: -64.145, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.212, algorithmic cost ~ 645, 2-norm = 1 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(984), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(8192), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.671498718807819e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(3), - ks_level: DecompositionLevelCount(6), - message_modulus: MessageModulus(64), - carry_modulus: CarryModulus(1), - max_noise_level: MaxNoiseLevel::new(1), - log2_p_fail: -64.212, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.153, algorithmic cost ~ 2360, 2-norm = 2 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(1014), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(16384), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.592072050626447e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(10), - pbs_level: DecompositionLevelCount(3), - ks_base_log: DecompositionBaseLog(1), - ks_level: DecompositionLevelCount(21), - message_modulus: MessageModulus(64), - carry_modulus: CarryModulus(2), - max_noise_level: MaxNoiseLevel::new(2), - log2_p_fail: -64.153, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -// p-fail = 2^-64.079, algorithmic cost ~ 1862, 2-norm = 1 -pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = - MultiBitPBSParameters { - lwe_dimension: LweDimension(1014), - glwe_dimension: GlweDimension(1), - polynomial_size: PolynomialSize(16384), - lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 1.592072050626447e-07, - )), - glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( - 2.168404344971009e-19, - )), - pbs_base_log: DecompositionBaseLog(14), - pbs_level: DecompositionLevelCount(2), - ks_base_log: DecompositionBaseLog(1), - ks_level: DecompositionLevelCount(21), - message_modulus: MessageModulus(128), - carry_modulus: CarryModulus(1), - max_noise_level: MaxNoiseLevel::new(1), - log2_p_fail: -64.079, - ciphertext_modulus: CiphertextModulus::new_native(), - encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), - deterministic_execution: false, - }; -pub const ALL_MULTI_BIT_PARAMETER_3_VEC: [MultiBitPBSParameters; 28] = [ - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, +// p-fail = 2^-66.132, algorithmic cost ~ 41, 2-norm = 1 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(696), + glwe_dimension: GlweDimension(3), + polynomial_size: PolynomialSize(512), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 3.8437982930180355e-05, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.9524392655548086e-11, + )), + pbs_base_log: DecompositionBaseLog(17), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -66.132, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-66.189, algorithmic cost ~ 59, 2-norm = 3 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(748), + glwe_dimension: GlweDimension(2), + polynomial_size: PolynomialSize(1024), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.5671865150356198e-05, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(3), + log2_p_fail: -66.189, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.292, algorithmic cost ~ 67, 2-norm = 7 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(858), + glwe_dimension: GlweDimension(2), + polynomial_size: PolynomialSize(1024), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.348996819227123e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(7), + log2_p_fail: -64.292, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.089, algorithmic cost ~ 89, 2-norm = 15 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(872), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.844927811696596e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(8), + max_noise_level: MaxNoiseLevel::new(15), + log2_p_fail: -64.089, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.045, algorithmic cost ~ 290, 2-norm = 31 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(944), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 5.326942058078918e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(15), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(16), + max_noise_level: MaxNoiseLevel::new(31), + log2_p_fail: -64.045, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.108, algorithmic cost ~ 665, 2-norm = 63 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(990), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.408776579232607e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(32), + max_noise_level: MaxNoiseLevel::new(63), + log2_p_fail: -64.108, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.14, algorithmic cost ~ 2023, 2-norm = 127 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1064), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 6.719066893831459e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(11), + pbs_level: DecompositionLevelCount(3), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(7), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(64), + max_noise_level: MaxNoiseLevel::new(127), + log2_p_fail: -64.14, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.056, algorithmic cost ~ 7572, 2-norm = 255 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1100), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(32768), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 3.610424457179293e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(7), + pbs_level: DecompositionLevelCount(5), + ks_base_log: DecompositionBaseLog(1), + ks_level: DecompositionLevelCount(22), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(128), + max_noise_level: MaxNoiseLevel::new(255), + log2_p_fail: -64.056, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.205, algorithmic cost ~ 45, 2-norm = 1 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(776), + glwe_dimension: GlweDimension(3), + polynomial_size: PolynomialSize(512), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 9.667508981141782e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.9524392655548086e-11, + )), + pbs_base_log: DecompositionBaseLog(17), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.205, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.655, algorithmic cost ~ 67, 2-norm = 2 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(858), + glwe_dimension: GlweDimension(2), + polynomial_size: PolynomialSize(1024), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.348996819227123e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.655, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.609, algorithmic cost ~ 82, 2-norm = 5 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(870), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.909701670065187e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(5), + log2_p_fail: -64.609, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.09, algorithmic cost ~ 290, 2-norm = 10 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(944), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 5.326942058078918e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(15), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(8), + max_noise_level: MaxNoiseLevel::new(10), + log2_p_fail: -64.09, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.152, algorithmic cost ~ 657, 2-norm = 21 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(978), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.962875621642539e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(16), + max_noise_level: MaxNoiseLevel::new(21), + log2_p_fail: -64.152, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.046, algorithmic cost ~ 2000, 2-norm = 42 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1052), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 8.264676629436917e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(11), + pbs_level: DecompositionLevelCount(3), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(7), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(32), + max_noise_level: MaxNoiseLevel::new(42), + log2_p_fail: -64.046, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.032, algorithmic cost ~ 6514, 2-norm = 85 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1104), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(32768), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 3.369659065698222e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(9), + pbs_level: DecompositionLevelCount(4), + ks_base_log: DecompositionBaseLog(1), + ks_level: DecompositionLevelCount(22), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(64), + max_noise_level: MaxNoiseLevel::new(85), + log2_p_fail: -64.032, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.679, algorithmic cost ~ 67, 2-norm = 1 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(858), + glwe_dimension: GlweDimension(2), + polynomial_size: PolynomialSize(1024), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.348996819227123e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.679, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.331, algorithmic cost ~ 82, 2-norm = 2 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(906), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.0261593945208966e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.331, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.107, algorithmic cost ~ 217, 2-norm = 4 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(912), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 9.252442079345288e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(9), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(4), + log2_p_fail: -64.107, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.367, algorithmic cost ~ 657, 2-norm = 9 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(978), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.962875621642539e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(8), + max_noise_level: MaxNoiseLevel::new(9), + log2_p_fail: -64.367, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.042, algorithmic cost ~ 1540, 2-norm = 18 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1080), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 5.098233986495092e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(7), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(16), + max_noise_level: MaxNoiseLevel::new(18), + log2_p_fail: -64.042, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.057, algorithmic cost ~ 5769, 2-norm = 36 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1114), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(32768), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.8356668849263424e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(9), + pbs_level: DecompositionLevelCount(4), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(11), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(32), + max_noise_level: MaxNoiseLevel::new(36), + log2_p_fail: -64.057, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.48, algorithmic cost ~ 82, 2-norm = 1 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(906), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.0261593945208966e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(16), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.48, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.164, algorithmic cost ~ 188, 2-norm = 2 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(958), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 4.1838385960350906e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(16), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.164, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.406, algorithmic cost ~ 657, 2-norm = 4 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(978), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.962875621642539e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(16), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(4), + log2_p_fail: -64.406, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.039, algorithmic cost ~ 1503, 2-norm = 8 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1054), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 7.984352743330102e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(7), + message_modulus: MessageModulus(16), + carry_modulus: CarryModulus(8), + max_noise_level: MaxNoiseLevel::new(8), + log2_p_fail: -64.039, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.041, algorithmic cost ~ 4755, 2-norm = 17 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1116), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(32768), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.7394858488703536e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(11), + pbs_level: DecompositionLevelCount(3), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(12), + message_modulus: MessageModulus(16), + carry_modulus: CarryModulus(16), + max_noise_level: MaxNoiseLevel::new(17), + log2_p_fail: -64.041, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.373, algorithmic cost ~ 186, 2-norm = 1 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(948), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 4.971708676181112e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(32), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.373, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.413, algorithmic cost ~ 657, 2-norm = 2 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(978), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.962875621642539e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(32), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.413, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.087, algorithmic cost ~ 1500, 2-norm = 4 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1052), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 8.264676629436917e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(7), + message_modulus: MessageModulus(32), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(4), + log2_p_fail: -64.087, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.055, algorithmic cost ~ 4665, 2-norm = 8 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1112), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(32768), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.935224755982453e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(11), + pbs_level: DecompositionLevelCount(3), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(11), + message_modulus: MessageModulus(32), + carry_modulus: CarryModulus(8), + max_noise_level: MaxNoiseLevel::new(8), + log2_p_fail: -64.055, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.415, algorithmic cost ~ 657, 2-norm = 1 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(978), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.962875621642539e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(64), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.415, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.17, algorithmic cost ~ 1500, 2-norm = 2 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1052), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 8.264676629436917e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(7), + message_modulus: MessageModulus(64), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.17, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.048, algorithmic cost ~ 4657, 2-norm = 4 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1110), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(32768), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 3.038278019865525e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(11), + pbs_level: DecompositionLevelCount(3), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(11), + message_modulus: MessageModulus(64), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(4), + log2_p_fail: -64.048, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.191, algorithmic cost ~ 1500, 2-norm = 1 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1052), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 8.264676629436917e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(7), + message_modulus: MessageModulus(128), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.191, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.001, algorithmic cost ~ 3604, 2-norm = 2 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1122), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(32768), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.470077677912143e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(11), + message_modulus: MessageModulus(128), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.001, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.058, algorithmic cost ~ 3572, 2-norm = 1 +pub const V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1112), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(32768), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.935224755982453e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(11), + message_modulus: MessageModulus(256), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.058, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +pub const ALL_V0_11_MULTI_BIT_PARAMETER_2_VEC: [MultiBitPBSParameters; 36] = [ + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M64, +]; // p-fail = 2^-66.117, algorithmic cost ~ 44, 2-norm = 1 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(696), + glwe_dimension: GlweDimension(3), + polynomial_size: PolynomialSize(512), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 3.8437982930180355e-05, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.9524392655548086e-11, + )), + pbs_base_log: DecompositionBaseLog(16), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -66.117, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.641, algorithmic cost ~ 60, 2-norm = 3 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(747), + glwe_dimension: GlweDimension(2), + polynomial_size: PolynomialSize(1024), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.5944604865450687e-05, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(3), + log2_p_fail: -64.641, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.341, algorithmic cost ~ 69, 2-norm = 7 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(858), + glwe_dimension: GlweDimension(2), + polynomial_size: PolynomialSize(1024), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.348996819227123e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(7), + log2_p_fail: -64.341, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.242, algorithmic cost ~ 86, 2-norm = 15 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(876), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.7218966356934023e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(8), + max_noise_level: MaxNoiseLevel::new(15), + log2_p_fail: -64.242, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.283, algorithmic cost ~ 286, 2-norm = 31 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(945), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 5.235822292396081e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(16), + max_noise_level: MaxNoiseLevel::new(31), + log2_p_fail: -64.283, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.358, algorithmic cost ~ 649, 2-norm = 63 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(990), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.408776579232607e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(32), + max_noise_level: MaxNoiseLevel::new(63), + log2_p_fail: -64.358, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.154, algorithmic cost ~ 2001, 2-norm = 127 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1071), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 5.954666448055802e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(11), + pbs_level: DecompositionLevelCount(3), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(7), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(64), + max_noise_level: MaxNoiseLevel::new(127), + log2_p_fail: -64.154, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.013, algorithmic cost ~ 7527, 2-norm = 255 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1104), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(32768), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 3.369659065698222e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(7), + pbs_level: DecompositionLevelCount(5), + ks_base_log: DecompositionBaseLog(1), + ks_level: DecompositionLevelCount(22), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(128), + max_noise_level: MaxNoiseLevel::new(255), + log2_p_fail: -64.013, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.399, algorithmic cost ~ 50, 2-norm = 1 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(741), + glwe_dimension: GlweDimension(3), + polynomial_size: PolynomialSize(512), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.768366225294279e-05, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.9524392655548086e-11, + )), + pbs_base_log: DecompositionBaseLog(16), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.399, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.659, algorithmic cost ~ 69, 2-norm = 2 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(858), + glwe_dimension: GlweDimension(2), + polynomial_size: PolynomialSize(1024), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.348996819227123e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.659, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.256, algorithmic cost ~ 78, 2-norm = 5 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(909), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 9.743962418842052e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(5), + log2_p_fail: -64.256, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.324, algorithmic cost ~ 286, 2-norm = 10 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(945), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 5.235822292396081e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(8), + max_noise_level: MaxNoiseLevel::new(10), + log2_p_fail: -64.324, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.179, algorithmic cost ~ 641, 2-norm = 21 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(978), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.962875621642539e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(16), + max_noise_level: MaxNoiseLevel::new(21), + log2_p_fail: -64.179, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.144, algorithmic cost ~ 1967, 2-norm = 42 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1053), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 8.123305578333294e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(11), + pbs_level: DecompositionLevelCount(3), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(7), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(32), + max_noise_level: MaxNoiseLevel::new(42), + log2_p_fail: -64.144, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.061, algorithmic cost ~ 6417, 2-norm = 85 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1104), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(32768), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 3.369659065698222e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(8), + pbs_level: DecompositionLevelCount(4), + ks_base_log: DecompositionBaseLog(1), + ks_level: DecompositionLevelCount(22), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(64), + max_noise_level: MaxNoiseLevel::new(85), + log2_p_fail: -64.061, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.68, algorithmic cost ~ 69, 2-norm = 1 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(858), + glwe_dimension: GlweDimension(2), + polynomial_size: PolynomialSize(1024), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.348996819227123e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.68, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.327, algorithmic cost ~ 78, 2-norm = 2 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(906), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.0261593945208966e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.327, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.008, algorithmic cost ~ 211, 2-norm = 4 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(930), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 6.782362904013915e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(21), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(9), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(4), + log2_p_fail: -64.008, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.372, algorithmic cost ~ 641, 2-norm = 9 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(978), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.962875621642539e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(8), + max_noise_level: MaxNoiseLevel::new(9), + log2_p_fail: -64.372, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.025, algorithmic cost ~ 1487, 2-norm = 18 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1080), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 5.098233986495092e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(7), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(16), + max_noise_level: MaxNoiseLevel::new(18), + log2_p_fail: -64.025, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.033, algorithmic cost ~ 5666, 2-norm = 36 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1113), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(32768), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.8850164020946995e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(8), + pbs_level: DecompositionLevelCount(4), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(11), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(32), + max_noise_level: MaxNoiseLevel::new(36), + log2_p_fail: -64.033, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.479, algorithmic cost ~ 78, 2-norm = 1 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(906), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.0261593945208966e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(16), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.479, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.189, algorithmic cost ~ 178, 2-norm = 2 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(960), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 4.041929850336937e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(21), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(16), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.189, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.407, algorithmic cost ~ 641, 2-norm = 4 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(978), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.962875621642539e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(16), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(4), + log2_p_fail: -64.407, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.292, algorithmic cost ~ 1454, 2-norm = 8 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1056), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 7.713536970443607e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(7), + message_modulus: MessageModulus(16), + carry_modulus: CarryModulus(8), + max_noise_level: MaxNoiseLevel::new(8), + log2_p_fail: -64.292, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.052, algorithmic cost ~ 4646, 2-norm = 17 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1119), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(32768), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.60129637762614e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(10), + pbs_level: DecompositionLevelCount(3), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(12), + message_modulus: MessageModulus(16), + carry_modulus: CarryModulus(16), + max_noise_level: MaxNoiseLevel::new(17), + log2_p_fail: -64.052, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.32, algorithmic cost ~ 176, 2-norm = 1 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(948), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 4.971708676181112e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(21), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(32), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.32, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.414, algorithmic cost ~ 641, 2-norm = 2 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(978), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.962875621642539e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(32), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.414, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.231, algorithmic cost ~ 1450, 2-norm = 4 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1053), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 8.123305578333294e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(7), + message_modulus: MessageModulus(32), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(4), + log2_p_fail: -64.231, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.073, algorithmic cost ~ 4548, 2-norm = 8 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1113), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(32768), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.8850164020946995e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(10), + pbs_level: DecompositionLevelCount(3), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(11), + message_modulus: MessageModulus(32), + carry_modulus: CarryModulus(8), + max_noise_level: MaxNoiseLevel::new(8), + log2_p_fail: -64.073, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.028, algorithmic cost ~ 472, 2-norm = 1 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(981), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.8134175707144757e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(21), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(10), + message_modulus: MessageModulus(64), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.028, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.315, algorithmic cost ~ 1450, 2-norm = 2 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1053), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 8.123305578333294e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(7), + message_modulus: MessageModulus(64), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.315, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.045, algorithmic cost ~ 4536, 2-norm = 4 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1110), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(32768), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 3.038278019865525e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(10), + pbs_level: DecompositionLevelCount(3), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(11), + message_modulus: MessageModulus(64), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(4), + log2_p_fail: -64.045, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.336, algorithmic cost ~ 1450, 2-norm = 1 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1053), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 8.123305578333294e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(7), + message_modulus: MessageModulus(128), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.336, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.059, algorithmic cost ~ 3512, 2-norm = 2 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1116), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(32768), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.7394858488703536e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(12), + message_modulus: MessageModulus(128), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.059, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.08, algorithmic cost ~ 3429, 2-norm = 1 +pub const V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1113), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(32768), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.8850164020946995e-08, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(11), + message_modulus: MessageModulus(256), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.08, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +pub const ALL_V0_11_MULTI_BIT_PARAMETER_3_VEC: [MultiBitPBSParameters; 36] = [ + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M64, ]; diff --git a/tfhe/src/shortint/parameters/v0_10/mod.rs b/tfhe/src/shortint/parameters/v0_10/mod.rs index 344729ee28..076b39dc75 100644 --- a/tfhe/src/shortint/parameters/v0_10/mod.rs +++ b/tfhe/src/shortint/parameters/v0_10/mod.rs @@ -1 +1,2 @@ pub mod classic; +pub mod multi_bit; diff --git a/tfhe/src/shortint/parameters/v0_10/multi_bit/gaussian/mod.rs b/tfhe/src/shortint/parameters/v0_10/multi_bit/gaussian/mod.rs new file mode 100644 index 0000000000..dfeb25959b --- /dev/null +++ b/tfhe/src/shortint/parameters/v0_10/multi_bit/gaussian/mod.rs @@ -0,0 +1,3 @@ +//! #Warning experimental + +pub mod p_fail_2_minus_64; diff --git a/tfhe/src/shortint/parameters/v0_10/multi_bit/gaussian/p_fail_2_minus_64/ks_pbs.rs b/tfhe/src/shortint/parameters/v0_10/multi_bit/gaussian/p_fail_2_minus_64/ks_pbs.rs new file mode 100644 index 0000000000..c797f7796c --- /dev/null +++ b/tfhe/src/shortint/parameters/v0_10/multi_bit/gaussian/p_fail_2_minus_64/ks_pbs.rs @@ -0,0 +1,1464 @@ +use crate::core_crypto::prelude::*; +use crate::shortint::ciphertext::MaxNoiseLevel; +use crate::shortint::parameters::{CarryModulus, MessageModulus}; +use crate::shortint::MultiBitPBSParameters; + +// p-fail = 2^-65.348, algorithmic cost ~ 41, 2-norm = 1 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(700), + glwe_dimension: GlweDimension(3), + polynomial_size: PolynomialSize(512), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 3.58747009344789e-05, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.9524392655548086e-11, + )), + pbs_base_log: DecompositionBaseLog(16), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -65.348, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.263, algorithmic cost ~ 59, 2-norm = 3 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(750), + glwe_dimension: GlweDimension(2), + polynomial_size: PolynomialSize(1024), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.5140301927925663e-05, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(3), + log2_p_fail: -64.263, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.119, algorithmic cost ~ 68, 2-norm = 7 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(862), + glwe_dimension: GlweDimension(2), + polynomial_size: PolynomialSize(1024), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.192351209970737e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(7), + log2_p_fail: -64.119, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.871, algorithmic cost ~ 127, 2-norm = 15 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(840), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 3.2044815829012556e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(5), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(8), + max_noise_level: MaxNoiseLevel::new(15), + log2_p_fail: -64.871, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.172, algorithmic cost ~ 292, 2-norm = 31 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(950), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 4.803076706754256e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(15), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(16), + max_noise_level: MaxNoiseLevel::new(31), + log2_p_fail: -64.172, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.06, algorithmic cost ~ 887, 2-norm = 63 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(984), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.671498718807819e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(11), + pbs_level: DecompositionLevelCount(3), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(32), + max_noise_level: MaxNoiseLevel::new(63), + log2_p_fail: -64.06, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.03, algorithmic cost ~ 2853, 2-norm = 127 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1018), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.4859028577569142e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(8), + pbs_level: DecompositionLevelCount(4), + ks_base_log: DecompositionBaseLog(1), + ks_level: DecompositionLevelCount(20), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(64), + max_noise_level: MaxNoiseLevel::new(127), + log2_p_fail: -64.03, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.171, algorithmic cost ~ 49, 2-norm = 1 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(766), + glwe_dimension: GlweDimension(3), + polynomial_size: PolynomialSize(512), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.1488024017979662e-05, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.9524392655548086e-11, + )), + pbs_base_log: DecompositionBaseLog(16), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(5), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.171, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.615, algorithmic cost ~ 67, 2-norm = 2 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(860), + glwe_dimension: GlweDimension(2), + polynomial_size: PolynomialSize(1024), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.269322810630956e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.615, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.442, algorithmic cost ~ 84, 2-norm = 5 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(888), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.3998779623487315e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(21), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(5), + log2_p_fail: -64.442, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.099, algorithmic cost ~ 291, 2-norm = 10 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(948), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 4.971708676181112e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(8), + max_noise_level: MaxNoiseLevel::new(10), + log2_p_fail: -64.099, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.298, algorithmic cost ~ 665, 2-norm = 21 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(990), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.408776579232607e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(16), + max_noise_level: MaxNoiseLevel::new(21), + log2_p_fail: -64.298, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.168, algorithmic cost ~ 2408, 2-norm = 42 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1020), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.4355035400171204e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(11), + pbs_level: DecompositionLevelCount(3), + ks_base_log: DecompositionBaseLog(1), + ks_level: DecompositionLevelCount(21), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(32), + max_noise_level: MaxNoiseLevel::new(42), + log2_p_fail: -64.168, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.709, algorithmic cost ~ 67, 2-norm = 1 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(860), + glwe_dimension: GlweDimension(2), + polynomial_size: PolynomialSize(1024), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.269322810630956e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(22), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.709, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.253, algorithmic cost ~ 82, 2-norm = 2 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(910), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 9.577287511785255e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(21), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.253, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.115, algorithmic cost ~ 291, 2-norm = 4 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(948), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 4.971708676181112e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(4), + log2_p_fail: -64.115, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.02, algorithmic cost ~ 661, 2-norm = 9 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(984), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.671498718807819e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(8), + max_noise_level: MaxNoiseLevel::new(9), + log2_p_fail: -64.02, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.111, algorithmic cost ~ 2365, 2-norm = 18 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1016), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.5380716530060473e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(10), + pbs_level: DecompositionLevelCount(3), + ks_base_log: DecompositionBaseLog(1), + ks_level: DecompositionLevelCount(20), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(16), + max_noise_level: MaxNoiseLevel::new(18), + log2_p_fail: -64.111, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.305, algorithmic cost ~ 82, 2-norm = 1 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(908), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 9.913537993191986e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(21), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(16), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.305, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.085, algorithmic cost ~ 220, 2-norm = 2 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(926), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 7.266969277511613e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(21), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(9), + message_modulus: MessageModulus(16), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.085, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.178, algorithmic cost ~ 661, 2-norm = 4 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(984), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.671498718807819e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(16), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(4), + log2_p_fail: -64.178, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.259, algorithmic cost ~ 2365, 2-norm = 8 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1016), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.5380716530060473e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(10), + pbs_level: DecompositionLevelCount(3), + ks_base_log: DecompositionBaseLog(1), + ks_level: DecompositionLevelCount(20), + message_modulus: MessageModulus(16), + carry_modulus: CarryModulus(8), + max_noise_level: MaxNoiseLevel::new(8), + log2_p_fail: -64.259, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.126, algorithmic cost ~ 189, 2-norm = 1 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(962), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 3.9048344098472363e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(21), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(32), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.126, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.207, algorithmic cost ~ 661, 2-norm = 2 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(984), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.671498718807819e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(32), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.207, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.114, algorithmic cost ~ 1886, 2-norm = 4 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1018), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.4859028577569142e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(1), + ks_level: DecompositionLevelCount(20), + message_modulus: MessageModulus(32), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(4), + log2_p_fail: -64.114, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.214, algorithmic cost ~ 661, 2-norm = 1 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(984), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.671498718807819e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(64), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.214, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.16, algorithmic cost ~ 1882, 2-norm = 2 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1016), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.5380716530060473e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(1), + ks_level: DecompositionLevelCount(20), + message_modulus: MessageModulus(64), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.16, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +// p-fail = 2^-64.261, algorithmic cost ~ 1882, 2-norm = 1 +pub const V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1016), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.5380716530060473e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(1), + ks_level: DecompositionLevelCount(20), + message_modulus: MessageModulus(128), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.261, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(2), + deterministic_execution: false, +}; +pub const ALL_V0_10_MULTI_BIT_PARAMETER_2_VEC: [MultiBitPBSParameters; 28] = [ + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, +]; // p-fail = 2^-67.438, algorithmic cost ~ 45, 2-norm = 1 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(702), + glwe_dimension: GlweDimension(3), + polynomial_size: PolynomialSize(512), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 3.4657891610923056e-05, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.9524392655548086e-11, + )), + pbs_base_log: DecompositionBaseLog(16), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -67.438, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.086, algorithmic cost ~ 61, 2-norm = 3 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(750), + glwe_dimension: GlweDimension(2), + polynomial_size: PolynomialSize(1024), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.5140301927925663e-05, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(20), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(3), + log2_p_fail: -64.086, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.377, algorithmic cost ~ 70, 2-norm = 7 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(864), + glwe_dimension: GlweDimension(2), + polynomial_size: PolynomialSize(1024), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.117990356129097e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(21), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(7), + log2_p_fail: -64.377, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.87, algorithmic cost ~ 127, 2-norm = 15 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(840), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 3.2044815829012556e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(5), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(8), + max_noise_level: MaxNoiseLevel::new(15), + log2_p_fail: -64.87, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.453, algorithmic cost ~ 288, 2-norm = 31 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(951), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 4.7209178960699193e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(16), + max_noise_level: MaxNoiseLevel::new(31), + log2_p_fail: -64.453, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.606, algorithmic cost ~ 884, 2-norm = 63 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(987), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.5367387617400005e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(10), + pbs_level: DecompositionLevelCount(3), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(32), + max_noise_level: MaxNoiseLevel::new(63), + log2_p_fail: -64.606, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.101, algorithmic cost ~ 3855, 2-norm = 127 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1014), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.592072050626447e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(6), + pbs_level: DecompositionLevelCount(6), + ks_base_log: DecompositionBaseLog(1), + ks_level: DecompositionLevelCount(21), + message_modulus: MessageModulus(2), + carry_modulus: CarryModulus(64), + max_noise_level: MaxNoiseLevel::new(127), + log2_p_fail: -64.101, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.031, algorithmic cost ~ 58, 2-norm = 1 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(765), + glwe_dimension: GlweDimension(3), + polynomial_size: PolynomialSize(512), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.1687951746275051e-05, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.9524392655548086e-11, + )), + pbs_base_log: DecompositionBaseLog(16), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(7), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.031, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-65.038, algorithmic cost ~ 70, 2-norm = 2 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(861), + glwe_dimension: GlweDimension(2), + polynomial_size: PolynomialSize(1024), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.230505012256408e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(21), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -65.038, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.442, algorithmic cost ~ 80, 2-norm = 5 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(891), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.3292631075564801e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(21), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(5), + log2_p_fail: -64.442, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.086, algorithmic cost ~ 287, 2-norm = 10 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(948), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 4.971708676181112e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(8), + max_noise_level: MaxNoiseLevel::new(10), + log2_p_fail: -64.086, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.068, algorithmic cost ~ 653, 2-norm = 21 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(996), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.1718912188918548e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(16), + max_noise_level: MaxNoiseLevel::new(21), + log2_p_fail: -64.068, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.064, algorithmic cost ~ 2859, 2-norm = 42 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1014), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.592072050626447e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(8), + pbs_level: DecompositionLevelCount(4), + ks_base_log: DecompositionBaseLog(1), + ks_level: DecompositionLevelCount(21), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(32), + max_noise_level: MaxNoiseLevel::new(42), + log2_p_fail: -64.064, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.73, algorithmic cost ~ 70, 2-norm = 1 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(861), + glwe_dimension: GlweDimension(2), + polynomial_size: PolynomialSize(1024), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.230505012256408e-06, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(19), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.73, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.769, algorithmic cost ~ 78, 2-norm = 2 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(912), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 9.252442079345288e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(21), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.769, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.113, algorithmic cost ~ 287, 2-norm = 4 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(948), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 4.971708676181112e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(4), + log2_p_fail: -64.113, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.437, algorithmic cost ~ 647, 2-norm = 9 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(987), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.5367387617400005e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(8), + max_noise_level: MaxNoiseLevel::new(9), + log2_p_fail: -64.437, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.139, algorithmic cost ~ 2859, 2-norm = 18 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1014), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.592072050626447e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(8), + pbs_level: DecompositionLevelCount(4), + ks_base_log: DecompositionBaseLog(1), + ks_level: DecompositionLevelCount(21), + message_modulus: MessageModulus(8), + carry_modulus: CarryModulus(16), + max_noise_level: MaxNoiseLevel::new(18), + log2_p_fail: -64.139, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.351, algorithmic cost ~ 78, 2-norm = 1 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(909), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 9.743962418842052e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.845267479601915e-15, + )), + pbs_base_log: DecompositionBaseLog(20), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(5), + ks_level: DecompositionLevelCount(3), + message_modulus: MessageModulus(16), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.351, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.117, algorithmic cost ~ 287, 2-norm = 2 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(948), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 4.971708676181112e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(16), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.117, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.138, algorithmic cost ~ 645, 2-norm = 4 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(984), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.671498718807819e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(16), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(4), + log2_p_fail: -64.138, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.111, algorithmic cost ~ 2360, 2-norm = 8 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1014), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.592072050626447e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(10), + pbs_level: DecompositionLevelCount(3), + ks_base_log: DecompositionBaseLog(1), + ks_level: DecompositionLevelCount(21), + message_modulus: MessageModulus(16), + carry_modulus: CarryModulus(8), + max_noise_level: MaxNoiseLevel::new(8), + log2_p_fail: -64.111, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.194, algorithmic cost ~ 181, 2-norm = 1 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(972), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(4096), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 3.286032625627172e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(21), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(32), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.194, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.146, algorithmic cost ~ 645, 2-norm = 2 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(984), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.671498718807819e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(15), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(32), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.146, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.145, algorithmic cost ~ 2360, 2-norm = 4 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1014), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.592072050626447e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(10), + pbs_level: DecompositionLevelCount(3), + ks_base_log: DecompositionBaseLog(1), + ks_level: DecompositionLevelCount(21), + message_modulus: MessageModulus(32), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(4), + log2_p_fail: -64.145, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.212, algorithmic cost ~ 645, 2-norm = 1 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(984), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(8192), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.671498718807819e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(6), + message_modulus: MessageModulus(64), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.212, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.153, algorithmic cost ~ 2360, 2-norm = 2 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1014), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.592072050626447e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(10), + pbs_level: DecompositionLevelCount(3), + ks_base_log: DecompositionBaseLog(1), + ks_level: DecompositionLevelCount(21), + message_modulus: MessageModulus(64), + carry_modulus: CarryModulus(2), + max_noise_level: MaxNoiseLevel::new(2), + log2_p_fail: -64.153, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +// p-fail = 2^-64.079, algorithmic cost ~ 1862, 2-norm = 1 +pub const V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64: + MultiBitPBSParameters = MultiBitPBSParameters { + lwe_dimension: LweDimension(1014), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(16384), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.592072050626447e-07, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.168404344971009e-19, + )), + pbs_base_log: DecompositionBaseLog(14), + pbs_level: DecompositionLevelCount(2), + ks_base_log: DecompositionBaseLog(1), + ks_level: DecompositionLevelCount(21), + message_modulus: MessageModulus(128), + carry_modulus: CarryModulus(1), + max_noise_level: MaxNoiseLevel::new(1), + log2_p_fail: -64.079, + ciphertext_modulus: CiphertextModulus::new_native(), + encryption_key_choice: EncryptionKeyChoice::Big, + grouping_factor: LweBskGroupingFactor(3), + deterministic_execution: false, +}; +pub const ALL_V0_10_MULTI_BIT_PARAMETER_3_VEC: [MultiBitPBSParameters; 28] = [ + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_10_PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, +]; diff --git a/tfhe/src/shortint/parameters/v0_10/multi_bit/gaussian/p_fail_2_minus_64/mod.rs b/tfhe/src/shortint/parameters/v0_10/multi_bit/gaussian/p_fail_2_minus_64/mod.rs new file mode 100644 index 0000000000..cf32dbe64e --- /dev/null +++ b/tfhe/src/shortint/parameters/v0_10/multi_bit/gaussian/p_fail_2_minus_64/mod.rs @@ -0,0 +1 @@ +pub mod ks_pbs; diff --git a/tfhe/src/shortint/parameters/v0_10/multi_bit/mod.rs b/tfhe/src/shortint/parameters/v0_10/multi_bit/mod.rs new file mode 100644 index 0000000000..1e195d938e --- /dev/null +++ b/tfhe/src/shortint/parameters/v0_10/multi_bit/mod.rs @@ -0,0 +1 @@ +pub mod gaussian; diff --git a/tfhe/src/shortint/server_key/tests/parameterized_test.rs b/tfhe/src/shortint/server_key/tests/parameterized_test.rs index 46feed0972..ff7008df66 100644 --- a/tfhe/src/shortint/server_key/tests/parameterized_test.rs +++ b/tfhe/src/shortint/server_key/tests/parameterized_test.rs @@ -48,12 +48,12 @@ macro_rules! create_parameterized_test{ V0_11_PARAM_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64 + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64 }); }; } diff --git a/tfhe/src/shortint/server_key/tests/parameterized_test_bivariate_pbs_compliant.rs b/tfhe/src/shortint/server_key/tests/parameterized_test_bivariate_pbs_compliant.rs index b82050d00e..231c3e3e22 100644 --- a/tfhe/src/shortint/server_key/tests/parameterized_test_bivariate_pbs_compliant.rs +++ b/tfhe/src/shortint/server_key/tests/parameterized_test_bivariate_pbs_compliant.rs @@ -57,12 +57,12 @@ macro_rules! create_parameterized_test_bivariate_pbs_compliant{ V0_11_PARAM_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64, V0_11_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64 + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64 }); }; } @@ -84,8 +84,8 @@ macro_rules! create_parameterized_test_bivariate_pbs_compliant{ create_parameterized_test!($name { V0_11_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64 + V0_11_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V0_11_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64 }); }; }