diff --git a/tfhe/benches/core_crypto/dev_bench.rs b/tfhe/benches/core_crypto/dev_bench.rs index 2177b90b30..5563848530 100644 --- a/tfhe/benches/core_crypto/dev_bench.rs +++ b/tfhe/benches/core_crypto/dev_bench.rs @@ -24,7 +24,7 @@ fn get_bench_params() -> ( DecompositionLevelCount, GlweDimension, PolynomialSize, - LweBskGroupingFactor, + MultiBitGroupingFactor, ThreadCount, ) { if Scalar::BITS == 64 { @@ -35,7 +35,7 @@ fn get_bench_params() -> ( DecompositionLevelCount(5), GlweDimension(1), PolynomialSize(1024), - LweBskGroupingFactor(2), + MultiBitGroupingFactor(2), ThreadCount(5), ) } else if Scalar::BITS == 32 { @@ -46,7 +46,7 @@ fn get_bench_params() -> ( DecompositionLevelCount(1), GlweDimension(3), PolynomialSize(512), - LweBskGroupingFactor(2), + MultiBitGroupingFactor(2), ThreadCount(5), ) } else { diff --git a/tfhe/benches/core_crypto/pbs_bench.rs b/tfhe/benches/core_crypto/pbs_bench.rs index 46cb4bc07d..ca48805511 100644 --- a/tfhe/benches/core_crypto/pbs_bench.rs +++ b/tfhe/benches/core_crypto/pbs_bench.rs @@ -104,8 +104,11 @@ fn throughput_benchmark_parameters( } } -fn multi_bit_benchmark_parameters( -) -> Vec<(String, CryptoParametersRecord, LweBskGroupingFactor)> { +fn multi_bit_benchmark_parameters() -> Vec<( + String, + CryptoParametersRecord, + MultiBitGroupingFactor, +)> { if Scalar::BITS == 64 { let parameters = if cfg!(feature = "gpu") { vec![ diff --git a/tfhe/src/c_api/core_crypto/mod.rs b/tfhe/src/c_api/core_crypto/mod.rs index 8664478489..5367dbc125 100644 --- a/tfhe/src/c_api/core_crypto/mod.rs +++ b/tfhe/src/c_api/core_crypto/mod.rs @@ -330,7 +330,7 @@ pub unsafe extern "C" fn core_crypto_lwe_multi_bit_bootstrapping_key_element_siz let output_glwe_sk_poly_size = PolynomialSize(output_glwe_sk_poly_size); let lwe_multi_bit_level_count = DecompositionLevelCount(lwe_multi_bit_level_count); - let lwe_multi_bit_grouping_factor = LweBskGroupingFactor(lwe_multi_bit_grouping_factor); + let lwe_multi_bit_grouping_factor = MultiBitGroupingFactor(lwe_multi_bit_grouping_factor); *result = lwe_multi_bit_bootstrap_key_size( input_lwe_sk_dim, @@ -472,7 +472,7 @@ pub unsafe extern "C" fn core_crypto_par_generate_lwe_multi_bit_bootstrapping_ke let lwe_multi_bit_base_log = DecompositionBaseLog(lwe_multi_bit_base_log); let lwe_multi_bit_level_count = DecompositionLevelCount(lwe_multi_bit_level_count); - let lwe_multi_bit_grouping_factor = LweBskGroupingFactor(lwe_multi_bit_grouping_factor); + let lwe_multi_bit_grouping_factor = MultiBitGroupingFactor(lwe_multi_bit_grouping_factor); let lwe_multi_bit_slice_len = { let bsk = LweMultiBitBootstrapKeyOwned::new( diff --git a/tfhe/src/core_crypto/algorithms/lwe_multi_bit_bootstrap_key_generation.rs b/tfhe/src/core_crypto/algorithms/lwe_multi_bit_bootstrap_key_generation.rs index 161e0070ee..60839a5d2c 100644 --- a/tfhe/src/core_crypto/algorithms/lwe_multi_bit_bootstrap_key_generation.rs +++ b/tfhe/src/core_crypto/algorithms/lwe_multi_bit_bootstrap_key_generation.rs @@ -25,7 +25,7 @@ use rayon::prelude::*; /// let polynomial_size = PolynomialSize(1024); /// let glwe_noise_distribution = /// Gaussian::from_dispersion_parameter(StandardDev(0.00000000000000029403601535432533), 0.0); -/// let grouping_factor = LweBskGroupingFactor(2); +/// let grouping_factor = MultiBitGroupingFactor(2); /// let ciphertext_modulus = CiphertextModulus::new_native(); /// /// // Create the PRNG @@ -192,7 +192,7 @@ pub fn allocate_and_generate_new_lwe_multi_bit_bootstrap_key< output_glwe_secret_key: &GlweSecretKey, decomp_base_log: DecompositionBaseLog, decomp_level_count: DecompositionLevelCount, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, noise_distribution: NoiseDistribution, ciphertext_modulus: CiphertextModulus, generator: &mut EncryptionRandomGenerator, @@ -242,7 +242,7 @@ where /// let polynomial_size = PolynomialSize(1024); /// let glwe_noise_distribution = /// Gaussian::from_dispersion_parameter(StandardDev(0.00000000000000029403601535432533), 0.0); -/// let grouping_factor = LweBskGroupingFactor(2); +/// let grouping_factor = MultiBitGroupingFactor(2); /// let ciphertext_modulus = CiphertextModulus::new_native(); /// /// // Create the PRNG @@ -453,7 +453,7 @@ pub fn par_allocate_and_generate_new_lwe_multi_bit_bootstrap_key< output_glwe_secret_key: &GlweSecretKey, decomp_base_log: DecompositionBaseLog, decomp_level_count: DecompositionLevelCount, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, noise_distribution: NoiseDistribution, ciphertext_modulus: CiphertextModulus, generator: &mut EncryptionRandomGenerator, @@ -638,7 +638,7 @@ pub fn allocate_and_generate_new_seeded_lwe_multi_bit_bootstrap_key< decomp_base_log: DecompositionBaseLog, decomp_level_count: DecompositionLevelCount, noise_distribution: NoiseDistribution, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ciphertext_modulus: CiphertextModulus, noise_seeder: &mut NoiseSeeder, ) -> SeededLweMultiBitBootstrapKeyOwned @@ -799,7 +799,7 @@ pub fn par_allocate_and_generate_new_seeded_lwe_multi_bit_bootstrap_key< decomp_base_log: DecompositionBaseLog, decomp_level_count: DecompositionLevelCount, noise_distribution: NoiseDistribution, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ciphertext_modulus: CiphertextModulus, noise_seeder: &mut NoiseSeeder, ) -> SeededLweMultiBitBootstrapKeyOwned diff --git a/tfhe/src/core_crypto/algorithms/lwe_multi_bit_programmable_bootstrapping.rs b/tfhe/src/core_crypto/algorithms/lwe_multi_bit_programmable_bootstrapping.rs index 73aab4d2cb..012ca0c611 100644 --- a/tfhe/src/core_crypto/algorithms/lwe_multi_bit_programmable_bootstrapping.rs +++ b/tfhe/src/core_crypto/algorithms/lwe_multi_bit_programmable_bootstrapping.rs @@ -22,7 +22,7 @@ pub use super::lwe_programmable_bootstrapping::generate_programmable_bootstrap_g pub(crate) fn modulus_switch_multi_bit( ciphertext_modulus_log: CiphertextModulusLog, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, lwe_mask_elements: &[Scalar], ) -> impl Iterator + '_ where @@ -46,7 +46,7 @@ where // Returns an iterator of booleans (as usize), corresponding to successive mask group elements // to indicate if they must be used at the given power_set_index pub(crate) fn selection_bit( - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, power_set_index: usize, ) -> impl Iterator { debug_assert!(power_set_index < grouping_factor.multi_bit_power_set_size().0); @@ -72,7 +72,7 @@ pub struct StandardMultiBitModulusSwitchedCt< C: Container + Sync, > { pub input: &'a LweCiphertext, - pub grouping_factor: LweBskGroupingFactor, + pub grouping_factor: MultiBitGroupingFactor, pub log_modulus: CiphertextModulusLog, } @@ -165,7 +165,7 @@ pub fn prepare_multi_bit_ggsw_mem_optimized( /// Gaussian::from_dispersion_parameter(StandardDev(0.00000000000000029403601535432533), 0.0); /// let pbs_base_log = DecompositionBaseLog(23); /// let pbs_level = DecompositionLevelCount(1); -/// let grouping_factor = LweBskGroupingFactor(2); // Group bits in pairs +/// let grouping_factor = MultiBitGroupingFactor(2); // Group bits in pairs /// let ciphertext_modulus = CiphertextModulus::new_native(); /// /// // Request the best seeder possible, starting with hardware entropy sources and falling back to diff --git a/tfhe/src/core_crypto/algorithms/test/lwe_multi_bit_bootstrap_key_generation.rs b/tfhe/src/core_crypto/algorithms/test/lwe_multi_bit_bootstrap_key_generation.rs index 85d052a4c9..4cdfed4c93 100644 --- a/tfhe/src/core_crypto/algorithms/test/lwe_multi_bit_bootstrap_key_generation.rs +++ b/tfhe/src/core_crypto/algorithms/test/lwe_multi_bit_bootstrap_key_generation.rs @@ -6,8 +6,8 @@ use crate::core_crypto::commons::math::random::{ }; use crate::core_crypto::commons::math::torus::UnsignedTorus; use crate::core_crypto::commons::parameters::{ - CiphertextModulus, DecompositionBaseLog, DecompositionLevelCount, GlweDimension, - LweBskGroupingFactor, LweDimension, PolynomialSize, + CiphertextModulus, DecompositionBaseLog, DecompositionLevelCount, GlweDimension, LweDimension, + MultiBitGroupingFactor, PolynomialSize, }; use crate::core_crypto::commons::test_tools::new_secret_random_generator; use crate::core_crypto::entities::*; @@ -36,7 +36,7 @@ fn test_parallel_and_seeded_multi_bit_bsk_gen_equivalence< let base_log = DecompositionBaseLog( crate::core_crypto::commons::test_tools::random_usize_between(2..5), ); - let grouping_factor = LweBskGroupingFactor( + let grouping_factor = MultiBitGroupingFactor( crate::core_crypto::commons::test_tools::random_usize_between(2..4), ); let mask_seed = Seed(crate::core_crypto::commons::test_tools::any_usize() as u128); diff --git a/tfhe/src/core_crypto/algorithms/test/mod.rs b/tfhe/src/core_crypto/algorithms/test/mod.rs index 0650f30860..8988be7222 100644 --- a/tfhe/src/core_crypto/algorithms/test/mod.rs +++ b/tfhe/src/core_crypto/algorithms/test/mod.rs @@ -192,7 +192,7 @@ pub const MULTI_BIT_2_2_2_PARAMS: MultiBitTestParams = MultiBitTestParams { )), message_modulus_log: MessageModulusLog(4), ciphertext_modulus: CiphertextModulus::new_native(), - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), thread_count: ThreadCount(5), }; @@ -210,7 +210,7 @@ pub const MULTI_BIT_3_3_2_PARAMS: MultiBitTestParams = MultiBitTestParams { )), message_modulus_log: MessageModulusLog(6), ciphertext_modulus: CiphertextModulus::new_native(), - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), thread_count: ThreadCount(5), }; @@ -228,7 +228,7 @@ pub const MULTI_BIT_2_2_2_CUSTOM_MOD_PARAMS: MultiBitTestParams = MultiBitT )), message_modulus_log: MessageModulusLog(3), ciphertext_modulus: CiphertextModulus::new(1 << 63), - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), thread_count: ThreadCount(5), }; @@ -246,7 +246,7 @@ pub const MULTI_BIT_2_2_3_PARAMS: MultiBitTestParams = MultiBitTestParams { )), message_modulus_log: MessageModulusLog(4), ciphertext_modulus: CiphertextModulus::new_native(), - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), thread_count: ThreadCount(12), }; @@ -264,7 +264,7 @@ pub const MULTI_BIT_3_3_3_PARAMS: MultiBitTestParams = MultiBitTestParams { )), message_modulus_log: MessageModulusLog(6), ciphertext_modulus: CiphertextModulus::new_native(), - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), thread_count: ThreadCount(5), }; @@ -282,7 +282,7 @@ pub const MULTI_BIT_2_2_3_CUSTOM_MOD_PARAMS: MultiBitTestParams = MultiBitT )), message_modulus_log: MessageModulusLog(3), ciphertext_modulus: CiphertextModulus::new(1 << 63), - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), thread_count: ThreadCount(12), }; diff --git a/tfhe/src/core_crypto/algorithms/test/modulus_switch_compression.rs b/tfhe/src/core_crypto/algorithms/test/modulus_switch_compression.rs index 6ffc6ea708..93276e31a6 100644 --- a/tfhe/src/core_crypto/algorithms/test/modulus_switch_compression.rs +++ b/tfhe/src/core_crypto/algorithms/test/modulus_switch_compression.rs @@ -79,7 +79,7 @@ fn assert_ms_compression + CastFrom + CastFrom>( ct: &LweCiphertext>, log_modulus: CiphertextModulusLog, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) { let a = StandardMultiBitModulusSwitchedCt { input: ct, @@ -124,7 +124,7 @@ fn test_ms_with_packing() { assert_ms_compression(&lwe_ciphertext_in, log_modulus); - for grouping_factor in (1..6).map(LweBskGroupingFactor) { + for grouping_factor in (1..6).map(MultiBitGroupingFactor) { if lwe_dimension.0 % grouping_factor.0 == 0 { assert_ms_multi_bit_compression( &lwe_ciphertext_in, diff --git a/tfhe/src/core_crypto/algorithms/test/params.rs b/tfhe/src/core_crypto/algorithms/test/params.rs index 2a3f6254a1..335a0c6724 100644 --- a/tfhe/src/core_crypto/algorithms/test/params.rs +++ b/tfhe/src/core_crypto/algorithms/test/params.rs @@ -75,7 +75,7 @@ pub struct MultiBitTestParams { pub glwe_noise_distribution: DynamicDistribution, pub message_modulus_log: MessageModulusLog, pub ciphertext_modulus: CiphertextModulus, - pub grouping_factor: LweBskGroupingFactor, + pub grouping_factor: MultiBitGroupingFactor, pub thread_count: ThreadCount, } diff --git a/tfhe/src/core_crypto/commons/generators/encryption/mask_random_generator.rs b/tfhe/src/core_crypto/commons/generators/encryption/mask_random_generator.rs index 52af6c0062..66d5de02bb 100644 --- a/tfhe/src/core_crypto/commons/generators/encryption/mask_random_generator.rs +++ b/tfhe/src/core_crypto/commons/generators/encryption/mask_random_generator.rs @@ -7,7 +7,7 @@ use crate::core_crypto::commons::math::random::{ use crate::core_crypto::commons::numeric::UnsignedInteger; use crate::core_crypto::commons::parameters::{ CiphertextModulus, DecompositionLevelCount, FunctionalPackingKeyswitchKeyCount, GlweDimension, - GlweSize, LweBskGroupingFactor, LweCiphertextCount, LweDimension, LweMaskCount, LweSize, + GlweSize, LweCiphertextCount, LweDimension, LweMaskCount, LweSize, MultiBitGroupingFactor, PolynomialSize, }; use concrete_csprng::generators::ForkError; @@ -80,7 +80,7 @@ impl MaskRandomGenerator { level: DecompositionLevelCount, glwe_size: GlweSize, polynomial_size: PolynomialSize, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> Result, ForkError> { let mask_bytes = mask_elements_per_multi_bit_bsk_ggsw_group( level, @@ -99,7 +99,7 @@ impl MaskRandomGenerator { level: DecompositionLevelCount, glwe_size: GlweSize, polynomial_size: PolynomialSize, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> Result, ForkError> { let ggsw_count = grouping_factor.multi_bit_power_set_size(); let mask_bytes = mask_elements_per_ggsw(level, glwe_size, polynomial_size) @@ -233,7 +233,7 @@ impl MaskRandomGenerator { level: DecompositionLevelCount, glwe_size: GlweSize, polynomial_size: PolynomialSize, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> Result, ForkError> { let mask_bytes = mask_elements_per_multi_bit_bsk_ggsw_group( level, @@ -252,7 +252,7 @@ impl MaskRandomGenerator { level: DecompositionLevelCount, glwe_size: GlweSize, polynomial_size: PolynomialSize, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> Result, ForkError> { let ggsw_count = grouping_factor.multi_bit_power_set_size(); let mask_bytes = mask_elements_per_ggsw(level, glwe_size, polynomial_size) @@ -416,7 +416,7 @@ fn mask_elements_per_multi_bit_bsk_ggsw_group( level: DecompositionLevelCount, glwe_size: GlweSize, poly_size: PolynomialSize, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> MaskElementCount { MaskElementCount( grouping_factor.multi_bit_power_set_size().0 diff --git a/tfhe/src/core_crypto/commons/generators/encryption/mod.rs b/tfhe/src/core_crypto/commons/generators/encryption/mod.rs index a831210917..f1c6377669 100644 --- a/tfhe/src/core_crypto/commons/generators/encryption/mod.rs +++ b/tfhe/src/core_crypto/commons/generators/encryption/mod.rs @@ -12,7 +12,8 @@ use crate::core_crypto::commons::math::random::{ use crate::core_crypto::commons::numeric::UnsignedInteger; use crate::core_crypto::commons::parameters::{ CiphertextModulus, DecompositionLevelCount, FunctionalPackingKeyswitchKeyCount, GlweSize, - LweBskGroupingFactor, LweCiphertextCount, LweDimension, LweMaskCount, LweSize, PolynomialSize, + LweCiphertextCount, LweDimension, LweMaskCount, LweSize, MultiBitGroupingFactor, + PolynomialSize, }; use concrete_csprng::generators::ForkError; use mask_random_generator::MaskRandomGenerator; @@ -67,7 +68,7 @@ impl EncryptionRandomGenerator { level: DecompositionLevelCount, glwe_size: GlweSize, polynomial_size: PolynomialSize, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> Result, ForkError> { let mask_iter = self.mask.fork_multi_bit_bsk_to_ggsw_group::( lwe_dimension, @@ -93,7 +94,7 @@ impl EncryptionRandomGenerator { level: DecompositionLevelCount, glwe_size: GlweSize, polynomial_size: PolynomialSize, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> Result, ForkError> { let mask_iter = self.mask.fork_multi_bit_bsk_ggsw_group_to_ggsw::( level, @@ -378,7 +379,7 @@ impl EncryptionRandomGenerator { level: DecompositionLevelCount, glwe_size: GlweSize, polynomial_size: PolynomialSize, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> Result, ForkError> { let mask_iter = self.mask.par_fork_multi_bit_bsk_to_ggsw_group::( lwe_dimension, @@ -404,7 +405,7 @@ impl EncryptionRandomGenerator { level: DecompositionLevelCount, glwe_size: GlweSize, polynomial_size: PolynomialSize, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> Result, ForkError> { let mask_iter = self.mask.par_fork_multi_bit_bsk_ggsw_group_to_ggsw::( level, diff --git a/tfhe/src/core_crypto/commons/generators/encryption/noise_random_generator.rs b/tfhe/src/core_crypto/commons/generators/encryption/noise_random_generator.rs index a82080924e..f6409dece8 100644 --- a/tfhe/src/core_crypto/commons/generators/encryption/noise_random_generator.rs +++ b/tfhe/src/core_crypto/commons/generators/encryption/noise_random_generator.rs @@ -7,7 +7,8 @@ use crate::core_crypto::commons::math::random::{ use crate::core_crypto::commons::numeric::UnsignedInteger; use crate::core_crypto::commons::parameters::{ CiphertextModulus, DecompositionLevelCount, FunctionalPackingKeyswitchKeyCount, GlweSize, - LweBskGroupingFactor, LweCiphertextCount, LweDimension, LweMaskCount, LweSize, PolynomialSize, + LweCiphertextCount, LweDimension, LweMaskCount, LweSize, MultiBitGroupingFactor, + PolynomialSize, }; use concrete_csprng::generators::ForkError; use rayon::prelude::*; @@ -157,7 +158,7 @@ impl NoiseRandomGenerator { level: DecompositionLevelCount, glwe_size: GlweSize, polynomial_size: PolynomialSize, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> Result, ForkError> { let noise_bytes = noise_elements_per_multi_bit_bsk_ggsw_group( level, @@ -176,7 +177,7 @@ impl NoiseRandomGenerator { level: DecompositionLevelCount, glwe_size: GlweSize, polynomial_size: PolynomialSize, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> Result, ForkError> { let ggsw_count = grouping_factor.multi_bit_power_set_size(); let noise_bytes = noise_elements_per_ggsw(level, glwe_size, polynomial_size) @@ -305,7 +306,7 @@ impl NoiseRandomGenerator { level: DecompositionLevelCount, glwe_size: GlweSize, polynomial_size: PolynomialSize, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> Result, ForkError> { let noise_bytes = noise_elements_per_multi_bit_bsk_ggsw_group( level, @@ -324,7 +325,7 @@ impl NoiseRandomGenerator { level: DecompositionLevelCount, glwe_size: GlweSize, polynomial_size: PolynomialSize, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> Result, ForkError> { let ggsw_count = grouping_factor.multi_bit_power_set_size(); let noise_bytes = noise_elements_per_ggsw(level, glwe_size, polynomial_size) @@ -490,7 +491,7 @@ fn noise_elements_per_multi_bit_bsk_ggsw_group( level: DecompositionLevelCount, glwe_size: GlweSize, poly_size: PolynomialSize, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> NoiseElementCount { NoiseElementCount( grouping_factor.multi_bit_power_set_size().0 diff --git a/tfhe/src/core_crypto/commons/parameters.rs b/tfhe/src/core_crypto/commons/parameters.rs index e9bf97fa30..f4ba5f63e7 100644 --- a/tfhe/src/core_crypto/commons/parameters.rs +++ b/tfhe/src/core_crypto/commons/parameters.rs @@ -219,9 +219,9 @@ pub struct ThreadCount(pub usize); /// The number of key bits grouped together in the multi_bit PBS #[derive(Debug, PartialEq, Eq, Copy, Clone, Serialize, Deserialize)] -pub struct LweBskGroupingFactor(pub usize); +pub struct MultiBitGroupingFactor(pub usize); -impl LweBskGroupingFactor { +impl MultiBitGroupingFactor { pub fn multi_bit_power_set_size(&self) -> MultiBitPowerSetSize { MultiBitPowerSetSize(1 << self.0) } diff --git a/tfhe/src/core_crypto/entities/compressed_modulus_switched_multi_bit_lwe_ciphertext.rs b/tfhe/src/core_crypto/entities/compressed_modulus_switched_multi_bit_lwe_ciphertext.rs index c816bb7141..27486687bb 100644 --- a/tfhe/src/core_crypto/entities/compressed_modulus_switched_multi_bit_lwe_ciphertext.rs +++ b/tfhe/src/core_crypto/entities/compressed_modulus_switched_multi_bit_lwe_ciphertext.rs @@ -21,7 +21,7 @@ use itertools::Itertools; /// Gaussian::from_dispersion_parameter(StandardDev(0.00000000000000029403601535432533), 0.0); /// let pbs_base_log = DecompositionBaseLog(23); /// let pbs_level = DecompositionLevelCount(1); -/// let grouping_factor = LweBskGroupingFactor(2); // Group bits in pairs +/// let grouping_factor = MultiBitGroupingFactor(2); // Group bits in pairs /// let ciphertext_modulus = CiphertextModulus::new_native(); /// /// let log_modulus = polynomial_size.to_blind_rotation_input_modulus_log(); @@ -172,7 +172,7 @@ pub struct CompressedModulusSwitchedMultiBitLweCiphertext< packed_diffs: Option>, lwe_dimension: LweDimension, uncompressed_ciphertext_modulus: CiphertextModulus, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, } impl + CastFrom> @@ -183,7 +183,7 @@ impl + CastFrom> pub fn compress>( ct: &LweCiphertext, log_modulus: CiphertextModulusLog, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> Self { let uncompressed_ciphertext_modulus = ct.ciphertext_modulus(); @@ -372,7 +372,7 @@ impl + CastFrom> pub struct FromCompressionMultiBitModulusSwitchedCt { switched_modulus_input_lwe_body: usize, switched_modulus_input_mask_per_group: Vec, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, lwe_dimension: LweDimension, } diff --git a/tfhe/src/core_crypto/entities/lwe_ciphertext.rs b/tfhe/src/core_crypto/entities/lwe_ciphertext.rs index 3d0c67d8b9..beef86d69a 100644 --- a/tfhe/src/core_crypto/entities/lwe_ciphertext.rs +++ b/tfhe/src/core_crypto/entities/lwe_ciphertext.rs @@ -713,7 +713,7 @@ pub struct LweCiphertextParameters { #[derive(Copy, Clone)] pub enum MsDecompressionType { ClassicPbs, - MultiBitPbs(LweBskGroupingFactor), + MultiBitPbs(MultiBitGroupingFactor), } impl ParameterSetConformant for LweCiphertext diff --git a/tfhe/src/core_crypto/entities/lwe_multi_bit_bootstrap_key.rs b/tfhe/src/core_crypto/entities/lwe_multi_bit_bootstrap_key.rs index ba82cd637c..7c43245453 100644 --- a/tfhe/src/core_crypto/entities/lwe_multi_bit_bootstrap_key.rs +++ b/tfhe/src/core_crypto/entities/lwe_multi_bit_bootstrap_key.rs @@ -16,7 +16,7 @@ where // GgswCiphertextList and use Deref to have access to all the primitives of the // GgswCiphertextList easily ggsw_list: GgswCiphertextList, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, } impl> std::ops::Deref @@ -42,7 +42,7 @@ pub fn lwe_multi_bit_bootstrap_key_size( glwe_size: GlweSize, polynomial_size: PolynomialSize, decomp_level_count: DecompositionLevelCount, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> Result { if input_lwe_dimension.0 % grouping_factor.0 != 0 { return Err("lwe_multi_bit_bootstrap_key_size error: \ @@ -84,7 +84,7 @@ impl> LweMultiBitBootstr /// let decomp_base_log = DecompositionBaseLog(8); /// let decomp_level_count = DecompositionLevelCount(3); /// let input_lwe_dimension = LweDimension(600); - /// let grouping_factor = LweBskGroupingFactor(2); + /// let grouping_factor = MultiBitGroupingFactor(2); /// let ciphertext_modulus = CiphertextModulus::new_native(); /// /// // Create a new LweMultiBitBootstrapKey @@ -159,7 +159,7 @@ impl> LweMultiBitBootstr polynomial_size: PolynomialSize, decomp_base_log: DecompositionBaseLog, decomp_level_count: DecompositionLevelCount, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ciphertext_modulus: CiphertextModulus, ) -> Self { let bsk = Self { @@ -211,10 +211,10 @@ impl> LweMultiBitBootstr .to_equivalent_lwe_dimension(self.polynomial_size()) } - /// Return the [`LweBskGroupingFactor`] of the current [`LweMultiBitBootstrapKey`]. + /// Return the [`MultiBitGroupingFactor`] of the current [`LweMultiBitBootstrapKey`]. /// /// See [`LweMultiBitBootstrapKey::from_container`] for usage. - pub fn grouping_factor(&self) -> LweBskGroupingFactor { + pub fn grouping_factor(&self) -> MultiBitGroupingFactor { self.grouping_factor } @@ -284,7 +284,7 @@ impl LweMultiBitBootstrapKeyOwned { decomp_base_log: DecompositionBaseLog, decomp_level_count: DecompositionLevelCount, input_lwe_dimension: LweDimension, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ciphertext_modulus: CiphertextModulus, ) -> Self { assert!( @@ -320,7 +320,7 @@ pub struct FourierLweMultiBitBootstrapKey> { glwe_size: GlweSize, decomposition_base_log: DecompositionBaseLog, decomposition_level_count: DecompositionLevelCount, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, } pub type FourierLweMultiBitBootstrapKeyOwned = FourierLweMultiBitBootstrapKey>; @@ -335,7 +335,7 @@ impl> FourierLweMultiBitBootstrapKey { polynomial_size: PolynomialSize, decomposition_base_log: DecompositionBaseLog, decomposition_level_count: DecompositionLevelCount, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> Self { assert!( input_lwe_dimension.0 % grouping_factor.0 == 0, @@ -416,7 +416,7 @@ impl> FourierLweMultiBitBootstrapKey { LweDimension((self.glwe_size.0 - 1) * self.polynomial_size().0) } - pub fn grouping_factor(&self) -> LweBskGroupingFactor { + pub fn grouping_factor(&self) -> MultiBitGroupingFactor { self.grouping_factor } @@ -480,7 +480,7 @@ impl FourierLweMultiBitBootstrapKeyOwned { polynomial_size: PolynomialSize, decomposition_base_log: DecompositionBaseLog, decomposition_level_count: DecompositionLevelCount, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> Self { assert!( input_lwe_dimension.0 % grouping_factor.0 == 0, diff --git a/tfhe/src/core_crypto/entities/seeded_lwe_multi_bit_bootstrap_key.rs b/tfhe/src/core_crypto/entities/seeded_lwe_multi_bit_bootstrap_key.rs index 893bd2c62a..5a13f291c7 100644 --- a/tfhe/src/core_crypto/entities/seeded_lwe_multi_bit_bootstrap_key.rs +++ b/tfhe/src/core_crypto/entities/seeded_lwe_multi_bit_bootstrap_key.rs @@ -21,7 +21,7 @@ where // GgswCiphertextList and use Deref to have access to all the primitives of the // SeededGgswCiphertextList easily ggsw_list: SeededGgswCiphertextList, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, } impl> std::ops::Deref @@ -67,7 +67,7 @@ impl> SeededLweMultiBitB /// let decomp_base_log = DecompositionBaseLog(8); /// let decomp_level_count = DecompositionLevelCount(3); /// let input_lwe_dimension = LweDimension(600); - /// let grouping_factor = LweBskGroupingFactor(2); + /// let grouping_factor = MultiBitGroupingFactor(2); /// let ciphertext_modulus = CiphertextModulus::new_native(); /// /// // Get a seeder @@ -172,7 +172,7 @@ impl> SeededLweMultiBitB decomp_base_log: DecompositionBaseLog, decomp_level_count: DecompositionLevelCount, compression_seed: CompressionSeed, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ciphertext_modulus: CiphertextModulus, ) -> Self { assert!( @@ -231,10 +231,10 @@ impl> SeededLweMultiBitB .to_equivalent_lwe_dimension(self.polynomial_size()) } - /// Return the [`LweBskGroupingFactor`] of the current [`LweMultiBitBootstrapKey`]. + /// Return the [`MultiBitGroupingFactor`] of the current [`LweMultiBitBootstrapKey`]. /// /// See [`SeededLweMultiBitBootstrapKey::from_container`] for usage. - pub fn grouping_factor(&self) -> LweBskGroupingFactor { + pub fn grouping_factor(&self) -> MultiBitGroupingFactor { self.grouping_factor } @@ -358,7 +358,7 @@ impl SeededLweMultiBitBootstrapKeyOwned { decomp_base_log: DecompositionBaseLog, decomp_level_count: DecompositionLevelCount, input_lwe_dimension: LweDimension, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, compression_seed: CompressionSeed, ciphertext_modulus: CiphertextModulus, ) -> Self { diff --git a/tfhe/src/core_crypto/gpu/entities/lwe_multi_bit_bootstrap_key.rs b/tfhe/src/core_crypto/gpu/entities/lwe_multi_bit_bootstrap_key.rs index 04740d9078..4db0fc2095 100644 --- a/tfhe/src/core_crypto/gpu/entities/lwe_multi_bit_bootstrap_key.rs +++ b/tfhe/src/core_crypto/gpu/entities/lwe_multi_bit_bootstrap_key.rs @@ -4,7 +4,7 @@ use crate::core_crypto::gpu::{ }; use crate::core_crypto::prelude::{ lwe_multi_bit_bootstrap_key_size, Container, DecompositionBaseLog, DecompositionLevelCount, - GlweDimension, LweBskGroupingFactor, LweDimension, LweMultiBitBootstrapKey, PolynomialSize, + GlweDimension, LweDimension, LweMultiBitBootstrapKey, MultiBitGroupingFactor, PolynomialSize, UnsignedInteger, }; @@ -24,7 +24,7 @@ pub struct CudaLweMultiBitBootstrapKey { // Decomposition level count pub(crate) decomp_level_count: DecompositionLevelCount, // Grouping factor - pub(crate) grouping_factor: LweBskGroupingFactor, + pub(crate) grouping_factor: MultiBitGroupingFactor, } impl CudaLweMultiBitBootstrapKey { @@ -105,7 +105,7 @@ impl CudaLweMultiBitBootstrapKey { self.decomp_level_count } - pub(crate) fn grouping_factor(&self) -> LweBskGroupingFactor { + pub(crate) fn grouping_factor(&self) -> MultiBitGroupingFactor { self.grouping_factor } } diff --git a/tfhe/src/core_crypto/gpu/mod.rs b/tfhe/src/core_crypto/gpu/mod.rs index 1e0fde4cee..bff39383b2 100644 --- a/tfhe/src/core_crypto/gpu/mod.rs +++ b/tfhe/src/core_crypto/gpu/mod.rs @@ -6,7 +6,7 @@ pub mod vec; use crate::core_crypto::gpu::vec::CudaVec; use crate::core_crypto::prelude::{ CiphertextModulus, DecompositionBaseLog, DecompositionLevelCount, GlweCiphertextCount, - GlweDimension, LweBskGroupingFactor, LweCiphertextCount, LweCiphertextIndex, LweDimension, + GlweDimension, LweCiphertextCount, LweCiphertextIndex, LweDimension, MultiBitGroupingFactor, PolynomialSize, UnsignedInteger, }; pub use algorithms::*; @@ -157,7 +157,7 @@ pub unsafe fn programmable_bootstrap_multi_bit_async( polynomial_size: PolynomialSize, base_log: DecompositionBaseLog, level: DecompositionLevelCount, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, num_samples: u32, lwe_idx: LweCiphertextIndex, ) { @@ -303,7 +303,7 @@ pub unsafe fn convert_lwe_multi_bit_programmable_bootstrap_key_async(), size); diff --git a/tfhe/src/integer/gpu/mod.rs b/tfhe/src/integer/gpu/mod.rs index d4fadb62b5..0c0d26ebb2 100644 --- a/tfhe/src/integer/gpu/mod.rs +++ b/tfhe/src/integer/gpu/mod.rs @@ -5,8 +5,8 @@ use crate::core_crypto::gpu::slice::{CudaSlice, CudaSliceMut}; use crate::core_crypto::gpu::vec::CudaVec; use crate::core_crypto::gpu::{get_max_shared_memory, CudaStreams}; use crate::core_crypto::prelude::{ - DecompositionBaseLog, DecompositionLevelCount, GlweDimension, LweBskGroupingFactor, - LweDimension, Numeric, PolynomialSize, UnsignedInteger, + DecompositionBaseLog, DecompositionLevelCount, GlweDimension, LweDimension, + MultiBitGroupingFactor, Numeric, PolynomialSize, UnsignedInteger, }; use crate::integer::{ClientKey, RadixClientKey}; use crate::shortint::{CarryModulus, MessageModulus}; @@ -211,7 +211,7 @@ pub unsafe fn unchecked_scalar_mul_integer_radix_kb_async( message_modulus: MessageModulus, carry_modulus: CarryModulus, pbs_type: PBSType, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) { assert_eq!( streams.gpu_indexes[0], @@ -938,7 +938,7 @@ pub unsafe fn propagate_single_carry_assign_async( message_modulus: MessageModulus, carry_modulus: CarryModulus, pbs_type: PBSType, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) { assert_eq!( streams.gpu_indexes[0], @@ -2151,7 +2151,7 @@ pub unsafe fn unchecked_unsigned_div_rem_integer_radix_kb_assign_async< pbs_base_log: DecompositionBaseLog, num_blocks: u32, pbs_type: PBSType, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) { let mut mem_ptr: *mut i8 = std::ptr::null_mut(); scratch_cuda_integer_div_rem_radix_ciphertext_kb_64( diff --git a/tfhe/src/integer/gpu/server_key/radix/add.rs b/tfhe/src/integer/gpu/server_key/radix/add.rs index 5ee050d875..ab2847e689 100644 --- a/tfhe/src/integer/gpu/server_key/radix/add.rs +++ b/tfhe/src/integer/gpu/server_key/radix/add.rs @@ -1,6 +1,6 @@ use crate::core_crypto::gpu::lwe_ciphertext_list::CudaLweCiphertextList; use crate::core_crypto::gpu::CudaStreams; -use crate::core_crypto::prelude::LweBskGroupingFactor; +use crate::core_crypto::prelude::MultiBitGroupingFactor; use crate::integer::gpu::ciphertext::{CudaIntegerRadixCiphertext, CudaUnsignedRadixCiphertext}; use crate::integer::gpu::server_key::{CudaBootstrappingKey, CudaServerKey}; use crate::integer::gpu::{ @@ -285,7 +285,7 @@ impl CudaServerKey { num_blocks.0 as u32, radix_count_in_vec as u32, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { diff --git a/tfhe/src/integer/gpu/server_key/radix/bitwise_op.rs b/tfhe/src/integer/gpu/server_key/radix/bitwise_op.rs index 8cbd95fe7f..0aa191da0c 100644 --- a/tfhe/src/integer/gpu/server_key/radix/bitwise_op.rs +++ b/tfhe/src/integer/gpu/server_key/radix/bitwise_op.rs @@ -1,5 +1,5 @@ use crate::core_crypto::gpu::CudaStreams; -use crate::core_crypto::prelude::LweBskGroupingFactor; +use crate::core_crypto::prelude::MultiBitGroupingFactor; use crate::integer::gpu::ciphertext::CudaIntegerRadixCiphertext; use crate::integer::gpu::server_key::CudaBootstrappingKey; use crate::integer::gpu::{ @@ -93,7 +93,7 @@ impl CudaServerKey { d_bsk.decomp_base_log, lwe_ciphertext_count.0 as u32, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { @@ -236,7 +236,7 @@ impl CudaServerKey { op, lwe_ciphertext_count.0 as u32, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { diff --git a/tfhe/src/integer/gpu/server_key/radix/cmux.rs b/tfhe/src/integer/gpu/server_key/radix/cmux.rs index f02a1e1996..968c4cf010 100644 --- a/tfhe/src/integer/gpu/server_key/radix/cmux.rs +++ b/tfhe/src/integer/gpu/server_key/radix/cmux.rs @@ -1,5 +1,5 @@ use crate::core_crypto::gpu::CudaStreams; -use crate::core_crypto::prelude::LweBskGroupingFactor; +use crate::core_crypto::prelude::MultiBitGroupingFactor; use crate::integer::gpu::ciphertext::boolean_value::CudaBooleanBlock; use crate::integer::gpu::ciphertext::CudaIntegerRadixCiphertext; use crate::integer::gpu::server_key::CudaBootstrappingKey; @@ -47,7 +47,7 @@ impl CudaServerKey { d_bsk.decomp_base_log, lwe_ciphertext_count.0 as u32, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { diff --git a/tfhe/src/integer/gpu/server_key/radix/comparison.rs b/tfhe/src/integer/gpu/server_key/radix/comparison.rs index 50e7ee9875..cfca16004f 100644 --- a/tfhe/src/integer/gpu/server_key/radix/comparison.rs +++ b/tfhe/src/integer/gpu/server_key/radix/comparison.rs @@ -1,6 +1,6 @@ use crate::core_crypto::gpu::lwe_ciphertext_list::CudaLweCiphertextList; use crate::core_crypto::gpu::CudaStreams; -use crate::core_crypto::prelude::{CiphertextModulus, LweBskGroupingFactor, LweCiphertextCount}; +use crate::core_crypto::prelude::{CiphertextModulus, MultiBitGroupingFactor, LweCiphertextCount}; use crate::integer::gpu::ciphertext::boolean_value::CudaBooleanBlock; use crate::integer::gpu::ciphertext::info::CudaRadixCiphertextInfo; use crate::integer::gpu::ciphertext::{CudaIntegerRadixCiphertext, CudaRadixCiphertext}; @@ -77,7 +77,7 @@ impl CudaServerKey { op, T::IS_SIGNED, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { @@ -989,7 +989,7 @@ impl CudaServerKey { ComparisonType::MAX, T::IS_SIGNED, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { @@ -1088,7 +1088,7 @@ impl CudaServerKey { ComparisonType::MIN, T::IS_SIGNED, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { diff --git a/tfhe/src/integer/gpu/server_key/radix/div_mod.rs b/tfhe/src/integer/gpu/server_key/radix/div_mod.rs index 0a18460af9..e459f41750 100644 --- a/tfhe/src/integer/gpu/server_key/radix/div_mod.rs +++ b/tfhe/src/integer/gpu/server_key/radix/div_mod.rs @@ -1,5 +1,5 @@ use crate::core_crypto::gpu::CudaStreams; -use crate::core_crypto::prelude::LweBskGroupingFactor; +use crate::core_crypto::prelude::MultiBitGroupingFactor; use crate::integer::gpu::ciphertext::{CudaIntegerRadixCiphertext, CudaUnsignedRadixCiphertext}; use crate::integer::gpu::server_key::{CudaBootstrappingKey, CudaServerKey}; use crate::integer::gpu::{unchecked_unsigned_div_rem_integer_radix_kb_assign_async, PBSType}; @@ -45,7 +45,7 @@ impl CudaServerKey { d_bsk.decomp_base_log, num_blocks, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { diff --git a/tfhe/src/integer/gpu/server_key/radix/mod.rs b/tfhe/src/integer/gpu/server_key/radix/mod.rs index 5d52b6c142..59ac8f5325 100644 --- a/tfhe/src/integer/gpu/server_key/radix/mod.rs +++ b/tfhe/src/integer/gpu/server_key/radix/mod.rs @@ -3,7 +3,7 @@ use crate::core_crypto::gpu::lwe_ciphertext_list::CudaLweCiphertextList; use crate::core_crypto::gpu::vec::CudaVec; use crate::core_crypto::gpu::{CudaLweList, CudaStreams}; use crate::core_crypto::prelude::{ - ContiguousEntityContainerMut, LweBskGroupingFactor, LweCiphertextCount, + ContiguousEntityContainerMut, LweCiphertextCount, MultiBitGroupingFactor, }; use crate::integer::block_decomposition::{BlockDecomposer, DecomposableInto}; use crate::integer::gpu::ciphertext::info::{CudaBlockInfo, CudaRadixCiphertextInfo}; @@ -187,7 +187,7 @@ impl CudaServerKey { ciphertext.info.blocks.first().unwrap().message_modulus, ciphertext.info.blocks.first().unwrap().carry_modulus, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { @@ -246,7 +246,7 @@ impl CudaServerKey { ciphertext.info.blocks.first().unwrap().message_modulus, ciphertext.info.blocks.first().unwrap().carry_modulus, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { @@ -640,7 +640,7 @@ impl CudaServerKey { self.message_modulus, self.carry_modulus, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { diff --git a/tfhe/src/integer/gpu/server_key/radix/mul.rs b/tfhe/src/integer/gpu/server_key/radix/mul.rs index 3f741d57f9..5f0ead9bad 100644 --- a/tfhe/src/integer/gpu/server_key/radix/mul.rs +++ b/tfhe/src/integer/gpu/server_key/radix/mul.rs @@ -1,5 +1,5 @@ use crate::core_crypto::gpu::CudaStreams; -use crate::core_crypto::prelude::LweBskGroupingFactor; +use crate::core_crypto::prelude::MultiBitGroupingFactor; use crate::integer::gpu::ciphertext::CudaIntegerRadixCiphertext; use crate::integer::gpu::server_key::{CudaBootstrappingKey, CudaServerKey}; use crate::integer::gpu::{unchecked_mul_integer_radix_kb_assign_async, PBSType}; @@ -91,7 +91,7 @@ impl CudaServerKey { self.key_switching_key.decomposition_level_count(), num_blocks, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { diff --git a/tfhe/src/integer/gpu/server_key/radix/rotate.rs b/tfhe/src/integer/gpu/server_key/radix/rotate.rs index 4baf45e658..296472925f 100644 --- a/tfhe/src/integer/gpu/server_key/radix/rotate.rs +++ b/tfhe/src/integer/gpu/server_key/radix/rotate.rs @@ -1,5 +1,5 @@ use crate::core_crypto::gpu::CudaStreams; -use crate::core_crypto::prelude::LweBskGroupingFactor; +use crate::core_crypto::prelude::MultiBitGroupingFactor; use crate::integer::gpu::ciphertext::{CudaIntegerRadixCiphertext, CudaUnsignedRadixCiphertext}; use crate::integer::gpu::server_key::CudaBootstrappingKey; use crate::integer::gpu::{ @@ -48,7 +48,7 @@ impl CudaServerKey { lwe_ciphertext_count.0 as u32, is_signed, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { @@ -167,7 +167,7 @@ impl CudaServerKey { lwe_ciphertext_count.0 as u32, is_signed, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { diff --git a/tfhe/src/integer/gpu/server_key/radix/scalar_bitwise_op.rs b/tfhe/src/integer/gpu/server_key/radix/scalar_bitwise_op.rs index 5e50415f5a..87e55ca83f 100644 --- a/tfhe/src/integer/gpu/server_key/radix/scalar_bitwise_op.rs +++ b/tfhe/src/integer/gpu/server_key/radix/scalar_bitwise_op.rs @@ -1,6 +1,6 @@ use crate::core_crypto::gpu::vec::CudaVec; use crate::core_crypto::gpu::CudaStreams; -use crate::core_crypto::prelude::LweBskGroupingFactor; +use crate::core_crypto::prelude::MultiBitGroupingFactor; use crate::integer::block_decomposition::{BlockDecomposer, DecomposableInto}; use crate::integer::gpu::ciphertext::CudaIntegerRadixCiphertext; use crate::integer::gpu::server_key::CudaBootstrappingKey; @@ -58,7 +58,7 @@ impl CudaServerKey { op, lwe_ciphertext_count.0 as u32, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { diff --git a/tfhe/src/integer/gpu/server_key/radix/scalar_comparison.rs b/tfhe/src/integer/gpu/server_key/radix/scalar_comparison.rs index 7cdcb7fbbf..f358271237 100644 --- a/tfhe/src/integer/gpu/server_key/radix/scalar_comparison.rs +++ b/tfhe/src/integer/gpu/server_key/radix/scalar_comparison.rs @@ -1,7 +1,7 @@ use crate::core_crypto::gpu::lwe_ciphertext_list::CudaLweCiphertextList; use crate::core_crypto::gpu::vec::CudaVec; use crate::core_crypto::gpu::CudaStreams; -use crate::core_crypto::prelude::{CiphertextModulus, LweBskGroupingFactor, LweCiphertextCount}; +use crate::core_crypto::prelude::{CiphertextModulus, MultiBitGroupingFactor, LweCiphertextCount}; use crate::integer::block_decomposition::{BlockDecomposer, DecomposableInto}; use crate::integer::gpu::ciphertext::boolean_value::CudaBooleanBlock; use crate::integer::gpu::ciphertext::info::CudaRadixCiphertextInfo; @@ -199,7 +199,7 @@ impl CudaServerKey { op, signed_with_positive_scalar, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { @@ -361,7 +361,7 @@ impl CudaServerKey { op, T::IS_SIGNED, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { diff --git a/tfhe/src/integer/gpu/server_key/radix/scalar_mul.rs b/tfhe/src/integer/gpu/server_key/radix/scalar_mul.rs index 850c6d0499..61471066e4 100644 --- a/tfhe/src/integer/gpu/server_key/radix/scalar_mul.rs +++ b/tfhe/src/integer/gpu/server_key/radix/scalar_mul.rs @@ -1,5 +1,5 @@ use crate::core_crypto::gpu::CudaStreams; -use crate::core_crypto::prelude::LweBskGroupingFactor; +use crate::core_crypto::prelude::MultiBitGroupingFactor; use crate::integer::block_decomposition::{BlockDecomposer, DecomposableInto}; use crate::integer::gpu::ciphertext::CudaIntegerRadixCiphertext; use crate::integer::gpu::server_key::{CudaBootstrappingKey, CudaServerKey}; @@ -124,7 +124,7 @@ impl CudaServerKey { num_blocks as u32, decomposed_scalar.len() as u32, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { diff --git a/tfhe/src/integer/gpu/server_key/radix/scalar_rotate.rs b/tfhe/src/integer/gpu/server_key/radix/scalar_rotate.rs index 6449123f43..92dff14025 100644 --- a/tfhe/src/integer/gpu/server_key/radix/scalar_rotate.rs +++ b/tfhe/src/integer/gpu/server_key/radix/scalar_rotate.rs @@ -1,5 +1,5 @@ use crate::core_crypto::gpu::CudaStreams; -use crate::core_crypto::prelude::{CastFrom, LweBskGroupingFactor}; +use crate::core_crypto::prelude::{CastFrom, MultiBitGroupingFactor}; use crate::integer::gpu::ciphertext::CudaIntegerRadixCiphertext; use crate::integer::gpu::server_key::CudaBootstrappingKey; use crate::integer::gpu::{ @@ -67,7 +67,7 @@ impl CudaServerKey { d_bsk.decomp_base_log, lwe_ciphertext_count.0 as u32, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { @@ -174,7 +174,7 @@ impl CudaServerKey { d_bsk.decomp_base_log, lwe_ciphertext_count.0 as u32, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { diff --git a/tfhe/src/integer/gpu/server_key/radix/scalar_shift.rs b/tfhe/src/integer/gpu/server_key/radix/scalar_shift.rs index f0a6d56dee..07ab051c0c 100644 --- a/tfhe/src/integer/gpu/server_key/radix/scalar_shift.rs +++ b/tfhe/src/integer/gpu/server_key/radix/scalar_shift.rs @@ -1,5 +1,5 @@ use crate::core_crypto::gpu::CudaStreams; -use crate::core_crypto::prelude::{CastFrom, LweBskGroupingFactor}; +use crate::core_crypto::prelude::{CastFrom, MultiBitGroupingFactor}; use crate::integer::gpu::ciphertext::CudaIntegerRadixCiphertext; use crate::integer::gpu::server_key::CudaBootstrappingKey; use crate::integer::gpu::{ @@ -69,7 +69,7 @@ impl CudaServerKey { d_bsk.decomp_base_log, lwe_ciphertext_count.0 as u32, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { @@ -213,7 +213,7 @@ impl CudaServerKey { d_bsk.decomp_base_log, lwe_ciphertext_count.0 as u32, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { @@ -268,7 +268,7 @@ impl CudaServerKey { d_bsk.decomp_base_log, lwe_ciphertext_count.0 as u32, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { diff --git a/tfhe/src/integer/gpu/server_key/radix/shift.rs b/tfhe/src/integer/gpu/server_key/radix/shift.rs index b5433167d2..59ebff09c2 100644 --- a/tfhe/src/integer/gpu/server_key/radix/shift.rs +++ b/tfhe/src/integer/gpu/server_key/radix/shift.rs @@ -1,5 +1,5 @@ use crate::core_crypto::gpu::CudaStreams; -use crate::core_crypto::prelude::LweBskGroupingFactor; +use crate::core_crypto::prelude::MultiBitGroupingFactor; use crate::integer::gpu::ciphertext::{CudaIntegerRadixCiphertext, CudaUnsignedRadixCiphertext}; use crate::integer::gpu::server_key::CudaBootstrappingKey; use crate::integer::gpu::{ @@ -48,7 +48,7 @@ impl CudaServerKey { lwe_ciphertext_count.0 as u32, is_signed, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { @@ -165,7 +165,7 @@ impl CudaServerKey { lwe_ciphertext_count.0 as u32, is_signed, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { diff --git a/tfhe/src/integer/gpu/server_key/radix/sub.rs b/tfhe/src/integer/gpu/server_key/radix/sub.rs index a03e5a5685..932e6f4d67 100644 --- a/tfhe/src/integer/gpu/server_key/radix/sub.rs +++ b/tfhe/src/integer/gpu/server_key/radix/sub.rs @@ -1,6 +1,6 @@ use crate::core_crypto::gpu::lwe_ciphertext_list::CudaLweCiphertextList; use crate::core_crypto::gpu::CudaStreams; -use crate::core_crypto::prelude::{CiphertextModulus, LweBskGroupingFactor, LweCiphertextCount}; +use crate::core_crypto::prelude::{CiphertextModulus, MultiBitGroupingFactor, LweCiphertextCount}; use crate::integer::gpu::ciphertext::boolean_value::CudaBooleanBlock; use crate::integer::gpu::ciphertext::info::CudaRadixCiphertextInfo; use crate::integer::gpu::ciphertext::{ @@ -400,7 +400,7 @@ impl CudaServerKey { d_bsk.decomp_base_log, num_blocks, PBSType::Classical, - LweBskGroupingFactor(0), + MultiBitGroupingFactor(0), ); } CudaBootstrappingKey::MultiBit(d_multibit_bsk) => { diff --git a/tfhe/src/shortint/engine/server_side.rs b/tfhe/src/shortint/engine/server_side.rs index 02dba8e17d..523fe16381 100644 --- a/tfhe/src/shortint/engine/server_side.rs +++ b/tfhe/src/shortint/engine/server_side.rs @@ -1,8 +1,8 @@ use super::ShortintEngine; use crate::core_crypto::algorithms::*; use crate::core_crypto::commons::parameters::{ - DecompositionBaseLog, DecompositionLevelCount, GlweDimension, LweBskGroupingFactor, - LweDimension, PolynomialSize, ThreadCount, + DecompositionBaseLog, DecompositionLevelCount, GlweDimension, LweDimension, + MultiBitGroupingFactor, PolynomialSize, ThreadCount, }; use crate::core_crypto::entities::*; use crate::shortint::ciphertext::MaxDegree; @@ -27,7 +27,7 @@ impl ShortintEngine { polynomial_size: PolynomialSize, pbs_base_log: DecompositionBaseLog, pbs_level: DecompositionLevelCount, - grouping_factor: LweBskGroupingFactor, + grouping_factor: MultiBitGroupingFactor, ) -> ThreadCount { // TODO // Will be used later when we dynamically compute thread counts, put them in the public diff --git a/tfhe/src/shortint/parameters/coverage_parameters.rs b/tfhe/src/shortint/parameters/coverage_parameters.rs index df44e3495e..0516b0f693 100644 --- a/tfhe/src/shortint/parameters/coverage_parameters.rs +++ b/tfhe/src/shortint/parameters/coverage_parameters.rs @@ -3,7 +3,7 @@ //! This module provides the structure containing the cryptographic parameters only intended to be //! used to speed up test coverage operations. //! These parameters are *NOT safe*. -use crate::core_crypto::prelude::LweBskGroupingFactor; +use crate::core_crypto::prelude::MultiBitGroupingFactor; use crate::shortint::parameters::{ DecompositionBaseLog, DecompositionLevelCount, DynamicDistribution, GlweDimension, LweDimension, PolynomialSize, StandardDev, @@ -100,7 +100,7 @@ pub const COVERAGE_PARAM_MULTI_BIT_MESSAGE_2_CARRY_2_GROUP_2_KS_PBS: MultiBitPBS log2_p_fail: -40., ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; diff --git a/tfhe/src/shortint/parameters/mod.rs b/tfhe/src/shortint/parameters/mod.rs index 7a6a746688..6a557434b9 100644 --- a/tfhe/src/shortint/parameters/mod.rs +++ b/tfhe/src/shortint/parameters/mod.rs @@ -9,7 +9,7 @@ use crate::conformance::ListSizeConstraint; pub use crate::core_crypto::commons::dispersion::StandardDev; pub use crate::core_crypto::commons::parameters::{ CiphertextModulus as CoreCiphertextModulus, DecompositionBaseLog, DecompositionLevelCount, - DynamicDistribution, GlweDimension, LweBskGroupingFactor, LweDimension, PolynomialSize, + DynamicDistribution, GlweDimension, LweDimension, MultiBitGroupingFactor, PolynomialSize, }; use crate::core_crypto::prelude::{ LweCiphertextListParameters, LweCiphertextParameters, MsDecompressionType, @@ -320,10 +320,10 @@ impl PBSParameters { Self::MultiBitPBS(params) => params.encryption_key_choice, } } - pub const fn grouping_factor(&self) -> LweBskGroupingFactor { + pub const fn grouping_factor(&self) -> MultiBitGroupingFactor { match self { Self::PBS(_) => { - panic!("PBSParameters::PBS does not have an LweBskGroupingFactor") + panic!("PBSParameters::PBS does not have an MultiBitGroupingFactor") } Self::MultiBitPBS(params) => params.grouping_factor, } diff --git a/tfhe/src/shortint/parameters/multi_bit/mod.rs b/tfhe/src/shortint/parameters/multi_bit/mod.rs index a08c1b8145..859c2116fb 100644 --- a/tfhe/src/shortint/parameters/multi_bit/mod.rs +++ b/tfhe/src/shortint/parameters/multi_bit/mod.rs @@ -16,7 +16,7 @@ use crate::shortint::ciphertext::{Degree, MaxNoiseLevel, NoiseLevel}; use crate::shortint::parameters::p_fail_2_minus_40::ks_pbs::*; use crate::shortint::parameters::p_fail_2_minus_40::ks_pbs_gpu::*; use crate::shortint::parameters::{ - CarryModulus, CiphertextModulus, EncryptionKeyChoice, LweBskGroupingFactor, MessageModulus, + CarryModulus, CiphertextModulus, EncryptionKeyChoice, MessageModulus, MultiBitGroupingFactor, }; use crate::shortint::PBSOrder; use serde::{Deserialize, Serialize}; @@ -41,7 +41,7 @@ pub struct MultiBitPBSParameters { pub log2_p_fail: f64, pub ciphertext_modulus: CiphertextModulus, pub encryption_key_choice: EncryptionKeyChoice, - pub grouping_factor: LweBskGroupingFactor, + pub grouping_factor: MultiBitGroupingFactor, pub deterministic_execution: bool, } diff --git a/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_128/ks_pbs.rs b/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_128/ks_pbs.rs index d71cb29579..ac95ee2b6a 100644 --- a/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_128/ks_pbs.rs +++ b/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_128/ks_pbs.rs @@ -20,7 +20,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -130.807, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-128.078, algorithmic cost ~ 59, 2-norm = 3 @@ -45,7 +45,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.078, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-128.837, algorithmic cost ~ 73, 2-norm = 7 @@ -70,7 +70,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.837, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-129.604, algorithmic cost ~ 257, 2-norm = 15 @@ -95,7 +95,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -129.604, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-128.527, algorithmic cost ~ 582, 2-norm = 31 @@ -120,7 +120,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.527, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-128.858, algorithmic cost ~ 1325, 2-norm = 63 @@ -145,7 +145,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.858, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-129.851, algorithmic cost ~ 3949, 2-norm = 127 @@ -170,7 +170,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -129.851, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-128.265, algorithmic cost ~ 16515, 2-norm = 255 @@ -195,7 +195,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.265, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-131.01, algorithmic cost ~ 59, 2-norm = 1 @@ -220,7 +220,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -131.01, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-130.89, algorithmic cost ~ 73, 2-norm = 2 @@ -245,7 +245,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -130.89, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-130.314, algorithmic cost ~ 166, 2-norm = 5 @@ -270,7 +270,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -130.314, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-129.029, algorithmic cost ~ 582, 2-norm = 10 @@ -295,7 +295,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -129.029, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-130.111, algorithmic cost ~ 1307, 2-norm = 21 @@ -320,7 +320,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -130.111, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-129.701, algorithmic cost ~ 3909, 2-norm = 42 @@ -345,7 +345,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -129.701, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-130.125, algorithmic cost ~ 14443, 2-norm = 85 @@ -370,7 +370,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -130.125, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-131.029, algorithmic cost ~ 73, 2-norm = 1 @@ -395,7 +395,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -131.029, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-131.59, algorithmic cost ~ 165, 2-norm = 2 @@ -420,7 +420,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -131.59, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-129.079, algorithmic cost ~ 582, 2-norm = 4 @@ -445,7 +445,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -129.079, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-128.307, algorithmic cost ~ 1304, 2-norm = 9 @@ -470,7 +470,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.307, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-130.47, algorithmic cost ~ 2973, 2-norm = 18 @@ -495,7 +495,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -130.47, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-129.532, algorithmic cost ~ 12371, 2-norm = 36 @@ -520,7 +520,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -129.532, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-128.97, algorithmic cost ~ 165, 2-norm = 1 @@ -545,7 +545,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.97, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-129.377, algorithmic cost ~ 387, 2-norm = 2 @@ -570,7 +570,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -129.377, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-128.724, algorithmic cost ~ 1304, 2-norm = 4 @@ -595,7 +595,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.724, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-131.339, algorithmic cost ~ 2938, 2-norm = 8 @@ -620,7 +620,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -131.339, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-130.88, algorithmic cost ~ 12371, 2-norm = 17 @@ -645,7 +645,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -130.88, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-130.043, algorithmic cost ~ 375, 2-norm = 1 @@ -670,7 +670,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -130.043, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-128.802, algorithmic cost ~ 1304, 2-norm = 2 @@ -695,7 +695,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.802, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-130.765, algorithmic cost ~ 2932, 2-norm = 4 @@ -720,7 +720,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -130.765, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-130.011, algorithmic cost ~ 10299, 2-norm = 8 @@ -745,7 +745,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -130.011, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-128.821, algorithmic cost ~ 1304, 2-norm = 1 @@ -770,7 +770,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.821, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-131.8, algorithmic cost ~ 2932, 2-norm = 2 @@ -795,7 +795,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -131.8, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-130.954, algorithmic cost ~ 10299, 2-norm = 4 @@ -820,7 +820,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -130.954, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-132.061, algorithmic cost ~ 2932, 2-norm = 1 @@ -845,7 +845,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -132.061, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-131.192, algorithmic cost ~ 10299, 2-norm = 2 @@ -870,7 +870,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -131.192, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-130.096, algorithmic cost ~ 8226, 2-norm = 1 @@ -895,7 +895,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -130.096, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; pub const ALL_MULTI_BIT_PARAMETER_2_VEC: [MultiBitPBSParameters; 36] = [ @@ -957,7 +957,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -133.734, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-128.965, algorithmic cost ~ 60, 2-norm = 3 @@ -982,7 +982,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.965, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-131.594, algorithmic cost ~ 70, 2-norm = 7 @@ -1007,7 +1007,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -131.594, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-128.597, algorithmic cost ~ 254, 2-norm = 15 @@ -1032,7 +1032,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.597, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-131.859, algorithmic cost ~ 568, 2-norm = 31 @@ -1057,7 +1057,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -131.859, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-130.174, algorithmic cost ~ 1278, 2-norm = 63 @@ -1082,7 +1082,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -130.174, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-128.714, algorithmic cost ~ 3854, 2-norm = 127 @@ -1107,7 +1107,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.714, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-129.013, algorithmic cost ~ 60, 2-norm = 1 @@ -1132,7 +1132,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -129.013, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-133.758, algorithmic cost ~ 70, 2-norm = 2 @@ -1157,7 +1157,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -133.758, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-129.013, algorithmic cost ~ 157, 2-norm = 5 @@ -1182,7 +1182,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -129.013, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-132.334, algorithmic cost ~ 568, 2-norm = 10 @@ -1207,7 +1207,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -132.334, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-132.104, algorithmic cost ~ 1262, 2-norm = 21 @@ -1232,7 +1232,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -132.104, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-134.071, algorithmic cost ~ 3808, 2-norm = 42 @@ -1257,7 +1257,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -134.071, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-133.905, algorithmic cost ~ 70, 2-norm = 1 @@ -1282,7 +1282,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -133.905, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-131.377, algorithmic cost ~ 156, 2-norm = 2 @@ -1307,7 +1307,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -131.377, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-132.381, algorithmic cost ~ 568, 2-norm = 4 @@ -1332,7 +1332,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -132.381, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-128.303, algorithmic cost ~ 1258, 2-norm = 9 @@ -1357,7 +1357,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.303, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-131.11, algorithmic cost ~ 2850, 2-norm = 18 @@ -1382,7 +1382,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -131.11, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-133.395, algorithmic cost ~ 156, 2-norm = 1 @@ -1407,7 +1407,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -133.395, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-128.307, algorithmic cost ~ 357, 2-norm = 2 @@ -1432,7 +1432,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.307, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-128.724, algorithmic cost ~ 1258, 2-norm = 4 @@ -1457,7 +1457,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.724, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-130.689, algorithmic cost ~ 2807, 2-norm = 8 @@ -1482,7 +1482,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -130.689, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-130.261, algorithmic cost ~ 350, 2-norm = 1 @@ -1507,7 +1507,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -130.261, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-128.802, algorithmic cost ~ 1258, 2-norm = 2 @@ -1532,7 +1532,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.802, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-128.179, algorithmic cost ~ 2799, 2-norm = 4 @@ -1557,7 +1557,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.179, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-128.821, algorithmic cost ~ 1258, 2-norm = 1 @@ -1582,7 +1582,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.821, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-129.289, algorithmic cost ~ 2799, 2-norm = 2 @@ -1607,7 +1607,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -129.289, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-128.462, algorithmic cost ~ 2799, 2-norm = 1 @@ -1632,7 +1632,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M128: Multi log2_p_fail: -128.462, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; pub const ALL_MULTI_BIT_PARAMETER_3_VEC: [MultiBitPBSParameters; 28] = [ diff --git a/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_40/ks_pbs.rs b/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_40/ks_pbs.rs index 7bfb5e746f..2b50a9ecbd 100644 --- a/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_40/ks_pbs.rs +++ b/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_40/ks_pbs.rs @@ -20,7 +20,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.132, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.724, algorithmic cost ~ 41, 2-norm = 3 @@ -45,7 +45,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.724, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.179, algorithmic cost ~ 60, 2-norm = 7 @@ -70,7 +70,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.179, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-41.051, algorithmic cost ~ 74, 2-norm = 15 @@ -95,7 +95,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -41.051, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.545, algorithmic cost ~ 261, 2-norm = 31 @@ -120,7 +120,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.545, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.131, algorithmic cost ~ 593, 2-norm = 63 @@ -145,7 +145,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.131, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.063, algorithmic cost ~ 1771, 2-norm = 127 @@ -170,7 +170,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.063, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.892, algorithmic cost ~ 4955, 2-norm = 255 @@ -195,7 +195,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.892, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.616, algorithmic cost ~ 41, 2-norm = 1 @@ -220,7 +220,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.616, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.078, algorithmic cost ~ 60, 2-norm = 2 @@ -245,7 +245,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.078, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.374, algorithmic cost ~ 74, 2-norm = 5 @@ -270,7 +270,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.374, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.607, algorithmic cost ~ 261, 2-norm = 10 @@ -295,7 +295,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.607, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.265, algorithmic cost ~ 592, 2-norm = 21 @@ -320,7 +320,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.265, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.526, algorithmic cost ~ 1330, 2-norm = 42 @@ -345,7 +345,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.526, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.919, algorithmic cost ~ 3972, 2-norm = 85 @@ -370,7 +370,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.919, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.546, algorithmic cost ~ 60, 2-norm = 1 @@ -395,7 +395,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.546, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.72, algorithmic cost ~ 74, 2-norm = 2 @@ -420,7 +420,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.72, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.17, algorithmic cost ~ 168, 2-norm = 4 @@ -445,7 +445,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.17, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.341, algorithmic cost ~ 592, 2-norm = 9 @@ -470,7 +470,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.341, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.766, algorithmic cost ~ 1322, 2-norm = 18 @@ -495,7 +495,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.766, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.712, algorithmic cost ~ 3949, 2-norm = 36 @@ -520,7 +520,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.712, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.769, algorithmic cost ~ 74, 2-norm = 1 @@ -545,7 +545,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.769, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.29, algorithmic cost ~ 167, 2-norm = 2 @@ -570,7 +570,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.29, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.355, algorithmic cost ~ 592, 2-norm = 4 @@ -595,7 +595,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.355, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.126, algorithmic cost ~ 1319, 2-norm = 8 @@ -620,7 +620,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.126, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.039, algorithmic cost ~ 3159, 2-norm = 17 @@ -645,7 +645,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.039, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.937, algorithmic cost ~ 167, 2-norm = 1 @@ -670,7 +670,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.937, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.242, algorithmic cost ~ 397, 2-norm = 2 @@ -695,7 +695,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.242, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.2, algorithmic cost ~ 1319, 2-norm = 4 @@ -720,7 +720,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.2, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.528, algorithmic cost ~ 2968, 2-norm = 8 @@ -745,7 +745,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.528, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.096, algorithmic cost ~ 383, 2-norm = 1 @@ -770,7 +770,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.096, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.259, algorithmic cost ~ 1319, 2-norm = 2 @@ -795,7 +795,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.259, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.865, algorithmic cost ~ 2962, 2-norm = 4 @@ -820,7 +820,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.865, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.277, algorithmic cost ~ 1319, 2-norm = 1 @@ -845,7 +845,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.277, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.017, algorithmic cost ~ 2956, 2-norm = 2 @@ -870,7 +870,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.017, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-40.105, algorithmic cost ~ 2956, 2-norm = 1 @@ -895,7 +895,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.105, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; pub const ALL_MULTI_BIT_PARAMETER_2_VEC: [MultiBitPBSParameters; 36] = [ @@ -957,7 +957,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.217, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.579, algorithmic cost ~ 45, 2-norm = 3 @@ -982,7 +982,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.579, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-41.202, algorithmic cost ~ 62, 2-norm = 7 @@ -1007,7 +1007,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -41.202, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.417, algorithmic cost ~ 71, 2-norm = 15 @@ -1032,7 +1032,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.417, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.01, algorithmic cost ~ 257, 2-norm = 31 @@ -1057,7 +1057,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.01, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.795, algorithmic cost ~ 579, 2-norm = 63 @@ -1082,7 +1082,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.795, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-41.317, algorithmic cost ~ 1745, 2-norm = 127 @@ -1107,7 +1107,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -41.317, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.984, algorithmic cost ~ 4867, 2-norm = 255 @@ -1132,7 +1132,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.984, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.148, algorithmic cost ~ 45, 2-norm = 1 @@ -1157,7 +1157,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.148, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.095, algorithmic cost ~ 61, 2-norm = 2 @@ -1182,7 +1182,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.095, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-41.843, algorithmic cost ~ 71, 2-norm = 5 @@ -1207,7 +1207,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -41.843, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.024, algorithmic cost ~ 257, 2-norm = 10 @@ -1232,7 +1232,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.024, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.592, algorithmic cost ~ 577, 2-norm = 21 @@ -1257,7 +1257,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.592, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.493, algorithmic cost ~ 1282, 2-norm = 42 @@ -1282,7 +1282,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.493, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.803, algorithmic cost ~ 3866, 2-norm = 85 @@ -1307,7 +1307,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.803, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.102, algorithmic cost ~ 61, 2-norm = 1 @@ -1332,7 +1332,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.102, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.843, algorithmic cost ~ 71, 2-norm = 2 @@ -1357,7 +1357,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.843, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.823, algorithmic cost ~ 159, 2-norm = 4 @@ -1382,7 +1382,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.823, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.662, algorithmic cost ~ 577, 2-norm = 9 @@ -1407,7 +1407,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.662, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.76, algorithmic cost ~ 1274, 2-norm = 18 @@ -1432,7 +1432,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.76, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-41.195, algorithmic cost ~ 3843, 2-norm = 36 @@ -1457,7 +1457,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -41.195, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.018, algorithmic cost ~ 70, 2-norm = 1 @@ -1482,7 +1482,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.018, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-41.188, algorithmic cost ~ 158, 2-norm = 2 @@ -1507,7 +1507,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -41.188, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.674, algorithmic cost ~ 577, 2-norm = 4 @@ -1532,7 +1532,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.674, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.382, algorithmic cost ~ 1274, 2-norm = 8 @@ -1557,7 +1557,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.382, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.39, algorithmic cost ~ 3049, 2-norm = 17 @@ -1582,7 +1582,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.39, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.39, algorithmic cost ~ 157, 2-norm = 1 @@ -1607,7 +1607,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.39, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.012, algorithmic cost ~ 365, 2-norm = 2 @@ -1632,7 +1632,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.012, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.496, algorithmic cost ~ 1274, 2-norm = 4 @@ -1657,7 +1657,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.496, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-41.356, algorithmic cost ~ 2841, 2-norm = 8 @@ -1682,7 +1682,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -41.356, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.668, algorithmic cost ~ 358, 2-norm = 1 @@ -1707,7 +1707,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.668, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.124, algorithmic cost ~ 1274, 2-norm = 2 @@ -1732,7 +1732,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.124, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-41.398, algorithmic cost ~ 2833, 2-norm = 4 @@ -1757,7 +1757,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -41.398, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.124, algorithmic cost ~ 1274, 2-norm = 1 @@ -1782,7 +1782,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.124, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.003, algorithmic cost ~ 2824, 2-norm = 2 @@ -1807,7 +1807,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.003, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-40.102, algorithmic cost ~ 2824, 2-norm = 1 @@ -1832,7 +1832,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M40: MultiB log2_p_fail: -40.102, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; pub const ALL_MULTI_BIT_PARAMETER_3_VEC: [MultiBitPBSParameters; 36] = [ diff --git a/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_40/ks_pbs_gpu.rs b/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_40/ks_pbs_gpu.rs index 4af04f062d..c417f41327 100644 --- a/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_40/ks_pbs_gpu.rs +++ b/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_40/ks_pbs_gpu.rs @@ -25,7 +25,7 @@ pub const PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40: log2_p_fail: -40., ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; @@ -50,7 +50,7 @@ pub const PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40: log2_p_fail: -40., ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; @@ -75,7 +75,7 @@ pub const PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40: log2_p_fail: -40., ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; @@ -101,7 +101,7 @@ pub const PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40: log2_p_fail: -40., ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; @@ -126,7 +126,7 @@ pub const PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40: log2_p_fail: -40., ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; @@ -151,6 +151,6 @@ pub const PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40: log2_p_fail: -40., ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; diff --git a/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_64/ks_pbs.rs b/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_64/ks_pbs.rs index b3f4ae1b72..5b06b97883 100644 --- a/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_64/ks_pbs.rs +++ b/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_64/ks_pbs.rs @@ -20,7 +20,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.277, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.218, algorithmic cost ~ 43, 2-norm = 3 @@ -45,7 +45,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.218, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-65.054, algorithmic cost ~ 64, 2-norm = 7 @@ -70,7 +70,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -65.054, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.041, algorithmic cost ~ 80, 2-norm = 15 @@ -95,7 +95,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.041, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.467, algorithmic cost ~ 274, 2-norm = 31 @@ -120,7 +120,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.467, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.391, algorithmic cost ~ 626, 2-norm = 63 @@ -145,7 +145,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.391, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.419, algorithmic cost ~ 1893, 2-norm = 127 @@ -170,7 +170,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.419, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-65.122, algorithmic cost ~ 10855, 2-norm = 255 @@ -195,7 +195,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -65.122, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.149, algorithmic cost ~ 43, 2-norm = 1 @@ -220,7 +220,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.149, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.18, algorithmic cost ~ 64, 2-norm = 2 @@ -245,7 +245,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.18, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.26, algorithmic cost ~ 77, 2-norm = 5 @@ -270,7 +270,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.26, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.214, algorithmic cost ~ 274, 2-norm = 10 @@ -295,7 +295,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.214, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.004, algorithmic cost ~ 621, 2-norm = 21 @@ -320,7 +320,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.004, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.114, algorithmic cost ~ 1882, 2-norm = 42 @@ -345,7 +345,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.114, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.793, algorithmic cost ~ 10638, 2-norm = 85 @@ -370,7 +370,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.793, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.202, algorithmic cost ~ 64, 2-norm = 1 @@ -395,7 +395,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.202, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.29, algorithmic cost ~ 77, 2-norm = 2 @@ -420,7 +420,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.29, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.144, algorithmic cost ~ 189, 2-norm = 4 @@ -445,7 +445,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.144, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.207, algorithmic cost ~ 621, 2-norm = 9 @@ -470,7 +470,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.207, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.021, algorithmic cost ~ 1423, 2-norm = 18 @@ -495,7 +495,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.021, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-65.5, algorithmic cost ~ 8624, 2-norm = 36 @@ -520,7 +520,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -65.5, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.1, algorithmic cost ~ 77, 2-norm = 1 @@ -545,7 +545,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.1, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.054, algorithmic cost ~ 177, 2-norm = 2 @@ -570,7 +570,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.054, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.243, algorithmic cost ~ 621, 2-norm = 4 @@ -595,7 +595,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.243, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.377, algorithmic cost ~ 1414, 2-norm = 8 @@ -620,7 +620,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.377, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-65.747, algorithmic cost ~ 8590, 2-norm = 17 @@ -645,7 +645,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -65.747, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.609, algorithmic cost ~ 176, 2-norm = 1 @@ -670,7 +670,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.609, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.25, algorithmic cost ~ 621, 2-norm = 2 @@ -695,7 +695,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.25, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.153, algorithmic cost ~ 1411, 2-norm = 4 @@ -720,7 +720,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.153, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-66.082, algorithmic cost ~ 6714, 2-norm = 8 @@ -745,7 +745,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -66.082, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.063, algorithmic cost ~ 444, 2-norm = 1 @@ -770,7 +770,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.063, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.231, algorithmic cost ~ 1411, 2-norm = 2 @@ -795,7 +795,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.231, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.956, algorithmic cost ~ 6555, 2-norm = 4 @@ -820,7 +820,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.956, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.25, algorithmic cost ~ 1411, 2-norm = 1 @@ -845,7 +845,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.25, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-65.987, algorithmic cost ~ 6542, 2-norm = 2 @@ -870,7 +870,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -65.987, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-64.33, algorithmic cost ~ 6529, 2-norm = 1 @@ -895,7 +895,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.33, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; pub const ALL_MULTI_BIT_PARAMETER_2_VEC: [MultiBitPBSParameters; 36] = [ @@ -957,7 +957,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -66.257, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.549, algorithmic cost ~ 48, 2-norm = 3 @@ -982,7 +982,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.549, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.513, algorithmic cost ~ 66, 2-norm = 7 @@ -1007,7 +1007,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.513, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.283, algorithmic cost ~ 77, 2-norm = 15 @@ -1032,7 +1032,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.283, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.118, algorithmic cost ~ 270, 2-norm = 31 @@ -1057,7 +1057,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.118, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.107, algorithmic cost ~ 610, 2-norm = 63 @@ -1082,7 +1082,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.107, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.014, algorithmic cost ~ 1861, 2-norm = 127 @@ -1107,7 +1107,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.014, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-65.291, algorithmic cost ~ 10546, 2-norm = 255 @@ -1132,7 +1132,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -65.291, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.106, algorithmic cost ~ 47, 2-norm = 1 @@ -1157,7 +1157,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.106, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.797, algorithmic cost ~ 66, 2-norm = 2 @@ -1182,7 +1182,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.797, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.251, algorithmic cost ~ 74, 2-norm = 5 @@ -1207,7 +1207,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.251, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.157, algorithmic cost ~ 270, 2-norm = 10 @@ -1232,7 +1232,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.157, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.03, algorithmic cost ~ 606, 2-norm = 21 @@ -1257,7 +1257,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.03, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.07, algorithmic cost ~ 1849, 2-norm = 42 @@ -1282,7 +1282,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.07, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.718, algorithmic cost ~ 9928, 2-norm = 85 @@ -1307,7 +1307,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.718, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.816, algorithmic cost ~ 66, 2-norm = 1 @@ -1332,7 +1332,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.816, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-65.135, algorithmic cost ~ 74, 2-norm = 2 @@ -1357,7 +1357,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -65.135, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.28, algorithmic cost ~ 181, 2-norm = 4 @@ -1382,7 +1382,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.28, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.211, algorithmic cost ~ 606, 2-norm = 9 @@ -1407,7 +1407,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.211, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.192, algorithmic cost ~ 1375, 2-norm = 18 @@ -1432,7 +1432,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.192, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-65.329, algorithmic cost ~ 8306, 2-norm = 36 @@ -1457,7 +1457,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -65.329, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-65.341, algorithmic cost ~ 74, 2-norm = 1 @@ -1482,7 +1482,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -65.341, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.358, algorithmic cost ~ 167, 2-norm = 2 @@ -1507,7 +1507,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.358, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.244, algorithmic cost ~ 606, 2-norm = 4 @@ -1532,7 +1532,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.244, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.627, algorithmic cost ~ 1367, 2-norm = 8 @@ -1557,7 +1557,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.627, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-65.946, algorithmic cost ~ 8282, 2-norm = 17 @@ -1582,7 +1582,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -65.946, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.559, algorithmic cost ~ 166, 2-norm = 1 @@ -1607,7 +1607,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.559, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.186, algorithmic cost ~ 606, 2-norm = 2 @@ -1632,7 +1632,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.186, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.152, algorithmic cost ~ 1363, 2-norm = 4 @@ -1657,7 +1657,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.152, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-66.008, algorithmic cost ~ 7667, 2-norm = 8 @@ -1682,7 +1682,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -66.008, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.011, algorithmic cost ~ 396, 2-norm = 1 @@ -1707,7 +1707,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.011, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.231, algorithmic cost ~ 1363, 2-norm = 2 @@ -1732,7 +1732,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.231, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-65.133, algorithmic cost ~ 6230, 2-norm = 4 @@ -1757,7 +1757,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -65.133, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-64.25, algorithmic cost ~ 1363, 2-norm = 1 @@ -1782,7 +1782,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -64.25, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-65.755, algorithmic cost ~ 6212, 2-norm = 2 @@ -1807,7 +1807,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -65.755, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-66.791, algorithmic cost ~ 6212, 2-norm = 1 @@ -1832,7 +1832,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiB log2_p_fail: -66.791, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; pub const ALL_MULTI_BIT_PARAMETER_3_VEC: [MultiBitPBSParameters; 36] = [ diff --git a/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_80/ks_pbs.rs b/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_80/ks_pbs.rs index 94eb6cf4f2..aa98bc569a 100644 --- a/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_80/ks_pbs.rs +++ b/tfhe/src/shortint/parameters/multi_bit/p_fail_2_minus_80/ks_pbs.rs @@ -20,7 +20,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -83.098, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-80.117, algorithmic cost ~ 49, 2-norm = 3 @@ -45,7 +45,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.117, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-80.205, algorithmic cost ~ 67, 2-norm = 7 @@ -70,7 +70,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.205, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-80.068, algorithmic cost ~ 128, 2-norm = 15 @@ -95,7 +95,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.068, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-80.023, algorithmic cost ~ 370, 2-norm = 31 @@ -120,7 +120,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.023, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-82.928, algorithmic cost ~ 1282, 2-norm = 63 @@ -145,7 +145,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -82.928, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-81.631, algorithmic cost ~ 3817, 2-norm = 127 @@ -170,7 +170,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -81.631, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-83.351, algorithmic cost ~ 12869, 2-norm = 255 @@ -195,7 +195,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -83.351, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-80.116, algorithmic cost ~ 46, 2-norm = 1 @@ -220,7 +220,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.116, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-80.268, algorithmic cost ~ 67, 2-norm = 2 @@ -245,7 +245,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.268, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-80.124, algorithmic cost ~ 87, 2-norm = 5 @@ -270,7 +270,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.124, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-80.089, algorithmic cost ~ 370, 2-norm = 10 @@ -295,7 +295,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.089, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-81.395, algorithmic cost ~ 1273, 2-norm = 21 @@ -320,7 +320,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -81.395, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-82.101, algorithmic cost ~ 3802, 2-norm = 42 @@ -345,7 +345,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -82.101, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-82.148, algorithmic cost ~ 10813, 2-norm = 85 @@ -370,7 +370,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -82.148, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-80.303, algorithmic cost ~ 67, 2-norm = 1 @@ -395,7 +395,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.303, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-80.01, algorithmic cost ~ 84, 2-norm = 2 @@ -420,7 +420,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.01, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-80.095, algorithmic cost ~ 370, 2-norm = 4 @@ -445,7 +445,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.095, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-82.288, algorithmic cost ~ 1273, 2-norm = 9 @@ -470,7 +470,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -82.288, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-82.758, algorithmic cost ~ 2835, 2-norm = 18 @@ -495,7 +495,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -82.758, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-81.051, algorithmic cost ~ 8774, 2-norm = 36 @@ -520,7 +520,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -81.051, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-80.002, algorithmic cost ~ 83, 2-norm = 1 @@ -545,7 +545,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.002, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-81.965, algorithmic cost ~ 365, 2-norm = 2 @@ -570,7 +570,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -81.965, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-82.452, algorithmic cost ~ 1273, 2-norm = 4 @@ -595,7 +595,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -82.452, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-80.947, algorithmic cost ~ 2819, 2-norm = 8 @@ -620,7 +620,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.947, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-80.241, algorithmic cost ~ 8692, 2-norm = 17 @@ -645,7 +645,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.241, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-82.824, algorithmic cost ~ 363, 2-norm = 1 @@ -670,7 +670,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -82.824, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-82.482, algorithmic cost ~ 1273, 2-norm = 2 @@ -695,7 +695,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -82.482, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-82.518, algorithmic cost ~ 2819, 2-norm = 4 @@ -720,7 +720,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -82.518, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-80.495, algorithmic cost ~ 8093, 2-norm = 8 @@ -745,7 +745,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.495, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-80.792, algorithmic cost ~ 847, 2-norm = 1 @@ -770,7 +770,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.792, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-82.92, algorithmic cost ~ 2819, 2-norm = 2 @@ -795,7 +795,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -82.92, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-80.141, algorithmic cost ~ 6701, 2-norm = 4 @@ -820,7 +820,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.141, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-83.022, algorithmic cost ~ 2819, 2-norm = 1 @@ -845,7 +845,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -83.022, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-80.607, algorithmic cost ~ 6620, 2-norm = 2 @@ -870,7 +870,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.607, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; // p-fail = 2^-81.936, algorithmic cost ~ 6620, 2-norm = 1 @@ -895,7 +895,7 @@ pub const PARAM_MULTI_BIT_GROUP_2_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -81.936, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(2), + grouping_factor: MultiBitGroupingFactor(2), deterministic_execution: false, }; pub const ALL_MULTI_BIT_PARAMETER_2_VEC: [MultiBitPBSParameters; 36] = [ @@ -957,7 +957,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -85.386, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-80.148, algorithmic cost ~ 53, 2-norm = 3 @@ -982,7 +982,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.148, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-81.45, algorithmic cost ~ 68, 2-norm = 7 @@ -1007,7 +1007,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -81.45, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-80.071, algorithmic cost ~ 128, 2-norm = 15 @@ -1032,7 +1032,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.071, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-80.029, algorithmic cost ~ 366, 2-norm = 31 @@ -1057,7 +1057,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.029, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-84.415, algorithmic cost ~ 1238, 2-norm = 63 @@ -1082,7 +1082,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -84.415, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-81.894, algorithmic cost ~ 3711, 2-norm = 127 @@ -1107,7 +1107,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -81.894, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-80.42, algorithmic cost ~ 12591, 2-norm = 255 @@ -1132,7 +1132,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.42, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-80.18, algorithmic cost ~ 50, 2-norm = 1 @@ -1157,7 +1157,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.18, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-80.372, algorithmic cost ~ 68, 2-norm = 2 @@ -1182,7 +1182,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.372, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-80.11, algorithmic cost ~ 83, 2-norm = 5 @@ -1207,7 +1207,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.11, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-80.022, algorithmic cost ~ 366, 2-norm = 10 @@ -1232,7 +1232,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.022, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-83.297, algorithmic cost ~ 1230, 2-norm = 21 @@ -1257,7 +1257,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -83.297, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-80.023, algorithmic cost ~ 3689, 2-norm = 42 @@ -1282,7 +1282,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.023, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-82.073, algorithmic cost ~ 10515, 2-norm = 85 @@ -1307,7 +1307,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -82.073, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-80.422, algorithmic cost ~ 68, 2-norm = 1 @@ -1332,7 +1332,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.422, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-80.088, algorithmic cost ~ 80, 2-norm = 2 @@ -1357,7 +1357,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.088, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-80.265, algorithmic cost ~ 357, 2-norm = 4 @@ -1382,7 +1382,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.265, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-84.242, algorithmic cost ~ 1230, 2-norm = 9 @@ -1407,7 +1407,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -84.242, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-84.532, algorithmic cost ~ 2709, 2-norm = 18 @@ -1432,7 +1432,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -84.532, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-82.458, algorithmic cost ~ 8464, 2-norm = 36 @@ -1457,7 +1457,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -82.458, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-80.001, algorithmic cost ~ 80, 2-norm = 1 @@ -1482,7 +1482,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.001, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-83.421, algorithmic cost ~ 341, 2-norm = 2 @@ -1507,7 +1507,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -83.421, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-84.415, algorithmic cost ~ 1230, 2-norm = 4 @@ -1532,7 +1532,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -84.415, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-84.502, algorithmic cost ~ 2693, 2-norm = 8 @@ -1557,7 +1557,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -84.502, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-83.569, algorithmic cost ~ 8439, 2-norm = 17 @@ -1582,7 +1582,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -83.569, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-81.759, algorithmic cost ~ 338, 2-norm = 1 @@ -1607,7 +1607,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -81.759, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-84.447, algorithmic cost ~ 1230, 2-norm = 2 @@ -1632,7 +1632,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -84.447, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-80.501, algorithmic cost ~ 2685, 2-norm = 4 @@ -1657,7 +1657,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.501, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-85.096, algorithmic cost ~ 8439, 2-norm = 8 @@ -1682,7 +1682,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -85.096, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-80.455, algorithmic cost ~ 779, 2-norm = 1 @@ -1707,7 +1707,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.455, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-80.928, algorithmic cost ~ 2685, 2-norm = 2 @@ -1732,7 +1732,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -80.928, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-82.14, algorithmic cost ~ 6382, 2-norm = 4 @@ -1757,7 +1757,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -82.14, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-81.036, algorithmic cost ~ 2685, 2-norm = 1 @@ -1782,7 +1782,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -81.036, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-83.255, algorithmic cost ~ 6363, 2-norm = 2 @@ -1807,7 +1807,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -83.255, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; // p-fail = 2^-84.958, algorithmic cost ~ 6363, 2-norm = 1 @@ -1832,7 +1832,7 @@ pub const PARAM_MULTI_BIT_GROUP_3_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M80: MultiB log2_p_fail: -84.958, ciphertext_modulus: CiphertextModulus::new_native(), encryption_key_choice: EncryptionKeyChoice::Big, - grouping_factor: LweBskGroupingFactor(3), + grouping_factor: MultiBitGroupingFactor(3), deterministic_execution: false, }; pub const ALL_MULTI_BIT_PARAMETER_3_VEC: [MultiBitPBSParameters; 36] = [