refactor(core): rename LweBskGroupingFactor MultiBitGroupingFactor

This commit is contained in:
Mayeul@Zama
2024-05-02 15:37:19 +02:00
parent 918043fafa
commit 351428aeff
41 changed files with 426 additions and 423 deletions

View File

@@ -24,7 +24,7 @@ fn get_bench_params<Scalar: Numeric>() -> (
DecompositionLevelCount,
GlweDimension,
PolynomialSize,
LweBskGroupingFactor,
MultiBitGroupingFactor,
ThreadCount,
) {
if Scalar::BITS == 64 {
@@ -35,7 +35,7 @@ fn get_bench_params<Scalar: Numeric>() -> (
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<Scalar: Numeric>() -> (
DecompositionLevelCount(1),
GlweDimension(3),
PolynomialSize(512),
LweBskGroupingFactor(2),
MultiBitGroupingFactor(2),
ThreadCount(5),
)
} else {

View File

@@ -104,8 +104,11 @@ fn throughput_benchmark_parameters<Scalar: UnsignedInteger>(
}
}
fn multi_bit_benchmark_parameters<Scalar: UnsignedInteger + Default>(
) -> Vec<(String, CryptoParametersRecord<Scalar>, LweBskGroupingFactor)> {
fn multi_bit_benchmark_parameters<Scalar: UnsignedInteger + Default>() -> Vec<(
String,
CryptoParametersRecord<Scalar>,
MultiBitGroupingFactor,
)> {
if Scalar::BITS == 64 {
let parameters = if cfg!(feature = "gpu") {
vec![

View File

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

View File

@@ -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
@@ -182,7 +182,7 @@ pub fn allocate_and_generate_new_lwe_multi_bit_bootstrap_key<
output_glwe_secret_key: &GlweSecretKey<OutputKeyCont>,
decomp_base_log: DecompositionBaseLog,
decomp_level_count: DecompositionLevelCount,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
noise_distribution: NoiseDistribution,
ciphertext_modulus: CiphertextModulus<Scalar>,
generator: &mut EncryptionRandomGenerator<Gen>,
@@ -232,7 +232,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
@@ -436,7 +436,7 @@ pub fn par_allocate_and_generate_new_lwe_multi_bit_bootstrap_key<
output_glwe_secret_key: &GlweSecretKey<OutputKeyCont>,
decomp_base_log: DecompositionBaseLog,
decomp_level_count: DecompositionLevelCount,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
noise_distribution: NoiseDistribution,
ciphertext_modulus: CiphertextModulus<Scalar>,
generator: &mut EncryptionRandomGenerator<Gen>,
@@ -612,7 +612,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<Scalar>,
noise_seeder: &mut NoiseSeeder,
) -> SeededLweMultiBitBootstrapKeyOwned<Scalar>
@@ -766,7 +766,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<Scalar>,
noise_seeder: &mut NoiseSeeder,
) -> SeededLweMultiBitBootstrapKeyOwned<Scalar>

View File

@@ -22,7 +22,7 @@ pub use super::lwe_programmable_bootstrapping::generate_programmable_bootstrap_g
pub fn modulus_switch_multi_bit<Scalar>(
ciphertext_modulus_log: CiphertextModulusLog,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
lwe_mask_elements: &[Scalar],
) -> impl Iterator<Item = usize> + '_
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<Item = usize> {
debug_assert!(power_set_index < grouping_factor.multi_bit_power_set_size().0);
@@ -72,7 +72,7 @@ pub struct StandardMultiBitModulusSwitchedCt<
C: Container<Element = Scalar> + Sync,
> {
pub input: &'a LweCiphertext<C>,
pub grouping_factor: LweBskGroupingFactor,
pub grouping_factor: MultiBitGroupingFactor,
pub log_modulus: CiphertextModulusLog,
}
@@ -165,7 +165,7 @@ pub fn prepare_multi_bit_ggsw_mem_optimized<GgswBufferCont, GgswGroupCont, Fouri
/// 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
@@ -843,7 +843,7 @@ pub fn multi_bit_deterministic_blind_rotate_assign<Scalar, OutputCont, KeyCont>(
/// 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

View File

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

View File

@@ -192,7 +192,7 @@ pub const MULTI_BIT_2_2_2_PARAMS: MultiBitTestParams<u64> = 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<u64> = 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<u64> = 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<u64> = 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<u64> = 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<u64> = MultiBitT
)),
message_modulus_log: MessageModulusLog(3),
ciphertext_modulus: CiphertextModulus::new(1 << 63),
grouping_factor: LweBskGroupingFactor(3),
grouping_factor: MultiBitGroupingFactor(3),
thread_count: ThreadCount(12),
};

View File

@@ -79,7 +79,7 @@ fn assert_ms_compression<Scalar: UnsignedTorus + CastInto<usize> + CastFrom<usiz
fn assert_ms_multi_bit_compression<Scalar: UnsignedTorus + CastInto<usize> + CastFrom<usize>>(
ct: &LweCiphertext<Vec<Scalar>>,
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,

View File

@@ -75,7 +75,7 @@ pub struct MultiBitTestParams<Scalar: UnsignedInteger> {
pub glwe_noise_distribution: DynamicDistribution<Scalar>,
pub message_modulus_log: MessageModulusLog,
pub ciphertext_modulus: CiphertextModulus<Scalar>,
pub grouping_factor: LweBskGroupingFactor,
pub grouping_factor: MultiBitGroupingFactor,
pub thread_count: ThreadCount,
}

View File

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

View File

@@ -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<PackedIntegers<usize>>,
lwe_dimension: LweDimension,
uncompressed_ciphertext_modulus: CiphertextModulus<Scalar>,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
}
impl<Scalar: UnsignedInteger + CastInto<usize> + CastFrom<usize>>
@@ -183,7 +183,7 @@ impl<Scalar: UnsignedInteger + CastInto<usize> + CastFrom<usize>>
pub fn compress<Cont: Container<Element = Scalar>>(
ct: &LweCiphertext<Cont>,
log_modulus: CiphertextModulusLog,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) -> Self {
let uncompressed_ciphertext_modulus = ct.ciphertext_modulus();
@@ -372,7 +372,7 @@ impl<Scalar: UnsignedInteger + CastInto<usize> + CastFrom<usize>>
pub struct FromCompressionMultiBitModulusSwitchedCt {
switched_modulus_input_lwe_body: usize,
switched_modulus_input_mask_per_group: Vec<usize>,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
lwe_dimension: LweDimension,
}

View File

@@ -726,7 +726,7 @@ pub struct LweCiphertextParameters<T: UnsignedInteger> {
#[derive(Copy, Clone)]
pub enum MsDecompressionType {
ClassicPbs,
MultiBitPbs(LweBskGroupingFactor),
MultiBitPbs(MultiBitGroupingFactor),
}
impl<C: Container> ParameterSetConformant for LweCiphertext<C>

View File

@@ -18,7 +18,7 @@ where
// GgswCiphertextList and use Deref to have access to all the primitives of the
// GgswCiphertextList easily
ggsw_list: GgswCiphertextList<C>,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
}
impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> std::ops::Deref
@@ -44,7 +44,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<usize, &'static str> {
if input_lwe_dimension.0 % grouping_factor.0 != 0 {
return Err("lwe_multi_bit_bootstrap_key_size error: \
@@ -68,7 +68,7 @@ pub fn lwe_multi_bit_bootstrap_key_fork_config<Scalar, MaskDistribution, NoiseDi
glwe_size: GlweSize,
polynomial_size: PolynomialSize,
decomposition_level_count: DecompositionLevelCount,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
mask_distribution: MaskDistribution,
noise_distribution: NoiseDistribution,
ciphertext_modulus: CiphertextModulus<Scalar>,
@@ -130,7 +130,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> 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
@@ -205,7 +205,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> LweMultiBitBootstr
polynomial_size: PolynomialSize,
decomp_base_log: DecompositionBaseLog,
decomp_level_count: DecompositionLevelCount,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
ciphertext_modulus: CiphertextModulus<C::Element>,
) -> Self {
let bsk = Self {
@@ -257,10 +257,10 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> 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
}
@@ -353,7 +353,7 @@ impl<Scalar: UnsignedInteger> LweMultiBitBootstrapKeyOwned<Scalar> {
decomp_base_log: DecompositionBaseLog,
decomp_level_count: DecompositionLevelCount,
input_lwe_dimension: LweDimension,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
ciphertext_modulus: CiphertextModulus<Scalar>,
) -> Self {
assert!(
@@ -389,7 +389,7 @@ pub struct FourierLweMultiBitBootstrapKey<C: Container<Element = c64>> {
glwe_size: GlweSize,
decomposition_base_log: DecompositionBaseLog,
decomposition_level_count: DecompositionLevelCount,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
}
pub type FourierLweMultiBitBootstrapKeyOwned = FourierLweMultiBitBootstrapKey<ABox<[c64]>>;
@@ -404,7 +404,7 @@ impl<C: Container<Element = c64>> FourierLweMultiBitBootstrapKey<C> {
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,
@@ -485,7 +485,7 @@ impl<C: Container<Element = c64>> FourierLweMultiBitBootstrapKey<C> {
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
}
@@ -549,7 +549,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,

View File

@@ -26,7 +26,7 @@ where
// GgswCiphertextList and use Deref to have access to all the primitives of the
// SeededGgswCiphertextList easily
ggsw_list: SeededGgswCiphertextList<C>,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
}
impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> std::ops::Deref
@@ -72,7 +72,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> 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
@@ -177,7 +177,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> SeededLweMultiBitB
decomp_base_log: DecompositionBaseLog,
decomp_level_count: DecompositionLevelCount,
compression_seed: CompressionSeed,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
ciphertext_modulus: CiphertextModulus<C::Element>,
) -> Self {
assert!(
@@ -236,10 +236,10 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> 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
}
@@ -412,7 +412,7 @@ impl<Scalar: UnsignedInteger> SeededLweMultiBitBootstrapKeyOwned<Scalar> {
decomp_base_log: DecompositionBaseLog,
decomp_level_count: DecompositionLevelCount,
input_lwe_dimension: LweDimension,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
compression_seed: CompressionSeed,
ciphertext_modulus: CiphertextModulus<Scalar>,
) -> Self {

View File

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

View File

@@ -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<T: UnsignedInteger>(
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<T: Unsigned
glwe_dim: GlweDimension,
l_gadget: DecompositionLevelCount,
polynomial_size: PolynomialSize,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
let size = std::mem::size_of_val(src);
assert_eq!(dest.len() * std::mem::size_of::<T>(), size);

View File

@@ -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<T: UnsignedInteger, B:
num_blocks: u32,
num_scalars: u32,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -327,7 +327,7 @@ pub unsafe fn unchecked_mul_integer_radix_kb_assign_async<T: UnsignedInteger, B:
ks_level: DecompositionLevelCount,
num_blocks: u32,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -413,7 +413,7 @@ pub unsafe fn unchecked_bitop_integer_radix_kb_assign_async<T: UnsignedInteger,
op: BitOpType,
num_blocks: u32,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -497,7 +497,7 @@ pub unsafe fn unchecked_bitnot_integer_radix_kb_assign_async<T: UnsignedInteger,
pbs_base_log: DecompositionBaseLog,
num_blocks: u32,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -580,7 +580,7 @@ pub unsafe fn unchecked_scalar_bitop_integer_radix_kb_assign_async<
op: BitOpType,
num_blocks: u32,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -670,7 +670,7 @@ pub unsafe fn unchecked_comparison_integer_radix_kb_async<T: UnsignedInteger, B:
op: ComparisonType,
is_signed: bool,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -767,7 +767,7 @@ pub unsafe fn unchecked_scalar_comparison_integer_radix_kb_async<T: UnsignedInte
op: ComparisonType,
signed_with_positive_scalar: bool,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -859,7 +859,7 @@ pub unsafe fn full_propagate_assign_async<T: UnsignedInteger, B: Numeric>(
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<T: UnsignedInteger, B: Numeric
message_modulus: MessageModulus,
carry_modulus: CarryModulus,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -1019,7 +1019,7 @@ pub unsafe fn unchecked_scalar_left_shift_integer_radix_kb_assign_async<
pbs_base_log: DecompositionBaseLog,
num_blocks: u32,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -1101,7 +1101,7 @@ pub unsafe fn unchecked_scalar_logical_right_shift_integer_radix_kb_assign_async
pbs_base_log: DecompositionBaseLog,
num_blocks: u32,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -1183,7 +1183,7 @@ pub unsafe fn unchecked_scalar_arithmetic_right_shift_integer_radix_kb_assign_as
pbs_base_log: DecompositionBaseLog,
num_blocks: u32,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -1266,7 +1266,7 @@ pub unsafe fn unchecked_right_shift_integer_radix_kb_assign_async<
num_blocks: u32,
is_signed: bool,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -1352,7 +1352,7 @@ pub unsafe fn unchecked_left_shift_integer_radix_kb_assign_async<T: UnsignedInte
num_blocks: u32,
is_signed: bool,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -1441,7 +1441,7 @@ pub unsafe fn unchecked_rotate_right_integer_radix_kb_assign_async<
num_blocks: u32,
is_signed: bool,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -1530,7 +1530,7 @@ pub unsafe fn unchecked_rotate_left_integer_radix_kb_assign_async<
num_blocks: u32,
is_signed: bool,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -1617,7 +1617,7 @@ pub unsafe fn unchecked_cmux_integer_radix_kb_async<T: UnsignedInteger, B: Numer
pbs_base_log: DecompositionBaseLog,
num_blocks: u32,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -1715,7 +1715,7 @@ pub unsafe fn unchecked_scalar_rotate_left_integer_radix_kb_assign_async<
pbs_base_log: DecompositionBaseLog,
num_blocks: u32,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -1797,7 +1797,7 @@ pub unsafe fn unchecked_scalar_rotate_right_integer_radix_kb_assign_async<
pbs_base_log: DecompositionBaseLog,
num_blocks: u32,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -1879,7 +1879,7 @@ pub unsafe fn unchecked_sum_ciphertexts_integer_radix_kb_assign_async<
num_blocks: u32,
num_radixes: u32,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -1968,7 +1968,7 @@ pub unsafe fn unchecked_unsigned_overflowing_sub_integer_radix_kb_assign_async<
pbs_base_log: DecompositionBaseLog,
num_blocks: u32,
pbs_type: PBSType,
grouping_factor: LweBskGroupingFactor,
grouping_factor: MultiBitGroupingFactor,
) {
assert_eq!(
streams.gpu_indexes[0],
@@ -2063,7 +2063,7 @@ pub unsafe fn apply_univariate_lut_kb_async<T: UnsignedInteger, B: Numeric>(
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(

View File

@@ -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) => {

View File

@@ -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) => {

View File

@@ -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) => {

View File

@@ -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, LweCiphertextCount, MultiBitGroupingFactor};
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) => {

View File

@@ -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) => {

View File

@@ -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) => {

View File

@@ -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) => {

View File

@@ -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) => {

View File

@@ -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) => {

View File

@@ -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, LweCiphertextCount, MultiBitGroupingFactor};
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) => {

View File

@@ -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) => {

View File

@@ -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) => {

View File

@@ -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) => {

View File

@@ -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) => {

View File

@@ -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, LweCiphertextCount, MultiBitGroupingFactor};
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) => {

View File

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

View File

@@ -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,
};

View File

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

View File

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

View File

@@ -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] = [

View File

@@ -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] = [

View File

@@ -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,
};

View File

@@ -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] = [

View File

@@ -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] = [