diff --git a/apps/trivium/README.md b/apps/trivium/README.md index 48da70197..720f57ff1 100644 --- a/apps/trivium/README.md +++ b/apps/trivium/README.md @@ -129,7 +129,7 @@ Other sizes than 64 bit are expected to be available in the future. # FHE shortint Trivium implementation -The same implementation is also available for generic Ciphertexts representing bits (meant to be used with parameters `V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128`). +The same implementation is also available for generic Ciphertexts representing bits (meant to be used with parameters `V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128`). It uses a lower level API of tfhe-rs, so the syntax is a little bit different. It also implements the `TransCiphering` trait. For optimization purposes, it does not internally run on the same cryptographic parameters as the high level API of tfhe-rs. As such, it requires the usage of a casting key, to switch from one parameter space to another, which makes its setup a little more intricate. @@ -138,9 +138,9 @@ Example code: ```rust use tfhe::shortint::prelude::*; use tfhe::shortint::parameters::current_params::{ - V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, }; use tfhe::{ConfigBuilder, generate_keys, FheUint64}; use tfhe::prelude::*; @@ -148,17 +148,17 @@ use tfhe_trivium::TriviumStreamShortint; fn test_shortint() { let config = ConfigBuilder::default() - .use_custom_parameters(V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) + .use_custom_parameters(V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) .build(); let (hl_client_key, hl_server_key) = generate_keys(config); let underlying_ck: tfhe::shortint::ClientKey = (*hl_client_key.as_ref()).clone().into(); let underlying_sk: tfhe::shortint::ServerKey = (*hl_server_key.as_ref()).clone().into(); - let (client_key, server_key): (ClientKey, ServerKey) = gen_keys(V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); + let (client_key, server_key): (ClientKey, ServerKey) = gen_keys(V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); let ksk = KeySwitchingKey::new( (&client_key, Some(&server_key)), (&underlying_ck, &underlying_sk), - V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128_2M128, + V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128_2M128, ); let key_string = "0053A6F94C9FF24598EB".to_string(); diff --git a/apps/trivium/benches/kreyvium_shortint.rs b/apps/trivium/benches/kreyvium_shortint.rs index eda7216ec..66edf9e12 100644 --- a/apps/trivium/benches/kreyvium_shortint.rs +++ b/apps/trivium/benches/kreyvium_shortint.rs @@ -1,9 +1,9 @@ use criterion::Criterion; use tfhe::prelude::*; use tfhe::shortint::parameters::current_params::{ - V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, }; use tfhe::shortint::prelude::*; use tfhe::{generate_keys, ConfigBuilder, FheUint64}; @@ -11,19 +11,19 @@ use tfhe_trivium::{KreyviumStreamShortint, TransCiphering}; pub fn kreyvium_shortint_warmup(c: &mut Criterion) { let config = ConfigBuilder::default() - .use_custom_parameters(V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) + .use_custom_parameters(V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) .build(); let (hl_client_key, hl_server_key) = generate_keys(config); let underlying_ck: tfhe::shortint::ClientKey = (*hl_client_key.as_ref()).clone().into(); let underlying_sk: tfhe::shortint::ServerKey = (*hl_server_key.as_ref()).clone().into(); let (client_key, server_key): (ClientKey, ServerKey) = - gen_keys(V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); + gen_keys(V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); let ksk = KeySwitchingKey::new( (&client_key, Some(&server_key)), (&underlying_ck, &underlying_sk), - V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, ); let key_string = "0053A6F94C9FF24598EB000000000000".to_string(); @@ -64,19 +64,19 @@ pub fn kreyvium_shortint_warmup(c: &mut Criterion) { pub fn kreyvium_shortint_gen(c: &mut Criterion) { let config = ConfigBuilder::default() - .use_custom_parameters(V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) + .use_custom_parameters(V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) .build(); let (hl_client_key, hl_server_key) = generate_keys(config); let underlying_ck: tfhe::shortint::ClientKey = (*hl_client_key.as_ref()).clone().into(); let underlying_sk: tfhe::shortint::ServerKey = (*hl_server_key.as_ref()).clone().into(); let (client_key, server_key): (ClientKey, ServerKey) = - gen_keys(V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); + gen_keys(V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); let ksk = KeySwitchingKey::new( (&client_key, Some(&server_key)), (&underlying_ck, &underlying_sk), - V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, ); let key_string = "0053A6F94C9FF24598EB000000000000".to_string(); @@ -112,19 +112,19 @@ pub fn kreyvium_shortint_gen(c: &mut Criterion) { pub fn kreyvium_shortint_trans(c: &mut Criterion) { let config = ConfigBuilder::default() - .use_custom_parameters(V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) + .use_custom_parameters(V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) .build(); let (hl_client_key, hl_server_key) = generate_keys(config); let underlying_ck: tfhe::shortint::ClientKey = (*hl_client_key.as_ref()).clone().into(); let underlying_sk: tfhe::shortint::ServerKey = (*hl_server_key.as_ref()).clone().into(); let (client_key, server_key): (ClientKey, ServerKey) = - gen_keys(V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); + gen_keys(V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); let ksk = KeySwitchingKey::new( (&client_key, Some(&server_key)), (&underlying_ck, &underlying_sk), - V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, ); let key_string = "0053A6F94C9FF24598EB000000000000".to_string(); diff --git a/apps/trivium/benches/trivium_shortint.rs b/apps/trivium/benches/trivium_shortint.rs index 4915387d7..bb991d207 100644 --- a/apps/trivium/benches/trivium_shortint.rs +++ b/apps/trivium/benches/trivium_shortint.rs @@ -1,9 +1,9 @@ use criterion::Criterion; use tfhe::prelude::*; use tfhe::shortint::parameters::current_params::{ - V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, }; use tfhe::shortint::prelude::*; use tfhe::{generate_keys, ConfigBuilder, FheUint64}; @@ -11,19 +11,19 @@ use tfhe_trivium::{TransCiphering, TriviumStreamShortint}; pub fn trivium_shortint_warmup(c: &mut Criterion) { let config = ConfigBuilder::default() - .use_custom_parameters(V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) + .use_custom_parameters(V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) .build(); let (hl_client_key, hl_server_key) = generate_keys(config); let underlying_ck: tfhe::shortint::ClientKey = (*hl_client_key.as_ref()).clone().into(); let underlying_sk: tfhe::shortint::ServerKey = (*hl_server_key.as_ref()).clone().into(); let (client_key, server_key): (ClientKey, ServerKey) = - gen_keys(V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); + gen_keys(V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); let ksk = KeySwitchingKey::new( (&client_key, Some(&server_key)), (&underlying_ck, &underlying_sk), - V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, ); let key_string = "0053A6F94C9FF24598EB".to_string(); @@ -64,19 +64,19 @@ pub fn trivium_shortint_warmup(c: &mut Criterion) { pub fn trivium_shortint_gen(c: &mut Criterion) { let config = ConfigBuilder::default() - .use_custom_parameters(V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) + .use_custom_parameters(V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) .build(); let (hl_client_key, hl_server_key) = generate_keys(config); let underlying_ck: tfhe::shortint::ClientKey = (*hl_client_key.as_ref()).clone().into(); let underlying_sk: tfhe::shortint::ServerKey = (*hl_server_key.as_ref()).clone().into(); let (client_key, server_key): (ClientKey, ServerKey) = - gen_keys(V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); + gen_keys(V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); let ksk = KeySwitchingKey::new( (&client_key, Some(&server_key)), (&underlying_ck, &underlying_sk), - V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, ); let key_string = "0053A6F94C9FF24598EB".to_string(); @@ -112,19 +112,19 @@ pub fn trivium_shortint_gen(c: &mut Criterion) { pub fn trivium_shortint_trans(c: &mut Criterion) { let config = ConfigBuilder::default() - .use_custom_parameters(V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) + .use_custom_parameters(V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) .build(); let (hl_client_key, hl_server_key) = generate_keys(config); let underlying_ck: tfhe::shortint::ClientKey = (*hl_client_key.as_ref()).clone().into(); let underlying_sk: tfhe::shortint::ServerKey = (*hl_server_key.as_ref()).clone().into(); let (client_key, server_key): (ClientKey, ServerKey) = - gen_keys(V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); + gen_keys(V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); let ksk = KeySwitchingKey::new( (&client_key, Some(&server_key)), (&underlying_ck, &underlying_sk), - V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, ); let key_string = "0053A6F94C9FF24598EB".to_string(); diff --git a/apps/trivium/src/kreyvium/test.rs b/apps/trivium/src/kreyvium/test.rs index 5241e2e73..d3c4a4a6f 100644 --- a/apps/trivium/src/kreyvium/test.rs +++ b/apps/trivium/src/kreyvium/test.rs @@ -1,9 +1,9 @@ use crate::{KreyviumStream, KreyviumStreamByte, KreyviumStreamShortint, TransCiphering}; use tfhe::prelude::*; use tfhe::shortint::parameters::current_params::{ - V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, }; use tfhe::{generate_keys, ConfigBuilder, FheBool, FheUint64, FheUint8}; // Values for these tests come from the github repo renaud1239/Kreyvium, @@ -221,19 +221,19 @@ use tfhe::shortint::prelude::*; #[test] fn kreyvium_test_shortint_long() { let config = ConfigBuilder::default() - .use_custom_parameters(V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) + .use_custom_parameters(V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) .build(); let (hl_client_key, hl_server_key) = generate_keys(config); let underlying_ck: tfhe::shortint::ClientKey = (*hl_client_key.as_ref()).clone().into(); let underlying_sk: tfhe::shortint::ServerKey = (*hl_server_key.as_ref()).clone().into(); let (client_key, server_key): (ClientKey, ServerKey) = - gen_keys(V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); + gen_keys(V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); let ksk = KeySwitchingKey::new( (&client_key, Some(&server_key)), (&underlying_ck, &underlying_sk), - V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, ); let key_string = "0053A6F94C9FF24598EB000000000000".to_string(); diff --git a/apps/trivium/src/trivium/test.rs b/apps/trivium/src/trivium/test.rs index 191fd160d..8c19dc8f4 100644 --- a/apps/trivium/src/trivium/test.rs +++ b/apps/trivium/src/trivium/test.rs @@ -1,9 +1,9 @@ use crate::{TransCiphering, TriviumStream, TriviumStreamByte, TriviumStreamShortint}; use tfhe::prelude::*; use tfhe::shortint::parameters::current_params::{ - V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, }; use tfhe::{generate_keys, ConfigBuilder, FheBool, FheUint64, FheUint8}; // Values for these tests come from the github repo cantora/avr-crypto-lib, commit 2a5b018, @@ -357,19 +357,19 @@ use tfhe::shortint::prelude::*; #[test] fn trivium_test_shortint_long() { let config = ConfigBuilder::default() - .use_custom_parameters(V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) + .use_custom_parameters(V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) .build(); let (hl_client_key, hl_server_key) = generate_keys(config); let underlying_ck: tfhe::shortint::ClientKey = (*hl_client_key.as_ref()).clone().into(); let underlying_sk: tfhe::shortint::ServerKey = (*hl_server_key.as_ref()).clone().into(); let (client_key, server_key): (ClientKey, ServerKey) = - gen_keys(V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); + gen_keys(V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); let ksk = KeySwitchingKey::new( (&client_key, Some(&server_key)), (&underlying_ck, &underlying_sk), - V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, ); let key_string = "0053A6F94C9FF24598EB".to_string(); diff --git a/tfhe-benchmark/src/params.rs b/tfhe-benchmark/src/params.rs index 7621a89cb..1feb955cd 100644 --- a/tfhe-benchmark/src/params.rs +++ b/tfhe-benchmark/src/params.rs @@ -400,11 +400,11 @@ pub mod shortint_params { pub fn get_classical_tuniform_groups() -> Vec { vec![ // Most complete 2_2 parameters set - V1_4_META_PARAM_CPU_2_2_KS_PBS_PKE_TO_SMALL_ZKV2_TUNIFORM_2M128, - V1_4_META_PARAM_CPU_2_2_KS32_PBS_PKE_TO_SMALL_ZKV2_TUNIFORM_2M128, - V1_4_META_PARAM_CPU_1_1_KS_PBS_TUNIFORM_2M128, - V1_4_META_PARAM_CPU_3_3_KS_PBS_TUNIFORM_2M128, - V1_4_META_PARAM_CPU_4_4_KS_PBS_TUNIFORM_2M128, + V1_5_META_PARAM_CPU_2_2_KS_PBS_PKE_TO_SMALL_ZKV2_TUNIFORM_2M128, + V1_5_META_PARAM_CPU_2_2_KS32_PBS_PKE_TO_SMALL_ZKV2_TUNIFORM_2M128, + V1_5_META_PARAM_CPU_1_1_KS_PBS_TUNIFORM_2M128, + V1_5_META_PARAM_CPU_3_3_KS_PBS_TUNIFORM_2M128, + V1_5_META_PARAM_CPU_4_4_KS_PBS_TUNIFORM_2M128, ] } @@ -413,37 +413,37 @@ pub mod shortint_params { vec![ // Group 2 // CPU --- - V1_4_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128, - V1_4_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128, - V1_4_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128, - V1_4_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128, + V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128, + V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128, + V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128, + V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128, // GPU --- - V1_4_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128, - V1_4_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128, - V1_4_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128, - V1_4_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128, + V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128, + V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128, + V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128, + V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128, // Group 3 // CPU --- - V1_4_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128, - V1_4_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128, - V1_4_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128, - V1_4_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128, + V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128, + V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128, + V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128, + V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128, // GPU --- - V1_4_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128, - V1_4_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128, - V1_4_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128, - V1_4_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128, + V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128, + V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128, + V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128, + V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128, // Group 4 // CPU --- - V1_4_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128, - V1_4_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128, - V1_4_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128, - V1_4_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128, + V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128, + V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128, + V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128, + V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128, // GPU --- - V1_4_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128, - V1_4_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128, - V1_4_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128, - V1_4_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128, + V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128, + V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128, + V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128, + V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128, ] } } diff --git a/tfhe-benchmark/src/params_aliases.rs b/tfhe-benchmark/src/params_aliases.rs index 7dd518243..f261788c7 100644 --- a/tfhe-benchmark/src/params_aliases.rs +++ b/tfhe-benchmark/src/params_aliases.rs @@ -10,25 +10,25 @@ pub mod shortint_params_aliases { }; // KS PBS Gaussian pub const BENCH_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; pub const BENCH_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; pub const BENCH_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; pub const BENCH_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128; // KS PBS TUniform pub const BENCH_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_MESSAGE_2_CARRY_2_KS_PBS: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const BENCH_ALL_CLASSIC_PBS_PARAMETERS: [(&ClassicPBSParameters, &str); 140] = VEC_ALL_CLASSIC_PBS_PARAMETERS; @@ -37,116 +37,116 @@ pub mod shortint_params_aliases { // CPU Gaussian pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; // CPU TUniform // --- Grouping factor 2 pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; // --- Grouping factor 3 pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; // --- Grouping factor 4 pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; // GPU Gaussian // --- Grouping factor 4 pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; // GPU TUniform // --- Grouping factor 2 pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; // --- Grouping factor 3 pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; // --- Grouping factor 4 pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; pub const BENCH_ALL_MULTI_BIT_PBS_PARAMETERS: [(&MultiBitPBSParameters, &str); 240] = VEC_ALL_MULTI_BIT_PBS_PARAMETERS; @@ -154,88 +154,88 @@ pub mod shortint_params_aliases { // PKE pub const BENCH_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: CompactPublicKeyEncryptionParameters = - V1_4_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1: CompactPublicKeyEncryptionParameters = - V1_4_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1; + V1_5_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1; // KS pub const BENCH_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ShortintKeySwitchingParameters = - V1_4_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128: ShortintKeySwitchingParameters = - V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128; pub const BENCH_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ShortintKeySwitchingParameters = - V1_4_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const BENCH_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ShortintKeySwitchingParameters = - V1_4_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; // ZKV1 pub const BENCH_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1: CompactPublicKeyEncryptionParameters = - V1_4_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1; + V1_5_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1; pub const BENCH_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1: ShortintKeySwitchingParameters = - V1_4_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1; + V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1; pub const BENCH_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1: ShortintKeySwitchingParameters = - V1_4_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1; + V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1; // ZKV2 pub const BENCH_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2: CompactPublicKeyEncryptionParameters = - V1_4_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2; + V1_5_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2; pub const BENCH_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2: ShortintKeySwitchingParameters = - V1_4_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2; + V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2; pub const BENCH_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2: ShortintKeySwitchingParameters = - V1_4_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2; + V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2; // Compression pub const BENCH_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: CompressionParameters = - V1_4_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const BENCH_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: CompressionParameters = - V1_4_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; // Noise Squashing pub const BENCH_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: NoiseSquashingParameters = - V1_4_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const BENCH_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: NoiseSquashingCompressionParameters = - V1_4_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const BENCH_NOISE_SQUASHING_PARAM_GPU_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: NoiseSquashingParameters = - V1_4_NOISE_SQUASHING_PARAM_GPU_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_NOISE_SQUASHING_PARAM_GPU_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const BENCH_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: NoiseSquashingParameters = - V1_4_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const BENCH_COMP_NOISE_SQUASHING_PARAM_GPU_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: NoiseSquashingCompressionParameters = - V1_4_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; #[cfg(feature = "hpu")] // KS PBS Gaussian for Hpu pub const BENCH_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_GAUSSIAN_2M64: KeySwitch32PBSParameters = - V1_4_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_GAUSSIAN_2M64; + V1_5_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_GAUSSIAN_2M64; #[cfg(feature = "hpu")] // KS PBS TUniform pub const BENCH_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M64: KeySwitch32PBSParameters = - V1_4_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M64; + V1_5_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M64; #[cfg(feature = "hpu")] // KS PBS TUniform pfail -128 pub const BENCH_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128: KeySwitch32PBSParameters = - V1_4_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128; + V1_5_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128; } #[cfg(any(feature = "shortint", feature = "integer"))] diff --git a/tfhe/Cargo.toml b/tfhe/Cargo.toml index a3a4dcf45..dbc4c4a48 100644 --- a/tfhe/Cargo.toml +++ b/tfhe/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tfhe" -version = "1.4.0" +version = "1.5.0" edition = "2021" readme = "../README.md" keywords = ["fully", "homomorphic", "encryption", "fhe", "cryptography"] diff --git a/tfhe/c_api_tests/test_high_level_integers.c b/tfhe/c_api_tests/test_high_level_integers.c index 0505025d2..f18fa967f 100644 --- a/tfhe/c_api_tests/test_high_level_integers.c +++ b/tfhe/c_api_tests/test_high_level_integers.c @@ -647,7 +647,7 @@ int main(void) { assert(ok == 0); // Then use small parameters, those are gaussians as we don't have small TUniform params ok = config_builder_use_custom_parameters( - &builder, SHORTINT_V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128); + &builder, SHORTINT_V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128); ok = config_builder_build(builder, &config); assert(ok == 0); diff --git a/tfhe/c_api_tests/test_shortint_keygen.c b/tfhe/c_api_tests/test_shortint_keygen.c index 57295d477..a23b6d4fe 100644 --- a/tfhe/c_api_tests/test_shortint_keygen.c +++ b/tfhe/c_api_tests/test_shortint_keygen.c @@ -15,7 +15,7 @@ void test_predefined_keygen_w_serde(void) { ShortintCompressedCiphertext *cct = NULL; ShortintCompressedCiphertext *deser_cct = NULL; ShortintCiphertext *decompressed_ct = NULL; - ShortintPBSParameters params = SHORTINT_V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; + ShortintPBSParameters params = SHORTINT_V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; int gen_keys_ok = shortint_gen_keys_with_parameters(params, &cks, &sks); assert(gen_keys_ok == 0); @@ -79,7 +79,7 @@ void test_server_key_trivial_encrypt(void) { ShortintClientKey *cks = NULL; ShortintServerKey *sks = NULL; ShortintCiphertext *ct = NULL; - ShortintPBSParameters params = SHORTINT_V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; + ShortintPBSParameters params = SHORTINT_V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; int gen_keys_ok = shortint_gen_keys_with_parameters(params, &cks, &sks); assert(gen_keys_ok == 0); @@ -219,10 +219,10 @@ void test_compressed_public_keygen(ShortintPBSParameters params) { int main(void) { test_predefined_keygen_w_serde(); test_custom_keygen(); - test_public_keygen(SHORTINT_V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128); - test_public_keygen(SHORTINT_V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128); - test_compressed_public_keygen(SHORTINT_V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128); - test_compressed_public_keygen(SHORTINT_V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128); + test_public_keygen(SHORTINT_V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128); + test_public_keygen(SHORTINT_V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128); + test_compressed_public_keygen(SHORTINT_V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128); + test_compressed_public_keygen(SHORTINT_V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128); test_server_key_trivial_encrypt(); return EXIT_SUCCESS; } diff --git a/tfhe/c_api_tests/test_shortint_pbs.c b/tfhe/c_api_tests/test_shortint_pbs.c index 06dfa0772..f4ded5978 100644 --- a/tfhe/c_api_tests/test_shortint_pbs.c +++ b/tfhe/c_api_tests/test_shortint_pbs.c @@ -41,7 +41,7 @@ void test_shortint_pbs_2_bits_message(void) { ShortintPBSLookupTable *lookup_table = NULL; ShortintClientKey *cks = NULL; ShortintServerKey *sks = NULL; - ShortintPBSParameters params = SHORTINT_V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; + ShortintPBSParameters params = SHORTINT_V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; int gen_keys_ok = shortint_gen_keys_with_parameters(params, &cks, &sks); assert(gen_keys_ok == 0); @@ -115,7 +115,7 @@ void test_shortint_bivariate_pbs_2_bits_message(void) { ShortintBivariatePBSLookupTable *lookup_table = NULL; ShortintClientKey *cks = NULL; ShortintServerKey *sks = NULL; - ShortintPBSParameters params = SHORTINT_V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; + ShortintPBSParameters params = SHORTINT_V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; int gen_keys_ok = shortint_gen_keys_with_parameters(params, &cks, &sks); assert(gen_keys_ok == 0); diff --git a/tfhe/c_api_tests/test_shortint_server_key.c b/tfhe/c_api_tests/test_shortint_server_key.c index 46b5d2b89..80af84526 100644 --- a/tfhe/c_api_tests/test_shortint_server_key.c +++ b/tfhe/c_api_tests/test_shortint_server_key.c @@ -541,7 +541,7 @@ void test_server_key(void) { ShortintPBSParameters params = SHORTINT_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; // We don't have TUniform small params, use gaussian instead - ShortintPBSParameters params_small = SHORTINT_V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintPBSParameters params_small = SHORTINT_V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; assert(params.message_modulus == 1 << message_bits); assert(params.carry_modulus == 1 << carry_bits); diff --git a/tfhe/docs/configuration/gpu-acceleration/run-on-gpu.md b/tfhe/docs/configuration/gpu-acceleration/run-on-gpu.md index c61911caf..9dabf1605 100644 --- a/tfhe/docs/configuration/gpu-acceleration/run-on-gpu.md +++ b/tfhe/docs/configuration/gpu-acceleration/run-on-gpu.md @@ -74,7 +74,7 @@ To compile and execute GPU TFHE-rs programs, make sure your system has the follo To use the **TFHE-rs** GPU backend in your project, add the following dependency in your `Cargo.toml`. ```toml -tfhe = { version = "~1.4.0", features = ["boolean", "shortint", "integer", "gpu"] } +tfhe = { version = "~1.5.0", features = ["boolean", "shortint", "integer", "gpu"] } ``` If none of the supported backends is configured in `Cargo.toml`, the CPU backend is used. diff --git a/tfhe/docs/configuration/hpu-acceleration/run-on-hpu.md b/tfhe/docs/configuration/hpu-acceleration/run-on-hpu.md index fe3f882c9..2dcafa999 100644 --- a/tfhe/docs/configuration/hpu-acceleration/run-on-hpu.md +++ b/tfhe/docs/configuration/hpu-acceleration/run-on-hpu.md @@ -17,7 +17,7 @@ This guide explains how to update your existing program to leverage HPU accelera To use the **TFHE-rs** HPU backend in your project, add the following dependency in your `Cargo.toml`. ```toml -tfhe = { version = "~1.4.0", features = ["integer", "hpu-v80"] } +tfhe = { version = "~1.5.0", features = ["integer", "hpu-v80"] } ``` {% hint style="success" %} diff --git a/tfhe/docs/configuration/parallelized-pbs.md b/tfhe/docs/configuration/parallelized-pbs.md index ad695453e..ab5f45165 100644 --- a/tfhe/docs/configuration/parallelized-pbs.md +++ b/tfhe/docs/configuration/parallelized-pbs.md @@ -13,11 +13,11 @@ The following example shows how to use parallelized bootstrapping by choosing mu ```rust use tfhe::prelude::*; use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint32}; -use tfhe::shortint::parameters::current_params::V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; +use tfhe::shortint::parameters::current_params::V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; fn main() -> Result<(), Box> { let config = ConfigBuilder::default() - .use_custom_parameters(V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64) + .use_custom_parameters(V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64) .build(); let (keys, server_keys) = generate_keys(config); @@ -45,12 +45,12 @@ Here's an example: ```rust use tfhe::prelude::*; use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint32}; -use tfhe::shortint::parameters::current_params::V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; +use tfhe::shortint::parameters::current_params::V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; fn main() -> Result<(), Box> { let config = ConfigBuilder::default() .use_custom_parameters( - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64.with_deterministic_execution(), + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64.with_deterministic_execution(), ) .build(); diff --git a/tfhe/docs/fhe-computation/advanced-features/zk-pok.md b/tfhe/docs/fhe-computation/advanced-features/zk-pok.md index c293b2d56..51078f3d9 100644 --- a/tfhe/docs/fhe-computation/advanced-features/zk-pok.md +++ b/tfhe/docs/fhe-computation/advanced-features/zk-pok.md @@ -97,11 +97,11 @@ use tfhe::zk::{CompactPkeCrs, ZkComputeLoad}; pub fn main() -> Result<(), Box> { let mut rng = thread_rng(); - let params = tfhe::shortint::parameters::current_params::V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + let params = tfhe::shortint::parameters::current_params::V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; // Indicate which parameters to use for the Compact Public Key encryption - let cpk_params = tfhe::shortint::parameters::current_params::compact_public_key_only::p_fail_2_minus_128::ks_pbs::V1_4_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1; + let cpk_params = tfhe::shortint::parameters::current_params::compact_public_key_only::p_fail_2_minus_128::ks_pbs::V1_5_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1; // And parameters allowing to keyswitch/cast to the computation parameters. - let casting_params = tfhe::shortint::parameters::current_params::key_switching::p_fail_2_minus_128::ks_pbs::V1_4_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1; + let casting_params = tfhe::shortint::parameters::current_params::key_switching::p_fail_2_minus_128::ks_pbs::V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1; // Enable the dedicated parameters on the config let config = tfhe::ConfigBuilder::with_custom_parameters(params) .use_dedicated_compact_public_key_parameters((cpk_params, casting_params)).build(); diff --git a/tfhe/docs/fhe-computation/compute/parameters.md b/tfhe/docs/fhe-computation/compute/parameters.md index 7c2e58ea8..0f27bc2f4 100644 --- a/tfhe/docs/fhe-computation/compute/parameters.md +++ b/tfhe/docs/fhe-computation/compute/parameters.md @@ -49,11 +49,11 @@ You can override the default parameters with the `with_custom_parameters(block_p ```rust use tfhe::{ConfigBuilder, generate_keys}; -use tfhe::shortint::parameters::current_params::V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; +use tfhe::shortint::parameters::current_params::V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; fn main() { let config = - ConfigBuilder::with_custom_parameters(V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) + ConfigBuilder::with_custom_parameters(V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128) .build(); // Client-side diff --git a/tfhe/docs/fhe-computation/data-handling/data-versioning.md b/tfhe/docs/fhe-computation/data-handling/data-versioning.md index 5d75d2cc3..03f6e2245 100644 --- a/tfhe/docs/fhe-computation/data-handling/data-versioning.md +++ b/tfhe/docs/fhe-computation/data-handling/data-versioning.md @@ -16,7 +16,7 @@ You can load serialized data with the `unversionize` function, even in newer ver [dependencies] # ... -tfhe = { version = "~1.4.0", features = ["integer"] } +tfhe = { version = "~1.5.0", features = ["integer"] } tfhe-versionable = "0.6.0" bincode = "1.3.3" ``` diff --git a/tfhe/docs/fhe-computation/data-handling/serialization.md b/tfhe/docs/fhe-computation/data-handling/serialization.md index 5fd1eed2e..8bb99c051 100644 --- a/tfhe/docs/fhe-computation/data-handling/serialization.md +++ b/tfhe/docs/fhe-computation/data-handling/serialization.md @@ -161,7 +161,7 @@ In the following example, we use [bincode](https://crates.io/crates/bincode) for [dependencies] # ... -tfhe = { version = "~1.4.0", features = ["integer"] } +tfhe = { version = "~1.5.0", features = ["integer"] } bincode = "1.3.3" ``` diff --git a/tfhe/docs/fhe-computation/types/array.md b/tfhe/docs/fhe-computation/types/array.md index 1e95b4425..450585bd2 100644 --- a/tfhe/docs/fhe-computation/types/array.md +++ b/tfhe/docs/fhe-computation/types/array.md @@ -19,7 +19,7 @@ The following example shows a complete workflow of working with encrypted arrays # Cargo.toml [dependencies] -tfhe = { version = "~1.4.0", features = ["integer"] } +tfhe = { version = "~1.5.0", features = ["integer"] } ``` ```rust diff --git a/tfhe/docs/fhe-computation/types/strings.md b/tfhe/docs/fhe-computation/types/strings.md index 7639d225b..e90551fb3 100644 --- a/tfhe/docs/fhe-computation/types/strings.md +++ b/tfhe/docs/fhe-computation/types/strings.md @@ -29,7 +29,7 @@ Here is an example: # Cargo.toml [dependencies] -tfhe = { version = "~1.4.0", features = ["integer", "strings"] } +tfhe = { version = "~1.5.0", features = ["integer", "strings"] } ``` ```rust diff --git a/tfhe/docs/getting-started/installation.md b/tfhe/docs/getting-started/installation.md index 20b124d07..5855b2144 100644 --- a/tfhe/docs/getting-started/installation.md +++ b/tfhe/docs/getting-started/installation.md @@ -7,7 +7,7 @@ This document provides instructions to set up **TFHE-rs** in your project. First, add **TFHE-rs** as a dependency in your `Cargo.toml`. ```toml -tfhe = { version = "~1.4.0", features = ["boolean", "shortint", "integer"] } +tfhe = { version = "~1.5.0", features = ["boolean", "shortint", "integer"] } ``` {% hint style="info" %} @@ -35,7 +35,7 @@ By default, **TFHE-rs** makes the assumption that hardware AES features are enab To add support for older CPU, import **TFHE-rs** with the `software-prng` feature in your `Cargo.toml`: ```toml -tfhe = { version = "~1.4.0", features = ["boolean", "shortint", "integer", "software-prng"] } +tfhe = { version = "~1.5.0", features = ["boolean", "shortint", "integer", "software-prng"] } ``` ## Hardware acceleration diff --git a/tfhe/docs/getting-started/quick-start.md b/tfhe/docs/getting-started/quick-start.md index 85736674c..fde1d9eea 100644 --- a/tfhe/docs/getting-started/quick-start.md +++ b/tfhe/docs/getting-started/quick-start.md @@ -59,7 +59,7 @@ edition = "2021" Then add the following configuration to include **TFHE-rs**: ```toml -tfhe = { version = "~1.4.0", features = ["integer"] } +tfhe = { version = "~1.5.0", features = ["integer"] } ``` Your updated `Cargo.toml` file should look like this: @@ -71,7 +71,7 @@ version = "0.1.0" edition = "2021" [dependencies] -tfhe = { version = "~1.4.0", features = ["integer"] } +tfhe = { version = "~1.5.0", features = ["integer"] } ``` If you are on a different platform please refer to the [installation documentation](installation.md) for configuration options of other supported platforms. diff --git a/tfhe/docs/integration/js-on-wasm-api.md b/tfhe/docs/integration/js-on-wasm-api.md index 21dfa0044..5b93812fb 100644 --- a/tfhe/docs/integration/js-on-wasm-api.md +++ b/tfhe/docs/integration/js-on-wasm-api.md @@ -37,7 +37,7 @@ function fhe_uint32_example() { const U32_MAX = 4294967295; - const block_params = new ShortintParameters(ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M64); + const block_params = new ShortintParameters(ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M64); let config = TfheConfigBuilder.default() .build(); @@ -90,7 +90,7 @@ async function example() { await initThreadPool(navigator.hardwareConcurrency); await init_panic_hook(); - const block_params = new ShortintParameters(ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M64); + const block_params = new ShortintParameters(ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M64); // .... } ``` diff --git a/tfhe/docs/references/core-crypto-api/tutorial.md b/tfhe/docs/references/core-crypto-api/tutorial.md index a1f716ae3..cc178bd92 100644 --- a/tfhe/docs/references/core-crypto-api/tutorial.md +++ b/tfhe/docs/references/core-crypto-api/tutorial.md @@ -9,7 +9,7 @@ Welcome to this tutorial about `TFHE-rs` `core_crypto` module. To use `TFHE-rs`, it first has to be added as a dependency in the `Cargo.toml`: ```toml -tfhe = { version = "~1.4.0" } +tfhe = { version = "~1.5.0" } ``` ### Commented code to double a 2-bit message in a leveled fashion and using a PBS with the `core_crypto` module. diff --git a/tfhe/docs/tutorials/ascii-fhe-string.md b/tfhe/docs/tutorials/ascii-fhe-string.md index c159371c5..93b390b59 100644 --- a/tfhe/docs/tutorials/ascii-fhe-string.md +++ b/tfhe/docs/tutorials/ascii-fhe-string.md @@ -28,7 +28,7 @@ To use the `FheUint8` type, enable the `integer` feature: # Cargo.toml [dependencies] -tfhe = { version = "~1.4.0", features = ["integer"] } +tfhe = { version = "~1.5.0", features = ["integer"] } ``` The `MyFheString::encrypt` function performs data validation to ensure the input string contains only ASCII characters. @@ -167,7 +167,7 @@ First, add the feature in your `Cargo.toml` # Cargo.toml [dependencies] -tfhe = { version = "~1.4.0", features = ["strings"] } +tfhe = { version = "~1.5.0", features = ["strings"] } ``` The `FheAsciiString` type allows to simply do homomorphic case changing of encrypted strings (and much more!): diff --git a/tfhe/docs/tutorials/parity-bit.md b/tfhe/docs/tutorials/parity-bit.md index 678dd8e7d..d7ae9e282 100644 --- a/tfhe/docs/tutorials/parity-bit.md +++ b/tfhe/docs/tutorials/parity-bit.md @@ -17,7 +17,7 @@ This function returns a Boolean (`true` or `false`) so that the total count of ` ```toml # Cargo.toml -tfhe = { version = "~1.4.0", features = ["integer"] } +tfhe = { version = "~1.5.0", features = ["integer"] } ``` First, define the verification function. diff --git a/tfhe/examples/sha256.rs b/tfhe/examples/sha256.rs index 5064c9545..2b15b8a0d 100644 --- a/tfhe/examples/sha256.rs +++ b/tfhe/examples/sha256.rs @@ -5,8 +5,8 @@ use std::mem::MaybeUninit; use std::{array, iter}; use tfhe::prelude::*; use tfhe::shortint::parameters::current_params::{ - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, }; use tfhe::{set_server_key, ClientKey, CompressedServerKey, ConfigBuilder, Device, FheUint32}; @@ -190,10 +190,10 @@ fn main() -> Result<(), std::io::Error> { let config = match args.multibit { None => ConfigBuilder::default(), Some(2) => ConfigBuilder::with_custom_parameters( - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, ), Some(3) => ConfigBuilder::with_custom_parameters( - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, ), Some(v) => { panic!("Invalid multibit setting {v}"); diff --git a/tfhe/examples/utilities/generates_test_keys.rs b/tfhe/examples/utilities/generates_test_keys.rs index 486621c05..b3d7f1491 100644 --- a/tfhe/examples/utilities/generates_test_keys.rs +++ b/tfhe/examples/utilities/generates_test_keys.rs @@ -32,9 +32,9 @@ const KSK_PARAMS: [( ClassicPBSParameters, ShortintKeySwitchingParameters, ); 1] = [( - V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, )]; fn client_server_keys() { @@ -64,12 +64,12 @@ fn client_server_keys() { let coverage_only: bool = matches.get_flag("coverage_only"); if multi_bit_only { const MULTI_BIT_PARAMS: [MultiBitPBSParameters; 6] = [ - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, ]; generate_pbs_multi_bit_keys(&MULTI_BIT_PARAMS); @@ -97,7 +97,7 @@ fn client_server_keys() { #[cfg(feature = "experimental")] { const WOPBS_PARAMS: [(ClassicPBSParameters, WopbsParameters); 1] = [( - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, LEGACY_WOPBS_PARAM_MESSAGE_2_CARRY_2_KS_PBS, )]; generate_wopbs_keys(&WOPBS_PARAMS); @@ -111,21 +111,21 @@ fn client_server_keys() { // TUniform PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, // Gaussian - V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, // 2M64 as backup as 2M128 is too slow - V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, ]; generate_pbs_keys(&PBS_KEYS); @@ -133,19 +133,19 @@ fn client_server_keys() { { const WOPBS_PARAMS: [(ClassicPBSParameters, WopbsParameters); 4] = [ ( - V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, LEGACY_WOPBS_PARAM_MESSAGE_1_CARRY_1_KS_PBS, ), ( - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, LEGACY_WOPBS_PARAM_MESSAGE_2_CARRY_2_KS_PBS, ), ( - V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, LEGACY_WOPBS_PARAM_MESSAGE_3_CARRY_3_KS_PBS, ), ( - V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, LEGACY_WOPBS_PARAM_MESSAGE_4_CARRY_4_KS_PBS, ), ]; diff --git a/tfhe/js_on_wasm_tests/test-hlapi-signed.js b/tfhe/js_on_wasm_tests/test-hlapi-signed.js index 3a9791d60..84248752c 100644 --- a/tfhe/js_on_wasm_tests/test-hlapi-signed.js +++ b/tfhe/js_on_wasm_tests/test-hlapi-signed.js @@ -100,7 +100,7 @@ test("hlapi_compressed_public_client_int8_big", (t) => { test("hlapi_public_key_encrypt_decrypt_int32_small", (t) => { let params_name_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_small = new ShortintParameters(params_name_small); let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); @@ -127,7 +127,7 @@ test("hlapi_public_key_encrypt_decrypt_int32_small", (t) => { test("hlapi_decompress_public_key_then_encrypt_decrypt_int32_small", (t) => { let params_name_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_small = new ShortintParameters(params_name_small); let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); @@ -213,7 +213,7 @@ test("hlapi_client_key_encrypt_decrypt_int128_big", (t) => { test("hlapi_client_key_encrypt_decrypt_int128_small", (t) => { let params_name_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_small = new ShortintParameters(params_name_small); let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); @@ -323,7 +323,7 @@ test("hlapi_client_key_encrypt_decrypt_int256_big", (t) => { test("hlapi_client_key_encrypt_decrypt_int256_small", (t) => { let params_name_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_small = new ShortintParameters(params_name_small); let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); @@ -384,7 +384,7 @@ test("hlapi_client_key_encrypt_decrypt_int256_small", (t) => { test("hlapi_decompress_public_key_then_encrypt_decrypt_int256_small", (t) => { let params_name_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_small = new ShortintParameters(params_name_small); let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); @@ -412,7 +412,7 @@ test("hlapi_decompress_public_key_then_encrypt_decrypt_int256_small", (t) => { test("hlapi_public_key_encrypt_decrypt_int256_small", (t) => { let params_name_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_small = new ShortintParameters(params_name_small); let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); @@ -470,7 +470,7 @@ function hlapi_compact_public_key_encrypt_decrypt_int32_single(config) { test("hlapi_compact_public_key_encrypt_decrypt_int32_big_single", (t) => { const block_params = new ShortintParameters( - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_128, + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, ); let config = TfheConfigBuilder.default() .use_custom_parameters(block_params) @@ -481,7 +481,7 @@ test("hlapi_compact_public_key_encrypt_decrypt_int32_big_single", (t) => { test("hlapi_compact_public_key_encrypt_decrypt_int32_small_single", (t) => { const block_params = new ShortintParameters( - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M64, + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M128, ); let config = TfheConfigBuilder.default() .use_custom_parameters(block_params) diff --git a/tfhe/js_on_wasm_tests/test-hlapi-unsigned.js b/tfhe/js_on_wasm_tests/test-hlapi-unsigned.js index c44242f9d..32e047c3a 100644 --- a/tfhe/js_on_wasm_tests/test-hlapi-unsigned.js +++ b/tfhe/js_on_wasm_tests/test-hlapi-unsigned.js @@ -80,7 +80,7 @@ test("hlapi_key_gen_big", (t) => { test("hlapi_key_gen_small", (t) => { let params_name_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_small = new ShortintParameters(params_name_small); let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); @@ -151,7 +151,7 @@ test("hlapi_compressed_public_client_uint8_big", (t) => { test("hlapi_public_key_encrypt_decrypt_uint32_small", (t) => { let params_name_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_small = new ShortintParameters(params_name_small); let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); @@ -178,7 +178,7 @@ test("hlapi_public_key_encrypt_decrypt_uint32_small", (t) => { test("hlapi_decompress_public_key_then_encrypt_decrypt_uint32_small", (t) => { let params_name_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_small = new ShortintParameters(params_name_small); let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); @@ -264,7 +264,7 @@ test("hlapi_client_key_encrypt_decrypt_uint128_big", (t) => { test("hlapi_client_key_encrypt_decrypt_uint128_small", (t) => { let params_name_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_small = new ShortintParameters(params_name_small); let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); @@ -365,7 +365,7 @@ test("hlapi_client_key_encrypt_decrypt_uint256_big", (t) => { test("hlapi_client_key_encrypt_decrypt_uint256_small", (t) => { let params_name_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_small = new ShortintParameters(params_name_small); let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); @@ -417,7 +417,7 @@ test("hlapi_client_key_encrypt_decrypt_uint256_small", (t) => { test("hlapi_decompress_public_key_then_encrypt_decrypt_uint256_small", (t) => { let params_name_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_small = new ShortintParameters(params_name_small); let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); @@ -445,7 +445,7 @@ test("hlapi_decompress_public_key_then_encrypt_decrypt_uint256_small", (t) => { test("hlapi_public_key_encrypt_decrypt_uint256_small", (t) => { let params_name_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_small = new ShortintParameters(params_name_small); let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); diff --git a/tfhe/js_on_wasm_tests/test.js b/tfhe/js_on_wasm_tests/test.js index b47351429..fed6453f1 100644 --- a/tfhe/js_on_wasm_tests/test.js +++ b/tfhe/js_on_wasm_tests/test.js @@ -128,7 +128,7 @@ test("shortint_encrypt_decrypt", (t) => { // Encryption using small keys let params_name_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_small = new ShortintParameters(params_name_small); let cks_small = Shortint.new_client_key(params_small); @@ -164,7 +164,7 @@ test("shortint_compressed_encrypt_decrypt", (t) => { // Encryption using small keys // We don't have TUniform small params so use previous gaussian ones. let params_name_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_small = new ShortintParameters(params_name_small); let cks_small = Shortint.new_client_key(params_small); @@ -184,7 +184,7 @@ test("shortint_compressed_encrypt_decrypt", (t) => { test("shortint_public_encrypt_decrypt", (t) => { let params_name_2_0 = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M128; let params_2_0 = new ShortintParameters(params_name_2_0); let cks = Shortint.new_client_key(params_2_0); let pk = Shortint.new_public_key(cks); @@ -199,7 +199,7 @@ test("shortint_public_encrypt_decrypt", (t) => { // Small let params_name_2_2_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_2_2_small = new ShortintParameters(params_name_2_2_small); let cks_small = Shortint.new_client_key(params_2_2_small); @@ -216,7 +216,8 @@ test("shortint_public_encrypt_decrypt", (t) => { }); test("shortint_compressed_public_encrypt_decrypt", (t) => { - let params_name = ShortintParametersName.PARAM_MESSAGE_1_CARRY_1_KS_PBS; + let params_name = + ShortintParametersName.V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; let params = new ShortintParameters(params_name); let cks = Shortint.new_client_key(params); let pk = Shortint.new_compressed_public_key(cks); @@ -238,7 +239,7 @@ test("shortint_compressed_public_encrypt_decrypt", (t) => { // Small let params_name_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_small = new ShortintParameters(params_name_small); let cks_small = Shortint.new_client_key(params_small); diff --git a/tfhe/src/c_api/shortint/parameters.rs b/tfhe/src/c_api/shortint/parameters.rs index 710cf07d3..02d015e62 100644 --- a/tfhe/src/c_api/shortint/parameters.rs +++ b/tfhe/src/c_api/shortint/parameters.rs @@ -8,6 +8,7 @@ use crate::shortint::parameters::v1_1::*; use crate::shortint::parameters::v1_2::*; use crate::shortint::parameters::v1_3::*; use crate::shortint::parameters::v1_4::*; +use crate::shortint::parameters::v1_5::*; pub use crate::shortint::parameters::*; use crate::shortint::parameters::{ ModulusSwitchNoiseReductionParams as RustModulusSwitchNoiseReductionParams, @@ -496,6 +497,10 @@ expose_as_shortint_compact_public_key_parameters!( PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128 ), + ( + V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128 + ), ( V1_4_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, V1_4_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128 @@ -653,6 +658,7 @@ macro_rules! expose_as_shortint_pbs_parameters( ); expose_as_shortint_pbs_parameters!( + (V1_5, M128), (V1_4, M128), (V1_3, M128), (V1_2, M128), @@ -686,6 +692,9 @@ macro_rules! expose_as_shortint_compression_parameters( expose_as_shortint_compression_parameters!( COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + // v1.5 + V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, // v1.4 V1_4_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, V1_4_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, diff --git a/tfhe/src/high_level_api/compressed_noise_squashed_ciphertext_list.rs b/tfhe/src/high_level_api/compressed_noise_squashed_ciphertext_list.rs index c5e5c7dbf..aa7867642 100644 --- a/tfhe/src/high_level_api/compressed_noise_squashed_ciphertext_list.rs +++ b/tfhe/src/high_level_api/compressed_noise_squashed_ciphertext_list.rs @@ -634,11 +634,11 @@ mod tests { #[test] fn test_compressed_squashed_noise_ciphertext_list() { - let params = V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + let params = V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; let noise_squashing_params = - V1_4_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; let noise_squashing_compression_params = - V1_4_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; let config = ConfigBuilder::with_custom_parameters(params) .enable_noise_squashing(noise_squashing_params) @@ -692,11 +692,11 @@ mod tests { #[test] #[cfg(feature = "gpu")] fn test_gpu_compressed_squashed_noise_ciphertext_list() { - let params = V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + let params = V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; let noise_squashing_params = - V1_4_NOISE_SQUASHING_PARAM_GPU_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_NOISE_SQUASHING_PARAM_GPU_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; let noise_squashing_compression_params = - V1_4_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; let config = ConfigBuilder::with_custom_parameters(params) .enable_noise_squashing(noise_squashing_params) diff --git a/tfhe/src/integer/gpu/zk/mod.rs b/tfhe/src/integer/gpu/zk/mod.rs index bf450daa4..a08565334 100644 --- a/tfhe/src/integer/gpu/zk/mod.rs +++ b/tfhe/src/integer/gpu/zk/mod.rs @@ -155,19 +155,18 @@ mod tests { ProvenCompactCiphertextList, }; use crate::shortint::parameters::test_params::TEST_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2; - use std::num::NonZero; - // TODO test params update for the V1_4 - use crate::shortint::parameters::current_params::V1_4_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; use crate::shortint::parameters::{ CompactPublicKeyEncryptionParameters, ShortintKeySwitchingParameters, PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, - PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + PARAM_KEYSWITCH_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + PARAM_KEYSWITCH_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, }; use crate::shortint::PBSParameters; use crate::zk::{CompactPkeCrs, ZkComputeLoad}; use rand::random; + use std::num::NonZero; #[test] fn test_zk_compact_ciphertext_list_encryption() { @@ -177,17 +176,17 @@ mod tests { PBSParameters, ); 3] = [ ( - V1_4_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + PARAM_KEYSWITCH_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, TEST_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128.into(), ), ( - PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + PARAM_KEYSWITCH_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128.into(), ), ( - PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + PARAM_KEYSWITCH_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128.into(), ), @@ -268,17 +267,17 @@ mod tests { PBSParameters, ); 3] = [ ( - V1_4_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + PARAM_KEYSWITCH_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, TEST_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128.into(), ), ( - PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + PARAM_KEYSWITCH_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128.into(), ), ( - PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + PARAM_KEYSWITCH_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128.into(), ), @@ -358,17 +357,17 @@ mod tests { PBSParameters, ); 3] = [ ( - V1_4_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + PARAM_KEYSWITCH_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, TEST_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128.into(), ), ( - PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + PARAM_KEYSWITCH_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128.into(), ), ( - PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + PARAM_KEYSWITCH_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128.into(), ), diff --git a/tfhe/src/js_on_wasm_api/shortint.rs b/tfhe/src/js_on_wasm_api/shortint.rs index ad382acc0..443123260 100644 --- a/tfhe/src/js_on_wasm_api/shortint.rs +++ b/tfhe/src/js_on_wasm_api/shortint.rs @@ -12,6 +12,7 @@ use crate::shortint::parameters::v1_1::*; use crate::shortint::parameters::v1_2::*; use crate::shortint::parameters::v1_3::*; use crate::shortint::parameters::v1_4::*; +use crate::shortint::parameters::v1_5::*; use crate::shortint::parameters::*; use std::panic::set_hook; use wasm_bindgen::prelude::*; @@ -319,6 +320,14 @@ expose_predefined_pke_parameters!( V1_4_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1, V1_4_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1 ), + ( + V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128 + ), + ( + V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1, + V1_5_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1 + ), ); #[wasm_bindgen] @@ -428,7 +437,7 @@ macro_rules! expose_predefined_pbs_parameters_helper_2 { // A mistake was made in 1.1 and versions were added at the start, to conserve the backward // compatible order starting with 1.1, new versions are now added at the END expose_predefined_pbs_parameters!( - (V1_1, M128), (V1_0, M128), (V0_11, M64), (V1_2, M128), (V1_3, M128), (V1_4, M128) @ + (V1_1, M128), (V1_0, M128), (V0_11, M64), (V1_2, M128), (V1_3, M128), (V1_4, M128), (V1_5, M128) @ PARAM_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2, PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2, PARAM_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2, diff --git a/tfhe/src/shortint/key_switching_key/mod.rs b/tfhe/src/shortint/key_switching_key/mod.rs index c06c1d73d..f31026451 100644 --- a/tfhe/src/shortint/key_switching_key/mod.rs +++ b/tfhe/src/shortint/key_switching_key/mod.rs @@ -323,21 +323,21 @@ impl KeySwitchingKey { /// /// ```rust /// use tfhe::shortint::parameters::current_params::{ - /// V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, - /// V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, - /// V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + /// V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + /// V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + /// V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, /// }; /// use tfhe::shortint::{gen_keys, KeySwitchingKey}; /// /// // Generate the client keys and server keys: - /// let (ck1, sk1) = gen_keys(V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); - /// let (ck2, sk2) = gen_keys(V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128); + /// let (ck1, sk1) = gen_keys(V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); + /// let (ck2, sk2) = gen_keys(V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128); /// /// // Generate the server key: /// let ksk = KeySwitchingKey::new( /// (&ck1, Some(&sk1)), /// (&ck2, &sk2), - /// V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + /// V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, /// ); /// ``` pub fn new<'input_key, InputEncryptionKey>( @@ -469,21 +469,21 @@ impl KeySwitchingKey { /// /// ```rust /// use tfhe::shortint::parameters::current_params::{ - /// V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, - /// V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, - /// V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + /// V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + /// V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + /// V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, /// }; /// use tfhe::shortint::{gen_keys, KeySwitchingKey}; /// /// // Generate the client keys and server keys: - /// let (ck1, sk1) = gen_keys(V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); - /// let (ck2, sk2) = gen_keys(V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128); + /// let (ck1, sk1) = gen_keys(V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); + /// let (ck2, sk2) = gen_keys(V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128); /// /// // Generate the server key: /// let ksk = KeySwitchingKey::new( /// (&ck1, Some(&sk1)), /// (&ck2, &sk2), - /// V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + /// V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, /// ); /// /// let cleartext = 1; @@ -615,21 +615,21 @@ impl<'keys> KeySwitchingKeyView<'keys> { /// /// ```rust /// use tfhe::shortint::parameters::current_params::{ - /// V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, - /// V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, - /// V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + /// V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + /// V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + /// V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, /// }; /// use tfhe::shortint::{gen_keys, KeySwitchingKey}; /// /// // Generate the client keys and server keys: - /// let (ck1, sk1) = gen_keys(V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); - /// let (ck2, sk2) = gen_keys(V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128); + /// let (ck1, sk1) = gen_keys(V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128); + /// let (ck2, sk2) = gen_keys(V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128); /// /// // Generate the server key: /// let ksk = KeySwitchingKey::new( /// (&ck1, Some(&sk1)), /// (&ck2, &sk2), - /// V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + /// V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, /// ); /// /// let cleartext = 1; diff --git a/tfhe/src/shortint/keycache.rs b/tfhe/src/shortint/keycache.rs index c7f58adef..665397d09 100644 --- a/tfhe/src/shortint/keycache.rs +++ b/tfhe/src/shortint/keycache.rs @@ -12,311 +12,311 @@ use crate::shortint::{ClientKey, KeySwitchingKey, ServerKey}; use serde::{Deserialize, Serialize}; named_params_impl!( ShortintParameterSet => - V1_4_PARAM_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M128, // Small - V1_4_PARAM_MESSAGE_1_CARRY_1_PBS_KS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_3_PBS_KS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_4_CARRY_4_PBS_KS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_1_PBS_KS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_3_PBS_KS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_4_CARRY_4_PBS_KS_GAUSSIAN_2M128, // For GPU classical tests until they have the drift technique parameters // To avoid crashing shortint tests with slow/too large keys for 4_4 // And to have parameters without drift technique for WOPBS tests - V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, // MultiBit Group 2 - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, // MultiBit Group 3 - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, // MultiBit Group 4 - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, // CPU Multibit TUniform - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, // MultiBit Group 3 GPU - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, // GPU MultiBit Group 2 - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, // GPU MultiBit Group 4 - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, // CPK - V1_4_PARAM_MESSAGE_1_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_4_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_5_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_6_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_7_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_8_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_4_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_5_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_6_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_7_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_8_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, // CPK SMALL - V1_4_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_PBS_KS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_PBS_KS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_PBS_KS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_PBS_KS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_PBS_KS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_PBS_KS_GAUSSIAN_2M128, // TUniform PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, - V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, // KS32 AP with TUniform - V1_4_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128, // Wopbs LEGACY_WOPBS_PARAM_MESSAGE_1_CARRY_0_KS_PBS, LEGACY_WOPBS_PARAM_MESSAGE_1_CARRY_1_KS_PBS, @@ -407,11 +407,11 @@ named_params_impl!( ShortintParameterSet => COVERAGE_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, #[cfg(feature ="hpu")] - V1_4_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_GAUSSIAN_2M64, + V1_5_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_GAUSSIAN_2M64, #[cfg(feature ="hpu")] - V1_4_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M64, + V1_5_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M64, #[cfg(feature ="hpu")] - V1_4_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128, + V1_5_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128, ); impl NamedParam for ClassicPBSParameters { @@ -451,7 +451,7 @@ impl NamedParam for KeySwitch32PBSParameters { } named_params_impl!(ShortintKeySwitchingParameters => - V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, ; fallback => ks_params_default_name ); @@ -475,7 +475,7 @@ fn comp_params_default_name(params: &CompressionParameters) -> String { } named_params_impl!(CompactPublicKeyEncryptionParameters => - V1_4_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, ; fallback => cpke_params_default_name ); @@ -487,13 +487,13 @@ fn cpke_params_default_name(params: &CompactPublicKeyEncryptionParameters) -> St } named_params_impl!( NoiseSquashingParameters => - V1_4_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, - V1_4_NOISE_SQUASHING_PARAM_GPU_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, - V1_4_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_NOISE_SQUASHING_PARAM_GPU_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, ); named_params_impl!( NoiseSquashingCompressionParameters => - V1_4_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, ); impl From for (ClientKey, ServerKey) { diff --git a/tfhe/src/shortint/list_compression/noise_squashing_compression.rs b/tfhe/src/shortint/list_compression/noise_squashing_compression.rs index 62d9180c0..9d53bba1e 100644 --- a/tfhe/src/shortint/list_compression/noise_squashing_compression.rs +++ b/tfhe/src/shortint/list_compression/noise_squashing_compression.rs @@ -126,7 +126,6 @@ mod test { use crate::shortint::noise_squashing::{ NoiseSquashingKey, NoiseSquashingPrivateKey, NoiseSquashingPrivateKeyView, }; - use crate::shortint::parameters::v1_4::V1_4_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; use crate::shortint::parameters::*; use rand::prelude::*; @@ -143,7 +142,7 @@ mod test { let noise_squashing_key = NoiseSquashingKey::new(cks, &noise_squashing_private_key); let compression_private_key = NoiseSquashingCompressionPrivateKey::new( - V1_4_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, ); let compression_key = noise_squashing_private_key @@ -153,7 +152,7 @@ mod test { let id_lut = sks.generate_lookup_table(|x| x); let max_ct_count = - V1_4_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128.lwe_per_glwe; + NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128.lwe_per_glwe; for ct_count in [0, 1, max_ct_count.0] { // Generate random msgs diff --git a/tfhe/src/shortint/parameters/aliases.rs b/tfhe/src/shortint/parameters/aliases.rs index a3f1586ec..b2ab0c99b 100644 --- a/tfhe/src/shortint/parameters/aliases.rs +++ b/tfhe/src/shortint/parameters/aliases.rs @@ -4,55 +4,54 @@ use crate::shortint::parameters::{ NoiseSquashingCompressionParameters, NoiseSquashingParameters, ShortintKeySwitchingParameters, }; -use super::v1_4::V1_4_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128; - use current_params::classic::gaussian::p_fail_2_minus_128::ks_pbs::{ - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, }; -use current_params::classic::gaussian::p_fail_2_minus_64::ks_pbs::V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; -use current_params::classic::tuniform::p_fail_2_minus_128::ks_pbs::V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; -use current_params::classic::tuniform::p_fail_2_minus_64::ks_pbs::V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64; -use current_params::compact_public_key_only::p_fail_2_minus_128::ks_pbs::V1_4_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; +use current_params::classic::gaussian::p_fail_2_minus_64::ks_pbs::V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; +use current_params::classic::tuniform::p_fail_2_minus_128::ks_pbs::V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; +use current_params::classic::tuniform::p_fail_2_minus_64::ks_pbs::V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64; +use current_params::compact_public_key_only::p_fail_2_minus_128::ks_pbs::V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; use current_params::key_switching::p_fail_2_minus_128::ks_pbs::{ - V1_4_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, }; -use current_params::key_switching::p_fail_2_minus_128::ks_pbs_gpu::V1_4_PARAM_MULTI_BIT_GROUP_4_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; +use current_params::key_switching::p_fail_2_minus_128::ks_pbs_gpu::V1_5_PARAM_MULTI_BIT_GROUP_4_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; +use current_params::ks32::tuniform::p_fail_2_minus_128::ks_pbs::V1_5_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128; use current_params::list_compression::p_fail_2_minus_128::{ - V1_4_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, - V1_4_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, }; use current_params::list_compression::p_fail_2_minus_64::{ - V1_4_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, }; use current_params::multi_bit::gaussian::p_fail_2_minus_128::ks_pbs_gpu::{ - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, }; use current_params::multi_bit::gaussian::p_fail_2_minus_64::ks_pbs_gpu::{ - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, }; use current_params::multi_bit::tuniform::p_fail_2_minus_128::ks_pbs_gpu::{ - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, }; use current_params::multi_bit::tuniform::p_fail_2_minus_64::ks_pbs_gpu::{ - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, }; use current_params::noise_squashing::p_fail_2_minus_128::{ - V1_4_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, - V1_4_NOISE_SQUASHING_PARAM_GPU_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, - V1_4_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, - V1_4_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_NOISE_SQUASHING_PARAM_GPU_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + V1_5_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, }; // Aliases @@ -60,20 +59,20 @@ use current_params::noise_squashing::p_fail_2_minus_128::{ // Compute Gaussian // 2M128 pub const PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; // Used by CRT doctests pub const PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; // 2M64 pub const PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; // Compute TUniform // 2M128 pub const PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const PARAM_MESSAGE_2_CARRY_2_KS_PBS: ClassicPBSParameters = PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; @@ -82,30 +81,30 @@ pub const PARAM_MESSAGE_2_CARRY_2: ClassicPBSParameters = PARAM_MESSAGE_2_CARRY_ // 2M64 pub const PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64; + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64; // Compute KS32 // 2M128 pub const PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128: KeySwitch32PBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128; // Compression Gaussian // 2M128 pub const COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: CompressionParameters = - V1_4_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; + V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; // 2M64 pub const COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: CompressionParameters = - V1_4_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; + V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; // Compression TUniform // 2M128 pub const COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: CompressionParameters = - V1_4_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: CompressionParameters = - V1_4_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS: CompressionParameters = COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; @@ -114,11 +113,11 @@ pub const COMP_PARAM_MESSAGE_2_CARRY_2: CompressionParameters = COMP_PARAM_MESSA // 2M64 pub const COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64: CompressionParameters = - V1_4_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64; + V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64; // PKE TUniform pub const PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: CompactPublicKeyEncryptionParameters = - V1_4_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; // PKE To Compute Keyswitch pub const PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ShortintKeySwitchingParameters = @@ -126,61 +125,61 @@ pub const PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ShortintKeySw pub const PARAM_KEYSWITCH_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ShortintKeySwitchingParameters = - V1_4_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const PARAM_KEYSWITCH_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ShortintKeySwitchingParameters = - V1_4_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; // Noise squashing pub const NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: NoiseSquashingParameters = - V1_4_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; // Noise squashing compression pub const NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: NoiseSquashingCompressionParameters = - V1_4_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const NOISE_SQUASHING_PARAM_GPU_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: NoiseSquashingParameters = - V1_4_NOISE_SQUASHING_PARAM_GPU_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_NOISE_SQUASHING_PARAM_GPU_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: NoiseSquashingParameters = - V1_4_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; // GPU 2^-64 // GPU TUniform pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64: - MultiBitPBSParameters = V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64; + MultiBitPBSParameters = V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64; pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64: - MultiBitPBSParameters = V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64; + MultiBitPBSParameters = V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64; pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64: - MultiBitPBSParameters = V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64; + MultiBitPBSParameters = V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64; // GPU Gaussian pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: - MultiBitPBSParameters = V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64; + MultiBitPBSParameters = V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64; pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: - MultiBitPBSParameters = V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; + MultiBitPBSParameters = V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: - MultiBitPBSParameters = V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64; + MultiBitPBSParameters = V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64; // GPU 2^-128 // GPU TUniform pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS: MultiBitPBSParameters = PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; @@ -191,15 +190,15 @@ pub const COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS: Compression // GPU Gaussian pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; // GPU PKE To Compute Keyswitch pub const PARAM_GPU_MULTI_BIT_GROUP_4_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ShortintKeySwitchingParameters = - V1_4_PARAM_MULTI_BIT_GROUP_4_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MULTI_BIT_GROUP_4_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; diff --git a/tfhe/src/shortint/parameters/mod.rs b/tfhe/src/shortint/parameters/mod.rs index a6a00bdf0..5e3ab9dae 100644 --- a/tfhe/src/shortint/parameters/mod.rs +++ b/tfhe/src/shortint/parameters/mod.rs @@ -58,9 +58,10 @@ pub mod v1_1; pub mod v1_2; pub mod v1_3; pub mod v1_4; +pub mod v1_5; // TODO, what do we do about this one ? pub use aliases::*; -pub use v1_4 as current_params; +pub use v1_5 as current_params; pub use super::atomic_pattern::{AtomicPatternKind, AtomicPatternParameters}; use super::backward_compatibility::parameters::modulus_switch_noise_reduction::ModulusSwitchNoiseReductionParamsVersions; diff --git a/tfhe/src/shortint/parameters/test_params.rs b/tfhe/src/shortint/parameters/test_params.rs index 868ed4853..1550fe1ae 100644 --- a/tfhe/src/shortint/parameters/test_params.rs +++ b/tfhe/src/shortint/parameters/test_params.rs @@ -15,219 +15,219 @@ pub type TestParameters = AtomicPatternParameters; // Classic // CPK Gaussian pub const TEST_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_PBS_KS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_PBS_KS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_PBS_KS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_PBS_KS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_PBS_KS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_PBS_KS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_PBS_KS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_PBS_KS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_PBS_KS_GAUSSIAN_2M128; // KS PBS Gaussian // 2^-64 pub const TEST_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64; + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64; pub const TEST_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; pub const TEST_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64; + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64; pub const TEST_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64; + V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64; // 2^-128 pub const TEST_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M128; // PBS KS Gaussian pub const TEST_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; // KS PBS TUniform pub const TEST_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ClassicPBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; // MultiBit // CPU Gaussian pub const TEST_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: - MultiBitPBSParameters = V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; + MultiBitPBSParameters = V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: - MultiBitPBSParameters = V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64; + MultiBitPBSParameters = V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64; pub const TEST_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: - MultiBitPBSParameters = V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; + MultiBitPBSParameters = V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; pub const TEST_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: - MultiBitPBSParameters = V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64; + MultiBitPBSParameters = V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64; pub const TEST_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: - MultiBitPBSParameters = V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64; + MultiBitPBSParameters = V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64; pub const TEST_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: - MultiBitPBSParameters = V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; + MultiBitPBSParameters = V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; pub const TEST_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: - MultiBitPBSParameters = V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64; + MultiBitPBSParameters = V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64; // GPU Gaussian pub const TEST_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: - MultiBitPBSParameters = V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; + MultiBitPBSParameters = V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; pub const TEST_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: - MultiBitPBSParameters = V1_4_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64; + MultiBitPBSParameters = V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64; // GPU TUniform pub const TEST_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = - V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; // PKE ZK V1 pub const TEST_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1: CompactPublicKeyEncryptionParameters = - V1_4_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1; + V1_5_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1; // PKE ZK V2 pub const TEST_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: - CompactPublicKeyEncryptionParameters = V1_4_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + CompactPublicKeyEncryptionParameters = V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const TEST_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2: CompactPublicKeyEncryptionParameters = - V1_4_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2; + V1_5_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2; pub const TEST_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2: CompactPublicKeyEncryptionParameters = - V1_4_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2; + V1_5_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2; // KS pub const TEST_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128: - ShortintKeySwitchingParameters = V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128; + ShortintKeySwitchingParameters = V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128; pub const TEST_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: - ShortintKeySwitchingParameters = V1_4_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + ShortintKeySwitchingParameters = V1_5_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const TEST_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ShortintKeySwitchingParameters = - V1_4_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const TEST_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ShortintKeySwitchingParameters = - V1_4_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; // ZKV1 pub const TEST_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1: ShortintKeySwitchingParameters = - V1_4_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1; + V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1; // Compression pub const TEST_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: CompressionParameters = - V1_4_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const TEST_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: CompressionParameters = - V1_4_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; // KS32 PBS AP pub const TEST_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128: KeySwitch32PBSParameters = - V1_4_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128; + V1_5_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128; pub const TEST_PARAM_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: NoiseSquashingCompressionParameters = - V1_4_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; pub const TEST_PARAM_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: - NoiseSquashingParameters = V1_4_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + NoiseSquashingParameters = V1_5_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/mod.rs b/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/mod.rs new file mode 100644 index 000000000..d50af4d44 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/mod.rs @@ -0,0 +1,2 @@ +pub mod p_fail_2_minus_128; +pub mod p_fail_2_minus_64; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/p_fail_2_minus_128/ks_pbs.rs b/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/p_fail_2_minus_128/ks_pbs.rs new file mode 100644 index 000000000..da096f6e3 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/p_fail_2_minus_128/ks_pbs.rs @@ -0,0 +1,73 @@ +use crate::shortint::parameters::ClassicPBSParameters; +/// p-fail = 2^-128.298, algorithmic cost ~ 53, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_1_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.186, algorithmic cost ~ 64, 2-norm = 3 +pub const V1_5_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.536, algorithmic cost ~ 79, 2-norm = 7 +pub const V1_5_PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.103, algorithmic cost ~ 119, 2-norm = 15 +pub const V1_5_PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.607, algorithmic cost ~ 373, 2-norm = 31 +pub const V1_5_PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.068, algorithmic cost ~ 878, 2-norm = 63 +pub const V1_5_PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.147, algorithmic cost ~ 2675, 2-norm = 127 +pub const V1_5_PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.787, algorithmic cost ~ 14472, 2-norm = 255 +pub const V1_5_PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.219, algorithmic cost ~ 64, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_2_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_2_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.607, algorithmic cost ~ 79, 2-norm = 2 +pub const V1_5_PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.597, algorithmic cost ~ 110, 2-norm = 5 +pub const V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.639, algorithmic cost ~ 373, 2-norm = 10 +pub const V1_5_PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.338, algorithmic cost ~ 875, 2-norm = 21 +pub const V1_5_PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.045, algorithmic cost ~ 2662, 2-norm = 42 +pub const V1_5_PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-129.137, algorithmic cost ~ 11765, 2-norm = 85 +pub const V1_5_PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.664, algorithmic cost ~ 79, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_3_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_3_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.389, algorithmic cost ~ 110, 2-norm = 2 +pub const V1_5_PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.041, algorithmic cost ~ 281, 2-norm = 4 +pub const V1_5_PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.115, algorithmic cost ~ 874, 2-norm = 9 +pub const V1_5_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.022, algorithmic cost ~ 2104, 2-norm = 18 +pub const V1_5_PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.155, algorithmic cost ~ 11669, 2-norm = 36 +pub const V1_5_PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.636, algorithmic cost ~ 110, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_4_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_4_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.261, algorithmic cost ~ 260, 2-norm = 2 +pub const V1_5_PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.146, algorithmic cost ~ 874, 2-norm = 4 +pub const V1_5_PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.11, algorithmic cost ~ 2079, 2-norm = 8 +pub const V1_5_PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.731, algorithmic cost ~ 11659, 2-norm = 17 +pub const V1_5_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.453, algorithmic cost ~ 259, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_5_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_5_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.152, algorithmic cost ~ 874, 2-norm = 2 +pub const V1_5_PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.037, algorithmic cost ~ 2075, 2-norm = 4 +pub const V1_5_PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-129.155, algorithmic cost ~ 9046, 2-norm = 8 +pub const V1_5_PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.153, algorithmic cost ~ 874, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_6_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_6_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.12, algorithmic cost ~ 2075, 2-norm = 2 +pub const V1_5_PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-129.438, algorithmic cost ~ 8949, 2-norm = 4 +pub const V1_5_PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.14, algorithmic cost ~ 2075, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_7_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_7_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-130.375, algorithmic cost ~ 8932, 2-norm = 2 +pub const V1_5_PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-129.169, algorithmic cost ~ 8924, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_8_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_8_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/p_fail_2_minus_128/mod.rs b/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/p_fail_2_minus_128/mod.rs new file mode 100644 index 000000000..4e3b5c531 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/p_fail_2_minus_128/mod.rs @@ -0,0 +1,2 @@ +pub mod ks_pbs; +pub mod pbs_ks; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/p_fail_2_minus_128/pbs_ks.rs b/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/p_fail_2_minus_128/pbs_ks.rs new file mode 100644 index 000000000..ce30cf956 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/p_fail_2_minus_128/pbs_ks.rs @@ -0,0 +1,9 @@ +use crate::shortint::parameters::ClassicPBSParameters; +/// p-fail = 2^-140.214, algorithmic cost ~ 78, 2-norm = 3 +pub const V1_5_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_PBS_KS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_PBS_KS_GAUSSIAN_2M128; +/// p-fail = 2^-129.856, algorithmic cost ~ 130, 2-norm = 5 +pub const V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M128; +/// p-fail = 2^-277.205, algorithmic cost ~ 3355, 2-norm = 9 +pub const V1_5_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_PBS_KS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_PBS_KS_GAUSSIAN_2M128; +/// p-fail = 2^-273.265, algorithmic cost ~ 20401, 2-norm = 17 +pub const V1_5_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_PBS_KS_GAUSSIAN_2M128: ClassicPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_PBS_KS_GAUSSIAN_2M128; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/p_fail_2_minus_64/ks_pbs.rs b/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/p_fail_2_minus_64/ks_pbs.rs new file mode 100644 index 000000000..681fb2067 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/p_fail_2_minus_64/ks_pbs.rs @@ -0,0 +1,109 @@ +use crate::shortint::parameters::ClassicPBSParameters; +/// p-fail = 2^-64.093, algorithmic cost ~ 43, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_1_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_1_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.01, algorithmic cost ~ 60, 2-norm = 3 +pub const V1_5_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.471, algorithmic cost ~ 76, 2-norm = 7 +pub const V1_5_PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.178, algorithmic cost ~ 107, 2-norm = 15 +pub const V1_5_PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.077, algorithmic cost ~ 362, 2-norm = 31 +pub const V1_5_PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.195, algorithmic cost ~ 834, 2-norm = 63 +pub const V1_5_PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.119, algorithmic cost ~ 2519, 2-norm = 127 +pub const V1_5_PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.014, algorithmic cost ~ 7954, 2-norm = 255 +pub const V1_5_PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.017, algorithmic cost ~ 60, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_2_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_2_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.181, algorithmic cost ~ 76, 2-norm = 2 +pub const V1_5_PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.014, algorithmic cost ~ 106, 2-norm = 5 +pub const V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.085, algorithmic cost ~ 362, 2-norm = 10 +pub const V1_5_PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.137, algorithmic cost ~ 833, 2-norm = 21 +pub const V1_5_PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.01, algorithmic cost ~ 2023, 2-norm = 42 +pub const V1_5_PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.017, algorithmic cost ~ 7209, 2-norm = 85 +pub const V1_5_PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.194, algorithmic cost ~ 76, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_3_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_3_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.413, algorithmic cost ~ 106, 2-norm = 2 +pub const V1_5_PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.074, algorithmic cost ~ 253, 2-norm = 4 +pub const V1_5_PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.177, algorithmic cost ~ 833, 2-norm = 9 +pub const V1_5_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.075, algorithmic cost ~ 1936, 2-norm = 18 +pub const V1_5_PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.002, algorithmic cost ~ 5925, 2-norm = 36 +pub const V1_5_PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.471, algorithmic cost ~ 106, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_4_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_4_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.17, algorithmic cost ~ 249, 2-norm = 2 +pub const V1_5_PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.184, algorithmic cost ~ 833, 2-norm = 4 +pub const V1_5_PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.092, algorithmic cost ~ 1931, 2-norm = 8 +pub const V1_5_PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.014, algorithmic cost ~ 5893, 2-norm = 17 +pub const V1_5_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.128, algorithmic cost ~ 248, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_5_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_5_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.185, algorithmic cost ~ 833, 2-norm = 2 +pub const V1_5_PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.019, algorithmic cost ~ 1929, 2-norm = 4 +pub const V1_5_PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.016, algorithmic cost ~ 5888, 2-norm = 8 +pub const V1_5_PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.029, algorithmic cost ~ 586, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_6_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_6_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.039, algorithmic cost ~ 1929, 2-norm = 2 +pub const V1_5_PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.007, algorithmic cost ~ 4682, 2-norm = 4 +pub const V1_5_PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.044, algorithmic cost ~ 1929, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_7_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_7_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.035, algorithmic cost ~ 4592, 2-norm = 2 +pub const V1_5_PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.001, algorithmic cost ~ 4580, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_8_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_8_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/p_fail_2_minus_64/mod.rs b/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/p_fail_2_minus_64/mod.rs new file mode 100644 index 000000000..4e3b5c531 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/p_fail_2_minus_64/mod.rs @@ -0,0 +1,2 @@ +pub mod ks_pbs; +pub mod pbs_ks; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/p_fail_2_minus_64/pbs_ks.rs b/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/p_fail_2_minus_64/pbs_ks.rs new file mode 100644 index 000000000..6bb7644d6 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/gaussian/p_fail_2_minus_64/pbs_ks.rs @@ -0,0 +1,13 @@ +use crate::shortint::parameters::ClassicPBSParameters; +/// p-fail = 2^-66.829, algorithmic cost ~ 74, 2-norm = 3 +pub const V1_5_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_PBS_KS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_PBS_KS_GAUSSIAN_2M64; +/// p-fail = 2^-64.438, algorithmic cost ~ 126, 2-norm = 5 +pub const V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M64; +/// p-fail = 2^-141.376, algorithmic cost ~ 3355, 2-norm = 9 +pub const V1_5_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_PBS_KS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_PBS_KS_GAUSSIAN_2M64; +/// p-fail = 2^-140.367, algorithmic cost ~ 20401, 2-norm = 17 +pub const V1_5_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_PBS_KS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_PBS_KS_GAUSSIAN_2M64; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/mod.rs b/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/mod.rs new file mode 100644 index 000000000..1e195d938 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/compact_pk/mod.rs @@ -0,0 +1 @@ +pub mod gaussian; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/gaussian/mod.rs b/tfhe/src/shortint/parameters/v1_5/classic/gaussian/mod.rs new file mode 100644 index 000000000..372442ce7 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/gaussian/mod.rs @@ -0,0 +1,3 @@ +pub mod p_fail_2_minus_128; +pub mod p_fail_2_minus_40; +pub mod p_fail_2_minus_64; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_128/ks_pbs.rs b/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_128/ks_pbs.rs new file mode 100644 index 000000000..63d53def4 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_128/ks_pbs.rs @@ -0,0 +1,109 @@ +use crate::shortint::parameters::ClassicPBSParameters; +/// p-fail = 2^-128.603, algorithmic cost ~ 40, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.186, algorithmic cost ~ 64, 2-norm = 3 +pub const V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.536, algorithmic cost ~ 79, 2-norm = 7 +pub const V1_5_PARAM_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.103, algorithmic cost ~ 119, 2-norm = 15 +pub const V1_5_PARAM_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.607, algorithmic cost ~ 373, 2-norm = 31 +pub const V1_5_PARAM_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.068, algorithmic cost ~ 878, 2-norm = 63 +pub const V1_5_PARAM_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.147, algorithmic cost ~ 2675, 2-norm = 127 +pub const V1_5_PARAM_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.787, algorithmic cost ~ 14472, 2-norm = 255 +pub const V1_5_PARAM_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.285, algorithmic cost ~ 49, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.607, algorithmic cost ~ 79, 2-norm = 2 +pub const V1_5_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.597, algorithmic cost ~ 110, 2-norm = 5 +pub const V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.639, algorithmic cost ~ 373, 2-norm = 10 +pub const V1_5_PARAM_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.338, algorithmic cost ~ 875, 2-norm = 21 +pub const V1_5_PARAM_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.045, algorithmic cost ~ 2662, 2-norm = 42 +pub const V1_5_PARAM_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-129.137, algorithmic cost ~ 11765, 2-norm = 85 +pub const V1_5_PARAM_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.664, algorithmic cost ~ 79, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.389, algorithmic cost ~ 110, 2-norm = 2 +pub const V1_5_PARAM_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.041, algorithmic cost ~ 281, 2-norm = 4 +pub const V1_5_PARAM_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.115, algorithmic cost ~ 874, 2-norm = 9 +pub const V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.022, algorithmic cost ~ 2104, 2-norm = 18 +pub const V1_5_PARAM_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.155, algorithmic cost ~ 11669, 2-norm = 36 +pub const V1_5_PARAM_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.636, algorithmic cost ~ 110, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.261, algorithmic cost ~ 260, 2-norm = 2 +pub const V1_5_PARAM_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.146, algorithmic cost ~ 874, 2-norm = 4 +pub const V1_5_PARAM_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.11, algorithmic cost ~ 2079, 2-norm = 8 +pub const V1_5_PARAM_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.731, algorithmic cost ~ 11659, 2-norm = 17 +pub const V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.453, algorithmic cost ~ 259, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.152, algorithmic cost ~ 874, 2-norm = 2 +pub const V1_5_PARAM_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.037, algorithmic cost ~ 2075, 2-norm = 4 +pub const V1_5_PARAM_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-129.155, algorithmic cost ~ 9046, 2-norm = 8 +pub const V1_5_PARAM_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.153, algorithmic cost ~ 874, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.12, algorithmic cost ~ 2075, 2-norm = 2 +pub const V1_5_PARAM_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-129.438, algorithmic cost ~ 8949, 2-norm = 4 +pub const V1_5_PARAM_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.14, algorithmic cost ~ 2075, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-130.375, algorithmic cost ~ 8932, 2-norm = 2 +pub const V1_5_PARAM_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-129.169, algorithmic cost ~ 8924, 2-norm = 1 +pub const V1_5_PARAM_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M128; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_128/mod.rs b/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_128/mod.rs new file mode 100644 index 000000000..4e3b5c531 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_128/mod.rs @@ -0,0 +1,2 @@ +pub mod ks_pbs; +pub mod pbs_ks; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_128/pbs_ks.rs b/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_128/pbs_ks.rs new file mode 100644 index 000000000..7034b7695 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_128/pbs_ks.rs @@ -0,0 +1,13 @@ +use crate::shortint::parameters::ClassicPBSParameters; +/// p-fail = 2^-128.4, algorithmic cost ~ 70, 2-norm = 3 +pub const V1_5_PARAM_MESSAGE_1_CARRY_1_PBS_KS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_1_PBS_KS_GAUSSIAN_2M128; +/// p-fail = 2^-128.05, algorithmic cost ~ 128, 2-norm = 5 +pub const V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; +/// p-fail = 2^-128.729, algorithmic cost ~ 2030, 2-norm = 9 +pub const V1_5_PARAM_MESSAGE_3_CARRY_3_PBS_KS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_3_CARRY_3_PBS_KS_GAUSSIAN_2M128; +/// p-fail = 2^-129.855, algorithmic cost ~ 13785, 2-norm = 17 +pub const V1_5_PARAM_MESSAGE_4_CARRY_4_PBS_KS_GAUSSIAN_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_4_CARRY_4_PBS_KS_GAUSSIAN_2M128; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_40/ks_pbs.rs b/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_40/ks_pbs.rs new file mode 100644 index 000000000..8c5f33bd7 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_40/ks_pbs.rs @@ -0,0 +1,13 @@ +use crate::shortint::parameters::ClassicPBSParameters; +/// p-fail = 2^-40.004, algorithmic cost ~ 44, 2-norm = 3 +pub const V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.489, algorithmic cost ~ 101, 2-norm = 5 +pub const V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.298, algorithmic cost ~ 788, 2-norm = 9 +pub const V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.107, algorithmic cost ~ 4095, 2-norm = 17 +pub const V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_40/mod.rs b/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_40/mod.rs new file mode 100644 index 000000000..cf32dbe64 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_40/mod.rs @@ -0,0 +1 @@ +pub mod ks_pbs; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_64/ks_pbs.rs b/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_64/ks_pbs.rs new file mode 100644 index 000000000..3036936a5 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_64/ks_pbs.rs @@ -0,0 +1,13 @@ +use crate::shortint::parameters::ClassicPBSParameters; +/// p-fail = 2^-64.01, algorithmic cost ~ 60, 2-norm = 3 +pub const V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.014, algorithmic cost ~ 106, 2-norm = 5 +pub const V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.177, algorithmic cost ~ 833, 2-norm = 9 +pub const V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.014, algorithmic cost ~ 5893, 2-norm = 17 +pub const V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_64/mod.rs b/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_64/mod.rs new file mode 100644 index 000000000..cf32dbe64 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/gaussian/p_fail_2_minus_64/mod.rs @@ -0,0 +1 @@ +pub mod ks_pbs; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/mod.rs b/tfhe/src/shortint/parameters/v1_5/classic/mod.rs new file mode 100644 index 000000000..6a760df77 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/mod.rs @@ -0,0 +1,3 @@ +pub mod compact_pk; +pub mod gaussian; +pub mod tuniform; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/tuniform/mod.rs b/tfhe/src/shortint/parameters/v1_5/classic/tuniform/mod.rs new file mode 100644 index 000000000..372442ce7 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/tuniform/mod.rs @@ -0,0 +1,3 @@ +pub mod p_fail_2_minus_128; +pub mod p_fail_2_minus_40; +pub mod p_fail_2_minus_64; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/tuniform/p_fail_2_minus_128/ks_pbs.rs b/tfhe/src/shortint/parameters/v1_5/classic/tuniform/p_fail_2_minus_128/ks_pbs.rs new file mode 100644 index 000000000..dd68a898f --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/tuniform/p_fail_2_minus_128/ks_pbs.rs @@ -0,0 +1,13 @@ +use crate::shortint::parameters::ClassicPBSParameters; +/// p-fail = 2^-144.322, algorithmic cost ~ 67, 2-norm = 3 +pub const V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-129.581, algorithmic cost ~ 113, 2-norm = 5 +pub const V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-128.992, algorithmic cost ~ 900, 2-norm = 9 +pub const V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-141.559, algorithmic cost ~ 11860, 2-norm = 17 +pub const V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128: ClassicPBSParameters = + crate::shortint::parameters::v1_4::V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/tuniform/p_fail_2_minus_128/mod.rs b/tfhe/src/shortint/parameters/v1_5/classic/tuniform/p_fail_2_minus_128/mod.rs new file mode 100644 index 000000000..cf32dbe64 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/tuniform/p_fail_2_minus_128/mod.rs @@ -0,0 +1 @@ +pub mod ks_pbs; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/tuniform/p_fail_2_minus_40/ks_pbs.rs b/tfhe/src/shortint/parameters/v1_5/classic/tuniform/p_fail_2_minus_40/ks_pbs.rs new file mode 100644 index 000000000..d8d772388 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/tuniform/p_fail_2_minus_40/ks_pbs.rs @@ -0,0 +1,13 @@ +use crate::shortint::parameters::ClassicPBSParameters; +/// p-fail = 2^-40.525, algorithmic cost ~ 49, 2-norm = 3 +pub const V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-57.015, algorithmic cost ~ 107, 2-norm = 5 +pub const V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-50.002, algorithmic cost ~ 816, 2-norm = 9 +pub const V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-41.009, algorithmic cost ~ 4165, 2-norm = 17 +pub const V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/tuniform/p_fail_2_minus_40/mod.rs b/tfhe/src/shortint/parameters/v1_5/classic/tuniform/p_fail_2_minus_40/mod.rs new file mode 100644 index 000000000..cf32dbe64 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/tuniform/p_fail_2_minus_40/mod.rs @@ -0,0 +1 @@ +pub mod ks_pbs; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/tuniform/p_fail_2_minus_64/ks_pbs.rs b/tfhe/src/shortint/parameters/v1_5/classic/tuniform/p_fail_2_minus_64/ks_pbs.rs new file mode 100644 index 000000000..e0ba92c47 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/tuniform/p_fail_2_minus_64/ks_pbs.rs @@ -0,0 +1,13 @@ +use crate::shortint::parameters::ClassicPBSParameters; +/// p-fail = 2^-72.226, algorithmic cost ~ 64, 2-norm = 3 +pub const V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-72.178, algorithmic cost ~ 112, 2-norm = 5 +pub const V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-64.454, algorithmic cost ~ 850, 2-norm = 9 +pub const V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-64.037, algorithmic cost ~ 6737, 2-norm = 17 +pub const V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64: ClassicPBSParameters = + crate::shortint::parameters::v1_1::V1_1_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64; diff --git a/tfhe/src/shortint/parameters/v1_5/classic/tuniform/p_fail_2_minus_64/mod.rs b/tfhe/src/shortint/parameters/v1_5/classic/tuniform/p_fail_2_minus_64/mod.rs new file mode 100644 index 000000000..cf32dbe64 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/classic/tuniform/p_fail_2_minus_64/mod.rs @@ -0,0 +1 @@ +pub mod ks_pbs; diff --git a/tfhe/src/shortint/parameters/v1_5/compact_public_key_only/mod.rs b/tfhe/src/shortint/parameters/v1_5/compact_public_key_only/mod.rs new file mode 100644 index 000000000..244d1d4e8 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/compact_public_key_only/mod.rs @@ -0,0 +1 @@ +pub mod p_fail_2_minus_128; diff --git a/tfhe/src/shortint/parameters/v1_5/compact_public_key_only/p_fail_2_minus_128/ks_pbs.rs b/tfhe/src/shortint/parameters/v1_5/compact_public_key_only/p_fail_2_minus_128/ks_pbs.rs new file mode 100644 index 000000000..5989d90f2 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/compact_public_key_only/p_fail_2_minus_128/ks_pbs.rs @@ -0,0 +1,66 @@ +use crate::shortint::parameters::{ + CarryModulus, CiphertextModulus, CompactCiphertextListExpansionKind, + CompactPublicKeyEncryptionParameters, DynamicDistribution, LweDimension, MessageModulus, + SupportedCompactPkeZkScheme, +}; + +/// This parameter set should be used when doing zk proof of public key encryption +pub const V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: + CompactPublicKeyEncryptionParameters = + V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2; + +pub const V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2: + CompactPublicKeyEncryptionParameters = + V1_5_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2; + +pub const V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1: + CompactPublicKeyEncryptionParameters = + V1_5_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1; + +pub const V1_5_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2: + CompactPublicKeyEncryptionParameters = CompactPublicKeyEncryptionParameters { + encryption_lwe_dimension: LweDimension(2048), + encryption_noise_distribution: DynamicDistribution::new_t_uniform(17), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(4), + ciphertext_modulus: CiphertextModulus::new_native(), + expansion_kind: CompactCiphertextListExpansionKind::RequiresCasting, + zk_scheme: SupportedCompactPkeZkScheme::V2, +} +.validate(); + +pub const V1_5_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2: + CompactPublicKeyEncryptionParameters = CompactPublicKeyEncryptionParameters { + encryption_lwe_dimension: LweDimension(2048), + encryption_noise_distribution: DynamicDistribution::new_t_uniform(17), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(4), + ciphertext_modulus: CiphertextModulus::new_native(), + expansion_kind: CompactCiphertextListExpansionKind::RequiresCasting, + zk_scheme: SupportedCompactPkeZkScheme::V2, +} +.validate(); + +pub const V1_5_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1: + CompactPublicKeyEncryptionParameters = CompactPublicKeyEncryptionParameters { + encryption_lwe_dimension: LweDimension(1024), + encryption_noise_distribution: DynamicDistribution::new_t_uniform(43), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(4), + ciphertext_modulus: CiphertextModulus::new_native(), + expansion_kind: CompactCiphertextListExpansionKind::RequiresCasting, + zk_scheme: SupportedCompactPkeZkScheme::V1, +} +.validate(); + +pub const V1_5_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1: + CompactPublicKeyEncryptionParameters = CompactPublicKeyEncryptionParameters { + encryption_lwe_dimension: LweDimension(2048), + encryption_noise_distribution: DynamicDistribution::new_t_uniform(17), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(4), + ciphertext_modulus: CiphertextModulus::new_native(), + expansion_kind: CompactCiphertextListExpansionKind::RequiresCasting, + zk_scheme: SupportedCompactPkeZkScheme::V1, +} +.validate(); diff --git a/tfhe/src/shortint/parameters/v1_5/compact_public_key_only/p_fail_2_minus_128/mod.rs b/tfhe/src/shortint/parameters/v1_5/compact_public_key_only/p_fail_2_minus_128/mod.rs new file mode 100644 index 000000000..cf32dbe64 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/compact_public_key_only/p_fail_2_minus_128/mod.rs @@ -0,0 +1 @@ +pub mod ks_pbs; diff --git a/tfhe/src/shortint/parameters/v1_5/hpu.rs b/tfhe/src/shortint/parameters/v1_5/hpu.rs new file mode 100644 index 000000000..e93f1396b --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/hpu.rs @@ -0,0 +1,75 @@ +use crate::core_crypto::prelude::DynamicDistribution; +use crate::shortint::parameters::{ + CiphertextModulus32, KeySwitch32PBSParameters, ModulusSwitchType, StandardDev, +}; +use crate::shortint::prelude::{ + DecompositionBaseLog, DecompositionLevelCount, GlweDimension, LweDimension, PolynomialSize, +}; +use crate::shortint::{CarryModulus, CiphertextModulus, MaxNoiseLevel, MessageModulus}; + +// Gaussian parameters set with pfail 2^-64 +pub const V1_5_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_GAUSSIAN_2M64: KeySwitch32PBSParameters = + KeySwitch32PBSParameters { + lwe_dimension: LweDimension(804), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 5.963599673924788e-6, + )), + glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 2.8452674713391114e-15, + )), + pbs_base_log: DecompositionBaseLog(23), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(8), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(5), + log2_p_fail: -64.0, + post_keyswitch_ciphertext_modulus: CiphertextModulus32::new(1 << 21), + ciphertext_modulus: CiphertextModulus::new_native(), + modulus_switch_noise_reduction_params: ModulusSwitchType::Standard, + }; + +// TUniform parameters set with pfail 2^-64 +pub const V1_5_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M64: KeySwitch32PBSParameters = + KeySwitch32PBSParameters { + lwe_dimension: LweDimension(839), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_t_uniform(4), + glwe_noise_distribution: DynamicDistribution::new_t_uniform(17), + pbs_base_log: DecompositionBaseLog(23), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(7), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(5), + log2_p_fail: -64.0, + post_keyswitch_ciphertext_modulus: CiphertextModulus32::new(1 << 21), + ciphertext_modulus: CiphertextModulus::new_native(), + modulus_switch_noise_reduction_params: ModulusSwitchType::Standard, + }; + +// TUniform parameters set with pfail 2^-128 +pub const V1_5_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128: KeySwitch32PBSParameters = + KeySwitch32PBSParameters { + lwe_dimension: LweDimension(879), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_t_uniform(3), + glwe_noise_distribution: DynamicDistribution::new_t_uniform(17), + pbs_base_log: DecompositionBaseLog(23), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(2), + ks_level: DecompositionLevelCount(8), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(5), + log2_p_fail: -128.0, + post_keyswitch_ciphertext_modulus: CiphertextModulus32::new(1 << 21), + ciphertext_modulus: CiphertextModulus::new_native(), + modulus_switch_noise_reduction_params: ModulusSwitchType::CenteredMeanNoiseReduction, + }; diff --git a/tfhe/src/shortint/parameters/v1_5/key_switching/mod.rs b/tfhe/src/shortint/parameters/v1_5/key_switching/mod.rs new file mode 100644 index 000000000..244d1d4e8 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/key_switching/mod.rs @@ -0,0 +1 @@ +pub mod p_fail_2_minus_128; diff --git a/tfhe/src/shortint/parameters/v1_5/key_switching/p_fail_2_minus_128/ks_pbs.rs b/tfhe/src/shortint/parameters/v1_5/key_switching/p_fail_2_minus_128/ks_pbs.rs new file mode 100644 index 000000000..9b1361d17 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/key_switching/p_fail_2_minus_128/ks_pbs.rs @@ -0,0 +1,67 @@ +use crate::shortint::parameters::{ + DecompositionBaseLog, DecompositionLevelCount, EncryptionKeyChoice, + ShortintKeySwitchingParameters, +}; + +pub const V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128: + ShortintKeySwitchingParameters = ShortintKeySwitchingParameters { + ks_base_log: DecompositionBaseLog(3), + ks_level: DecompositionLevelCount(5), + destination_key: EncryptionKeyChoice::Small, +}; + +/// Parameter set to keyswitch between keys under the same 2_2 parameter set +pub const V1_5_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: + ShortintKeySwitchingParameters = ShortintKeySwitchingParameters { + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + destination_key: EncryptionKeyChoice::Small, +}; + +/// Parameters to keyswitch from input PKE 2_2 TUniform parameters to 2_2 KS_PBS compute parameters +/// arriving under the small key, requires a PBS to get to the big key +pub const V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: + ShortintKeySwitchingParameters = + V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2; + +pub const V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2: + ShortintKeySwitchingParameters = ShortintKeySwitchingParameters { + ks_level: DecompositionLevelCount(4), + ks_base_log: DecompositionBaseLog(4), + destination_key: EncryptionKeyChoice::Small, +}; + +/// Parameters to keyswitch from input PKE 2_2 TUniform parameters to 2_2 KS_PBS compute parameters +/// arriving under the big key, requires a KS + PBS to get to the big key +pub const V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: + ShortintKeySwitchingParameters = + V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2; + +pub const V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2: + ShortintKeySwitchingParameters = ShortintKeySwitchingParameters { + ks_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(24), + destination_key: EncryptionKeyChoice::Big, +}; + +pub const V1_5_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1: + ShortintKeySwitchingParameters = + V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1; + +/// Parameters to keyswitch from input PKE 2_2 TUniform parameters to 2_2 KS_PBS compute parameters +/// arriving under the small key, requires a PBS to get to the big key +pub const V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1: + ShortintKeySwitchingParameters = ShortintKeySwitchingParameters { + ks_level: DecompositionLevelCount(4), + ks_base_log: DecompositionBaseLog(4), + destination_key: EncryptionKeyChoice::Small, +}; + +/// Parameters to keyswitch from input PKE 2_2 TUniform parameters to 2_2 KS_PBS compute parameters +/// arriving under the big key, requires a KS + PBS to get to the big key +pub const V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1: + ShortintKeySwitchingParameters = ShortintKeySwitchingParameters { + ks_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(24), + destination_key: EncryptionKeyChoice::Big, +}; diff --git a/tfhe/src/shortint/parameters/v1_5/key_switching/p_fail_2_minus_128/ks_pbs_gpu.rs b/tfhe/src/shortint/parameters/v1_5/key_switching/p_fail_2_minus_128/ks_pbs_gpu.rs new file mode 100644 index 000000000..17cbe59af --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/key_switching/p_fail_2_minus_128/ks_pbs_gpu.rs @@ -0,0 +1,5 @@ +use crate::shortint::parameters::ShortintKeySwitchingParameters; + +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ShortintKeySwitchingParameters = crate::shortint::parameters::v1_3::key_switching::p_fail_2_minus_128::ks_pbs_gpu::V1_3_PARAM_MULTI_BIT_GROUP_4_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; + +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ShortintKeySwitchingParameters = crate::shortint::parameters::v1_3::key_switching::p_fail_2_minus_128::ks_pbs_gpu::V1_3_PARAM_MULTI_BIT_GROUP_4_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; diff --git a/tfhe/src/shortint/parameters/v1_5/key_switching/p_fail_2_minus_128/mod.rs b/tfhe/src/shortint/parameters/v1_5/key_switching/p_fail_2_minus_128/mod.rs new file mode 100644 index 000000000..c5bc259b2 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/key_switching/p_fail_2_minus_128/mod.rs @@ -0,0 +1,2 @@ +pub mod ks_pbs; +pub mod ks_pbs_gpu; diff --git a/tfhe/src/shortint/parameters/v1_5/ks32/mod.rs b/tfhe/src/shortint/parameters/v1_5/ks32/mod.rs new file mode 100644 index 000000000..a418a03c2 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/ks32/mod.rs @@ -0,0 +1 @@ +pub mod tuniform; diff --git a/tfhe/src/shortint/parameters/v1_5/ks32/tuniform/mod.rs b/tfhe/src/shortint/parameters/v1_5/ks32/tuniform/mod.rs new file mode 100644 index 000000000..244d1d4e8 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/ks32/tuniform/mod.rs @@ -0,0 +1 @@ +pub mod p_fail_2_minus_128; diff --git a/tfhe/src/shortint/parameters/v1_5/ks32/tuniform/p_fail_2_minus_128/ks_pbs.rs b/tfhe/src/shortint/parameters/v1_5/ks32/tuniform/p_fail_2_minus_128/ks_pbs.rs new file mode 100644 index 000000000..9c7aacec1 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/ks32/tuniform/p_fail_2_minus_128/ks_pbs.rs @@ -0,0 +1,26 @@ +use crate::shortint::parameters::{ + CarryModulus, CiphertextModulus, CiphertextModulus32, DecompositionBaseLog, + DecompositionLevelCount, DynamicDistribution, GlweDimension, KeySwitch32PBSParameters, + LweDimension, MaxNoiseLevel, MessageModulus, ModulusSwitchType, PolynomialSize, +}; + +/// p-fail = 2^-129.581, algorithmic cost ~ 113, 2-norm = 5 +pub const V1_5_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128: KeySwitch32PBSParameters = + KeySwitch32PBSParameters { + lwe_dimension: LweDimension(918), + glwe_dimension: GlweDimension(1), + polynomial_size: PolynomialSize(2048), + lwe_noise_distribution: DynamicDistribution::new_t_uniform(13), + glwe_noise_distribution: DynamicDistribution::new_t_uniform(17), + pbs_base_log: DecompositionBaseLog(23), + pbs_level: DecompositionLevelCount(1), + ks_base_log: DecompositionBaseLog(4), + ks_level: DecompositionLevelCount(4), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(4), + max_noise_level: MaxNoiseLevel::new(5), + log2_p_fail: -129.581, + post_keyswitch_ciphertext_modulus: CiphertextModulus32::new_native(), + ciphertext_modulus: CiphertextModulus::new_native(), + modulus_switch_noise_reduction_params: ModulusSwitchType::CenteredMeanNoiseReduction, + }; diff --git a/tfhe/src/shortint/parameters/v1_5/ks32/tuniform/p_fail_2_minus_128/mod.rs b/tfhe/src/shortint/parameters/v1_5/ks32/tuniform/p_fail_2_minus_128/mod.rs new file mode 100644 index 000000000..cf32dbe64 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/ks32/tuniform/p_fail_2_minus_128/mod.rs @@ -0,0 +1 @@ +pub mod ks_pbs; diff --git a/tfhe/src/shortint/parameters/v1_5/list_compression/mod.rs b/tfhe/src/shortint/parameters/v1_5/list_compression/mod.rs new file mode 100644 index 000000000..d50af4d44 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/list_compression/mod.rs @@ -0,0 +1,2 @@ +pub mod p_fail_2_minus_128; +pub mod p_fail_2_minus_64; diff --git a/tfhe/src/shortint/parameters/v1_5/list_compression/p_fail_2_minus_128/mod.rs b/tfhe/src/shortint/parameters/v1_5/list_compression/p_fail_2_minus_128/mod.rs new file mode 100644 index 000000000..4acaf5206 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/list_compression/p_fail_2_minus_128/mod.rs @@ -0,0 +1,64 @@ +use crate::shortint::parameters::{ + CiphertextModulusLog, CompressionParameters, DecompositionBaseLog, DecompositionLevelCount, + DynamicDistribution, GlweDimension, LweCiphertextCount, PolynomialSize, StandardDev, +}; + +/// p-fail = 2^-129.275, algorithmic cost ~ 41458 +pub const V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: CompressionParameters = + CompressionParameters { + br_level: DecompositionLevelCount(1), + br_base_log: DecompositionBaseLog(23), + packing_ks_level: DecompositionLevelCount(3), + packing_ks_base_log: DecompositionBaseLog(4), + packing_ks_polynomial_size: PolynomialSize(256), + packing_ks_glwe_dimension: GlweDimension(4), + lwe_per_glwe: LweCiphertextCount(256), + storage_log_modulus: CiphertextModulusLog(12), + packing_ks_key_noise_distribution: DynamicDistribution::new_t_uniform(43), + }; + +/// p-fail = 2^-129.275, algorithmic cost ~ 41458 +pub const V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: + CompressionParameters = CompressionParameters { + br_level: DecompositionLevelCount(1), + br_base_log: DecompositionBaseLog(23), + packing_ks_level: DecompositionLevelCount(3), + packing_ks_base_log: DecompositionBaseLog(4), + packing_ks_polynomial_size: PolynomialSize(256), + packing_ks_glwe_dimension: GlweDimension(4), + lwe_per_glwe: LweCiphertextCount(256), + storage_log_modulus: CiphertextModulusLog(12), + packing_ks_key_noise_distribution: DynamicDistribution::new_t_uniform(43), +}; + +/// p-fail = 2^-128.218, algorithmic cost ~ 42199 +pub const V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: CompressionParameters = + CompressionParameters { + br_level: DecompositionLevelCount(1), + br_base_log: DecompositionBaseLog(23), + packing_ks_level: DecompositionLevelCount(2), + packing_ks_base_log: DecompositionBaseLog(6), + packing_ks_polynomial_size: PolynomialSize(256), + packing_ks_glwe_dimension: GlweDimension(4), + lwe_per_glwe: LweCiphertextCount(256), + storage_log_modulus: CiphertextModulusLog(12), + packing_ks_key_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev( + StandardDev(1.339775301998614e-07), + ), + }; + +/// p-fail = 2^-128.218, algorithmic cost ~ 42199 +pub const V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: + CompressionParameters = CompressionParameters { + br_level: DecompositionLevelCount(1), + br_base_log: DecompositionBaseLog(23), + packing_ks_level: DecompositionLevelCount(2), + packing_ks_base_log: DecompositionBaseLog(6), + packing_ks_polynomial_size: PolynomialSize(256), + packing_ks_glwe_dimension: GlweDimension(4), + lwe_per_glwe: LweCiphertextCount(256), + storage_log_modulus: CiphertextModulusLog(12), + packing_ks_key_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.339775301998614e-07, + )), +}; diff --git a/tfhe/src/shortint/parameters/v1_5/list_compression/p_fail_2_minus_64/mod.rs b/tfhe/src/shortint/parameters/v1_5/list_compression/p_fail_2_minus_64/mod.rs new file mode 100644 index 000000000..4fbf81c08 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/list_compression/p_fail_2_minus_64/mod.rs @@ -0,0 +1,64 @@ +use crate::shortint::parameters::{ + CiphertextModulusLog, CompressionParameters, DecompositionBaseLog, DecompositionLevelCount, + DynamicDistribution, GlweDimension, LweCiphertextCount, PolynomialSize, StandardDev, +}; + +/// p-fail = 2^-72.052, algorithmic cost ~ 42700 +pub const V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64: CompressionParameters = + CompressionParameters { + br_level: DecompositionLevelCount(1), + br_base_log: DecompositionBaseLog(23), + packing_ks_level: DecompositionLevelCount(2), + packing_ks_base_log: DecompositionBaseLog(6), + packing_ks_polynomial_size: PolynomialSize(256), + packing_ks_glwe_dimension: GlweDimension(4), + lwe_per_glwe: LweCiphertextCount(256), + storage_log_modulus: CiphertextModulusLog(12), + packing_ks_key_noise_distribution: DynamicDistribution::new_t_uniform(43), + }; + +/// p-fail = 2^-72.052, algorithmic cost ~ 42700 +pub const V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64: + CompressionParameters = CompressionParameters { + br_level: DecompositionLevelCount(1), + br_base_log: DecompositionBaseLog(23), + packing_ks_level: DecompositionLevelCount(2), + packing_ks_base_log: DecompositionBaseLog(6), + packing_ks_polynomial_size: PolynomialSize(256), + packing_ks_glwe_dimension: GlweDimension(4), + lwe_per_glwe: LweCiphertextCount(256), + storage_log_modulus: CiphertextModulusLog(12), + packing_ks_key_noise_distribution: DynamicDistribution::new_t_uniform(43), +}; + +/// p-fail = 2^-64.174, algorithmic cost ~ 58234 +pub const V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: CompressionParameters = + CompressionParameters { + br_level: DecompositionLevelCount(2), + br_base_log: DecompositionBaseLog(15), + packing_ks_level: DecompositionLevelCount(2), + packing_ks_base_log: DecompositionBaseLog(6), + packing_ks_polynomial_size: PolynomialSize(256), + packing_ks_glwe_dimension: GlweDimension(4), + lwe_per_glwe: LweCiphertextCount(256), + storage_log_modulus: CiphertextModulusLog(12), + packing_ks_key_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev( + StandardDev(1.339775301998614e-07), + ), + }; + +/// p-fail = 2^-64.174, algorithmic cost ~ 58234 +pub const V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: + CompressionParameters = CompressionParameters { + br_level: DecompositionLevelCount(1), + br_base_log: DecompositionBaseLog(23), + packing_ks_level: DecompositionLevelCount(2), + packing_ks_base_log: DecompositionBaseLog(6), + packing_ks_polynomial_size: PolynomialSize(256), + packing_ks_glwe_dimension: GlweDimension(4), + lwe_per_glwe: LweCiphertextCount(256), + storage_log_modulus: CiphertextModulusLog(12), + packing_ks_key_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev( + 1.339775301998614e-07, + )), +}; diff --git a/tfhe/src/shortint/parameters/v1_5/meta/cpu.rs b/tfhe/src/shortint/parameters/v1_5/meta/cpu.rs new file mode 100644 index 000000000..5ba880307 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/meta/cpu.rs @@ -0,0 +1,1191 @@ +use super::super::super::meta::{DedicatedCompactPublicKeyParameters, MetaParameters}; +use super::super::classic::gaussian::p_fail_2_minus_128::ks_pbs::*; +use super::super::classic::gaussian::p_fail_2_minus_40::ks_pbs::*; +use super::super::classic::gaussian::p_fail_2_minus_64::ks_pbs::*; +use super::super::classic::tuniform::p_fail_2_minus_128::ks_pbs::*; +use super::super::classic::tuniform::p_fail_2_minus_40::ks_pbs::*; +use super::super::classic::tuniform::p_fail_2_minus_64::ks_pbs::*; +use super::super::compact_public_key_only::p_fail_2_minus_128::ks_pbs::*; +use super::super::key_switching::p_fail_2_minus_128::ks_pbs::*; +use super::super::ks32::tuniform::p_fail_2_minus_128::ks_pbs::*; +use super::super::list_compression::p_fail_2_minus_128::*; +use super::super::list_compression::p_fail_2_minus_64::*; +use super::super::multi_bit::gaussian::p_fail_2_minus_128::ks_pbs::*; +use super::super::multi_bit::gaussian::p_fail_2_minus_40::ks_pbs::*; +use super::super::multi_bit::gaussian::p_fail_2_minus_64::ks_pbs::*; +use super::super::multi_bit::tuniform::p_fail_2_minus_128::ks_pbs::*; +use super::super::multi_bit::tuniform::p_fail_2_minus_40::ks_pbs::*; +use super::super::multi_bit::tuniform::p_fail_2_minus_64::ks_pbs::*; +use super::super::noise_squashing::p_fail_2_minus_128::*; +use crate::shortint::parameters::{Backend, MetaNoiseSquashingParameters}; +use crate::shortint::{AtomicPatternParameters, PBSParameters}; + +pub const V1_5_META_PARAM_CPU_1_1_KS_PBS_GAUSSIAN_2M40: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_2_2_KS_PBS_GAUSSIAN_2M40: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_3_3_KS_PBS_GAUSSIAN_2M40: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_4_4_KS_PBS_GAUSSIAN_2M40: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_1_1_KS_PBS_GAUSSIAN_2M64: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_2_2_KS_PBS_GAUSSIAN_2M64: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: Some(V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64), + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_3_3_KS_PBS_GAUSSIAN_2M64: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_4_4_KS_PBS_GAUSSIAN_2M64: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_1_1_KS_PBS_GAUSSIAN_2M128: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_2_2_KS_PBS_GAUSSIAN_2M128: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: Some(V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128), + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_3_3_KS_PBS_GAUSSIAN_2M128: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_4_4_KS_PBS_GAUSSIAN_2M128: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_1_1_KS_PBS_TUNIFORM_2M40: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_2_2_KS_PBS_TUNIFORM_2M40: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_3_3_KS_PBS_TUNIFORM_2M40: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_4_4_KS_PBS_TUNIFORM_2M40: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_1_1_KS_PBS_TUNIFORM_2M64: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_2_2_KS_PBS_TUNIFORM_2M64: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: Some(V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64), + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_3_3_KS_PBS_TUNIFORM_2M64: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_4_4_KS_PBS_TUNIFORM_2M64: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_1_1_KS_PBS_TUNIFORM_2M128: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_3_3_KS_PBS_TUNIFORM_2M128: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_4_4_KS_PBS_TUNIFORM_2M128: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_CPU_2_2_KS32_PBS_TUNIFORM_2M128: MetaParameters = MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::KeySwitch32( + V1_5_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128, + ), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, +}; + +pub const V1_5_META_PARAM_CPU_2_2_KS_PBS_PKE_TO_SMALL_ZKV2_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: Some(DedicatedCompactPublicKeyParameters { + pke_params: V1_5_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + ksk_params: + V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + re_randomization_parameters: Some( + V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + ), + }), + compression_parameters: Some(V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128), + noise_squashing_parameters: Some(MetaNoiseSquashingParameters { + parameters: V1_5_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + compression_parameters: Some( + V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + ), + }), + }; + +pub const V1_5_META_PARAM_CPU_2_2_KS_PBS_PKE_TO_BIG_ZKV2_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: Some(DedicatedCompactPublicKeyParameters { + pke_params: V1_5_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + ksk_params: + V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + re_randomization_parameters: Some( + V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + ), + }), + compression_parameters: Some(V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128), + noise_squashing_parameters: Some(MetaNoiseSquashingParameters { + parameters: V1_5_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + compression_parameters: Some( + V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + ), + }), + }; + +pub const V1_5_META_PARAM_CPU_2_2_KS32_PBS_PKE_TO_SMALL_ZKV2_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::KeySwitch32( + V1_5_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128, + ), + dedicated_compact_public_key_parameters: Some(DedicatedCompactPublicKeyParameters { + pke_params: V1_5_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + ksk_params: + V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + re_randomization_parameters: Some( + V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + ), + }), + compression_parameters: Some(V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128), + noise_squashing_parameters: Some(MetaNoiseSquashingParameters { + parameters: V1_5_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + compression_parameters: Some( + V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + ), + }), + }; + +pub const V1_5_META_PARAM_CPU_2_2_KS32_PBS_PKE_TO_BIG_ZKV2_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::KeySwitch32( + V1_5_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128, + ), + dedicated_compact_public_key_parameters: Some(DedicatedCompactPublicKeyParameters { + pke_params: V1_5_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + ksk_params: + V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + re_randomization_parameters: Some( + V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + ), + }), + compression_parameters: Some(V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128), + noise_squashing_parameters: Some(MetaNoiseSquashingParameters { + parameters: V1_5_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + compression_parameters: Some( + V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + ), + }), + }; + +pub const V1_5_META_PARAM_CPU_2_2_KS_PBS_PKE_TO_SMALL_ZKV1_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: Some(DedicatedCompactPublicKeyParameters { + pke_params: V1_5_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1, + ksk_params: + V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1, + re_randomization_parameters: Some( + V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1, + ), + }), + compression_parameters: Some(V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128), + noise_squashing_parameters: Some(MetaNoiseSquashingParameters { + parameters: V1_5_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + compression_parameters: Some( + V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + ), + }), + }; + +pub const V1_5_META_PARAM_CPU_2_2_KS_PBS_PKE_TO_BIG_ZKV1_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::Cpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::PBS( + V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: Some(DedicatedCompactPublicKeyParameters { + pke_params: V1_5_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1, + ksk_params: + V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1, + re_randomization_parameters: Some( + V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1, + ), + }), + compression_parameters: Some(V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128), + noise_squashing_parameters: Some(MetaNoiseSquashingParameters { + parameters: V1_5_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + compression_parameters: Some( + V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + ), + }), + }; diff --git a/tfhe/src/shortint/parameters/v1_5/meta/gpu.rs b/tfhe/src/shortint/parameters/v1_5/meta/gpu.rs new file mode 100644 index 000000000..9136816a6 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/meta/gpu.rs @@ -0,0 +1,849 @@ +use super::super::super::meta::{DedicatedCompactPublicKeyParameters, MetaParameters}; +use super::super::compact_public_key_only::p_fail_2_minus_128::ks_pbs::*; +use super::super::key_switching::p_fail_2_minus_128::ks_pbs_gpu::*; +use super::super::list_compression::p_fail_2_minus_128::*; +use super::super::list_compression::p_fail_2_minus_64::*; +use super::super::multi_bit::gaussian::p_fail_2_minus_128::ks_pbs_gpu::*; +use super::super::multi_bit::gaussian::p_fail_2_minus_40::ks_pbs_gpu::*; +use super::super::multi_bit::gaussian::p_fail_2_minus_64::ks_pbs_gpu::*; +use super::super::multi_bit::tuniform::p_fail_2_minus_128::ks_pbs_gpu::*; +use super::super::multi_bit::tuniform::p_fail_2_minus_40::ks_pbs_gpu::*; +use super::super::multi_bit::tuniform::p_fail_2_minus_64::ks_pbs_gpu::*; +use super::super::noise_squashing::p_fail_2_minus_128::*; + +use crate::shortint::parameters::{Backend, MetaNoiseSquashingParameters}; +use crate::shortint::{AtomicPatternParameters, PBSParameters}; + +pub const V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: Some( + V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + ), + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: Some( + V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + ), + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: Some( + V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + ), + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_PKE_TO_BIG_ZKV2_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: Some(DedicatedCompactPublicKeyParameters { + pke_params: V1_5_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + ksk_params: + V1_5_PARAM_MULTI_BIT_GROUP_4_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + re_randomization_parameters: Some(V1_5_PARAM_MULTI_BIT_GROUP_4_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128), + + }), + compression_parameters: Some( + V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + ), + noise_squashing_parameters: Some(MetaNoiseSquashingParameters { + parameters: V1_5_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + compression_parameters: Some( + V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + ), + }), + }; + +pub const V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_PKE_TO_SMALL_ZKV2_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: Some(DedicatedCompactPublicKeyParameters { + pke_params: V1_5_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + ksk_params: + V1_5_PARAM_MULTI_BIT_GROUP_4_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + re_randomization_parameters: Some(V1_5_PARAM_MULTI_BIT_GROUP_4_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128), + }), + compression_parameters: Some( + V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + ), + noise_squashing_parameters: Some(MetaNoiseSquashingParameters { + parameters: V1_5_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + compression_parameters: Some( + V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + ), + }), + }; + +pub const V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; + +pub const V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: None, + compression_parameters: None, + noise_squashing_parameters: None, + }; diff --git a/tfhe/src/shortint/parameters/v1_5/meta/mod.rs b/tfhe/src/shortint/parameters/v1_5/meta/mod.rs new file mode 100644 index 000000000..7dce56f6a --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/meta/mod.rs @@ -0,0 +1,2 @@ +pub mod cpu; +pub mod gpu; diff --git a/tfhe/src/shortint/parameters/v1_5/mod.rs b/tfhe/src/shortint/parameters/v1_5/mod.rs new file mode 100644 index 000000000..dbd2521b5 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/mod.rs @@ -0,0 +1,2451 @@ +//! FHE Parameters as they were defined in TFHE-rs 1.4. +//! +//! These parameters may be used for backward compatibility. + +pub mod classic; +pub mod compact_public_key_only; +pub mod key_switching; +pub mod ks32; +pub mod list_compression; +pub mod meta; +pub mod multi_bit; +pub mod noise_squashing; +pub use classic::compact_pk::gaussian::p_fail_2_minus_128::ks_pbs::*; +pub use classic::compact_pk::gaussian::p_fail_2_minus_128::pbs_ks::*; +pub use classic::compact_pk::gaussian::p_fail_2_minus_64::ks_pbs::*; +pub use classic::compact_pk::gaussian::p_fail_2_minus_64::pbs_ks::*; +pub use classic::gaussian::p_fail_2_minus_128::ks_pbs::*; +pub use classic::gaussian::p_fail_2_minus_128::pbs_ks::*; +pub use classic::gaussian::p_fail_2_minus_40::ks_pbs::*; +pub use classic::gaussian::p_fail_2_minus_64::ks_pbs::*; +pub use classic::tuniform::p_fail_2_minus_128::ks_pbs::*; +pub use classic::tuniform::p_fail_2_minus_40::ks_pbs::*; +pub use classic::tuniform::p_fail_2_minus_64::ks_pbs::*; +pub use compact_public_key_only::p_fail_2_minus_128::ks_pbs::*; +pub use key_switching::p_fail_2_minus_128::ks_pbs::*; +pub use ks32::tuniform::p_fail_2_minus_128::ks_pbs::*; +pub use list_compression::p_fail_2_minus_128::*; +pub use list_compression::p_fail_2_minus_64::*; +use meta::cpu::*; +use meta::gpu::*; +pub use multi_bit::gaussian::p_fail_2_minus_128::ks_pbs::*; +pub use multi_bit::gaussian::p_fail_2_minus_128::ks_pbs_gpu::*; +pub use multi_bit::gaussian::p_fail_2_minus_40::ks_pbs::*; +pub use multi_bit::gaussian::p_fail_2_minus_40::ks_pbs_gpu::*; +pub use multi_bit::gaussian::p_fail_2_minus_64::ks_pbs::*; +pub use multi_bit::gaussian::p_fail_2_minus_64::ks_pbs_gpu::*; +pub use multi_bit::tuniform::p_fail_2_minus_128::ks_pbs::*; +pub use multi_bit::tuniform::p_fail_2_minus_128::ks_pbs_gpu::*; +pub use multi_bit::tuniform::p_fail_2_minus_40::ks_pbs::*; +pub use multi_bit::tuniform::p_fail_2_minus_40::ks_pbs_gpu::*; +pub use multi_bit::tuniform::p_fail_2_minus_64::ks_pbs::*; +pub use multi_bit::tuniform::p_fail_2_minus_64::ks_pbs_gpu::*; +pub use noise_squashing::p_fail_2_minus_128::*; + +use crate::shortint::parameters::{ + ClassicPBSParameters, CompactPublicKeyEncryptionParameters, CompressionParameters, + KeySwitch32PBSParameters, MetaParameters, MultiBitPBSParameters, + NoiseSquashingCompressionParameters, NoiseSquashingParameters, ShortintKeySwitchingParameters, +}; + +/// All [`ClassicPBSParameters`] in this module. +pub const VEC_ALL_CLASSIC_PBS_PARAMETERS: [(&ClassicPBSParameters, &str); 140] = [ + ( + &V1_5_PARAM_MESSAGE_1_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_1_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_2_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_3_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_4_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_5_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_5_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_6_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_6_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_7_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_7_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_8_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_8_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_PBS_KS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_PBS_KS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_PBS_KS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_PBS_KS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_PBS_KS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_PBS_KS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_3_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_4_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_5_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_5_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_6_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_6_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_7_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_7_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_8_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_8_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_PBS_KS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_PBS_KS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_PBS_KS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_PBS_KS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_PBS_KS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_PBS_KS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_1_PBS_KS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_1_PBS_KS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_3_PBS_KS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_3_CARRY_3_PBS_KS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_4_PBS_KS_GAUSSIAN_2M128, + "V1_5_PARAM_MESSAGE_4_CARRY_4_PBS_KS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128", + ), +]; + +/// All [`MultiBitPBSParameters`] in this module. +pub const VEC_ALL_MULTI_BIT_PBS_PARAMETERS: [(&MultiBitPBSParameters, &str); 240] = [ + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128", + ), +]; + +/// All [`KeySwitch32PBSParameters`] in this module. +pub const VEC_ALL_KEY_SWITCH32_PBS_PARAMETERS: [(&KeySwitch32PBSParameters, &str); 1] = [( + &V1_5_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128", +)]; + +/// All [`CompressionParameters`] in this module. +pub const VEC_ALL_COMPRESSION_PARAMETERS: [(&CompressionParameters, &str); 8] = [ + ( + &V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + "V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, + "V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + "V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + "V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128", + ), +]; + +/// All [`ShortintKeySwitchingParameters`] in this module. +pub const VEC_ALL_SHORTINT_KEY_SWITCHING_PARAMETERS: [(&ShortintKeySwitchingParameters, &str); 9] = [ + ( + &V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + "V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2", + ), + ( + &V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + "V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2", + ), + ( + &V1_5_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1, + "V1_5_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1", + ), + ( + &V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1, + "V1_5_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1", + ), + ( + &V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1, + "V1_5_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1", + ), +]; + +/// All [`CompactPublicKeyEncryptionParameters`] in this module. +pub const VEC_ALL_COMPACT_PUBLIC_KEY_ENCRYPTION_PARAMETERS: [( + &CompactPublicKeyEncryptionParameters, + &str, +); 7] = [ + ( + &V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + "V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + "V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2", + ), + ( + &V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1, + "V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1", + ), + ( + &V1_5_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + "V1_5_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2", + ), + ( + &V1_5_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + "V1_5_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2", + ), + ( + &V1_5_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1, + "V1_5_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1", + ), + ( + &V1_5_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1, + "V1_5_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1", + ), +]; + +/// All [`NoiseSquashingParameters`] in this module. +pub const VEC_ALL_NOISE_SQUASHING_PARAMETERS: [(&NoiseSquashingParameters, &str); 2] = [ + ( + &V1_5_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + "V1_5_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_NOISE_SQUASHING_PARAM_GPU_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + "V1_5_NOISE_SQUASHING_PARAM_GPU_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128", + ), +]; + +pub const VEC_ALL_NOISE_SQUASHING_MULTI_BIT_PARAMETERS: [(&NoiseSquashingParameters, &str); 1] = + [( + &V1_5_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + "V1_5_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128", + )]; + +/// All [`NoiseSquashingCompressionParameters`] in this module. +pub const VEC_ALL_NOISE_SQUASHING_COMPRESSION_PARAMETERS: [( + &NoiseSquashingCompressionParameters, + &str, +); 1] = [( + &V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + "V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128", +)]; + +pub const VEC_ALL_KS32_PARAMETERS: [(&KeySwitch32PBSParameters, &str); 1] = [( + &V1_5_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128, + "V1_5_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128", +)]; + +#[cfg(feature = "hpu")] +pub mod hpu; +#[cfg(feature = "hpu")] +pub use hpu::*; + +#[cfg(feature = "hpu")] +pub const VEC_ALL_HPU_PARAMETERS: [(&KeySwitch32PBSParameters, &str); 3] = [ + ( + &V1_5_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_GAUSSIAN_2M64, + "V1_5_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M64, + "V1_5_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128, + "V1_5_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128", + ), +]; + +/// All [`MetaParameters`] in this module. +pub const VEC_ALL_META_PARAMETERS: [(&MetaParameters, &str); 175] = [ + ( + &V1_5_META_PARAM_CPU_1_1_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_CPU_1_1_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_CPU_2_2_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_CPU_2_2_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_CPU_3_3_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_CPU_3_3_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_CPU_4_4_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_CPU_4_4_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_CPU_1_1_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_CPU_1_1_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_CPU_2_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_CPU_2_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_CPU_3_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_CPU_3_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_CPU_4_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_CPU_4_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_CPU_1_1_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_CPU_1_1_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_CPU_2_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_CPU_2_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_CPU_3_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_CPU_3_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_CPU_4_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_CPU_4_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_CPU_1_1_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_CPU_1_1_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_CPU_2_2_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_CPU_2_2_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_CPU_3_3_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_CPU_3_3_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_CPU_4_4_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_CPU_4_4_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_CPU_1_1_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_CPU_1_1_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_CPU_2_2_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_CPU_2_2_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_CPU_3_3_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_CPU_3_3_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_CPU_4_4_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_CPU_4_4_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_CPU_1_1_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_1_1_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_3_3_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_3_3_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_4_4_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_4_4_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_2_2_KS32_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_2_2_KS32_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_2_2_KS_PBS_PKE_TO_SMALL_ZKV2_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_2_2_KS_PBS_PKE_TO_SMALL_ZKV2_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_2_2_KS_PBS_PKE_TO_BIG_ZKV2_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_2_2_KS_PBS_PKE_TO_BIG_ZKV2_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_2_2_KS32_PBS_PKE_TO_SMALL_ZKV2_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_2_2_KS32_PBS_PKE_TO_SMALL_ZKV2_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_2_2_KS32_PBS_PKE_TO_BIG_ZKV2_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_2_2_KS32_PBS_PKE_TO_BIG_ZKV2_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_2_2_KS_PBS_PKE_TO_SMALL_ZKV1_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_2_2_KS_PBS_PKE_TO_SMALL_ZKV1_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_CPU_2_2_KS_PBS_PKE_TO_BIG_ZKV1_TUNIFORM_2M128, + "V1_5_META_PARAM_CPU_2_2_KS_PBS_PKE_TO_BIG_ZKV1_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40, + "V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M40", + ), + ( + &V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64, + "V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M64", + ), + ( + &V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128, + "V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_GAUSSIAN_2M128", + ), + ( + &V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40, + "V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M40", + ), + ( + &V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64, + "V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M64", + ), + ( + &V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_2_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_3_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_PKE_TO_BIG_ZKV2_TUNIFORM_2M128, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_PKE_TO_BIG_ZKV2_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_PKE_TO_SMALL_ZKV2_TUNIFORM_2M128, + "V1_5_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_PKE_TO_SMALL_ZKV2_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128", + ), + ( + &V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128, + "V1_5_META_PARAM_GPU_4_4_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128", + ), +]; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/mod.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/mod.rs new file mode 100644 index 000000000..372442ce7 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/mod.rs @@ -0,0 +1,3 @@ +pub mod p_fail_2_minus_128; +pub mod p_fail_2_minus_40; +pub mod p_fail_2_minus_64; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_128/ks_pbs.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_128/ks_pbs.rs new file mode 100644 index 000000000..a416c7946 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_128/ks_pbs.rs @@ -0,0 +1,25 @@ +use crate::shortint::parameters::MultiBitPBSParameters; +/// p-fail = 2^-129.526, algorithmic cost ~ 61, 2-norm = 3 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.138, algorithmic cost ~ 178, 2-norm = 5 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-131.491, algorithmic cost ~ 1365, 2-norm = 9 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.179, algorithmic cost ~ 11257, 2-norm = 17 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-134.755, algorithmic cost ~ 63, 2-norm = 3 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.381, algorithmic cost ~ 139, 2-norm = 5 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-129.012, algorithmic cost ~ 1310, 2-norm = 9 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-131.073, algorithmic cost ~ 10902, 2-norm = 17 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.033, algorithmic cost ~ 77, 2-norm = 3 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-130.106, algorithmic cost ~ 94, 2-norm = 5 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.201, algorithmic cost ~ 781, 2-norm = 9 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.084, algorithmic cost ~ 6900, 2-norm = 17 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_128/ks_pbs_gpu.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_128/ks_pbs_gpu.rs new file mode 100644 index 000000000..5e91da93a --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_128/ks_pbs_gpu.rs @@ -0,0 +1,25 @@ +use crate::shortint::parameters::MultiBitPBSParameters; +/// p-fail = 2^-128.997, algorithmic cost ~ 62, 2-norm = 3 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.138, algorithmic cost ~ 178, 2-norm = 5 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-131.491, algorithmic cost ~ 1365, 2-norm = 9 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.179, algorithmic cost ~ 11257, 2-norm = 17 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-129.466, algorithmic cost ~ 80, 2-norm = 3 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.606, algorithmic cost ~ 140, 2-norm = 5 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-129.012, algorithmic cost ~ 1310, 2-norm = 9 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-131.073, algorithmic cost ~ 10902, 2-norm = 17 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.034, algorithmic cost ~ 76, 2-norm = 3 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-129.112, algorithmic cost ~ 95, 2-norm = 5 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.201, algorithmic cost ~ 781, 2-norm = 9 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128; +/// p-fail = 2^-128.084, algorithmic cost ~ 6900, 2-norm = 17 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_128/mod.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_128/mod.rs new file mode 100644 index 000000000..c5bc259b2 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_128/mod.rs @@ -0,0 +1,2 @@ +pub mod ks_pbs; +pub mod ks_pbs_gpu; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_40/ks_pbs.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_40/ks_pbs.rs new file mode 100644 index 000000000..1f5294cc9 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_40/ks_pbs.rs @@ -0,0 +1,25 @@ +use crate::shortint::parameters::MultiBitPBSParameters; +/// p-fail = 2^-40.645, algorithmic cost ~ 44, 2-norm = 3 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.713, algorithmic cost ~ 77, 2-norm = 5 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.788, algorithmic cost ~ 616, 2-norm = 9 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.51, algorithmic cost ~ 4113, 2-norm = 17 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.879, algorithmic cost ~ 48, 2-norm = 3 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-41.165, algorithmic cost ~ 74, 2-norm = 5 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.56, algorithmic cost ~ 596, 2-norm = 9 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-41.06, algorithmic cost ~ 3977, 2-norm = 17 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-41.55, algorithmic cost ~ 62, 2-norm = 3 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.224, algorithmic cost ~ 86, 2-norm = 5 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.024, algorithmic cost ~ 380, 2-norm = 9 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-43.231, algorithmic cost ~ 4756, 2-norm = 17 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_40/ks_pbs_gpu.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_40/ks_pbs_gpu.rs new file mode 100644 index 000000000..eed96c30d --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_40/ks_pbs_gpu.rs @@ -0,0 +1,25 @@ +use crate::shortint::parameters::MultiBitPBSParameters; +/// p-fail = 2^-40.693, algorithmic cost ~ 44, 2-norm = 3 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.711, algorithmic cost ~ 78, 2-norm = 5 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-41.361, algorithmic cost ~ 618, 2-norm = 9 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.214, algorithmic cost ~ 4122, 2-norm = 17 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.879, algorithmic cost ~ 48, 2-norm = 3 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.812, algorithmic cost ~ 74, 2-norm = 5 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.216, algorithmic cost ~ 600, 2-norm = 9 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.925, algorithmic cost ~ 3992, 2-norm = 17 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.879, algorithmic cost ~ 62, 2-norm = 3 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.296, algorithmic cost ~ 91, 2-norm = 5 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-40.024, algorithmic cost ~ 380, 2-norm = 9 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40; +/// p-fail = 2^-43.231, algorithmic cost ~ 4756, 2-norm = 17 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_40/mod.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_40/mod.rs new file mode 100644 index 000000000..c5bc259b2 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_40/mod.rs @@ -0,0 +1,2 @@ +pub mod ks_pbs; +pub mod ks_pbs_gpu; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_64/ks_pbs.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_64/ks_pbs.rs new file mode 100644 index 000000000..a1469478c --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_64/ks_pbs.rs @@ -0,0 +1,217 @@ +use crate::shortint::parameters::MultiBitPBSParameters; +/// p-fail = 2^-64.715, algorithmic cost ~ 41, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.542, algorithmic cost ~ 58, 2-norm = 3 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.278, algorithmic cost ~ 66, 2-norm = 7 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.033, algorithmic cost ~ 87, 2-norm = 15 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.105, algorithmic cost ~ 282, 2-norm = 31 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.52, algorithmic cost ~ 650, 2-norm = 63 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.298, algorithmic cost ~ 1985, 2-norm = 127 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.032, algorithmic cost ~ 7529, 2-norm = 255 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.15, algorithmic cost ~ 44, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.22, algorithmic cost ~ 66, 2-norm = 2 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.571, algorithmic cost ~ 80, 2-norm = 5 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.233, algorithmic cost ~ 282, 2-norm = 10 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.216, algorithmic cost ~ 638, 2-norm = 21 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.507, algorithmic cost ~ 1927, 2-norm = 42 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.291, algorithmic cost ~ 5427, 2-norm = 85 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.284, algorithmic cost ~ 66, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.202, algorithmic cost ~ 80, 2-norm = 2 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.245, algorithmic cost ~ 282, 2-norm = 4 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.103, algorithmic cost ~ 638, 2-norm = 9 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.432, algorithmic cost ~ 1923, 2-norm = 18 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.19, algorithmic cost ~ 5329, 2-norm = 36 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.512, algorithmic cost ~ 80, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.819, algorithmic cost ~ 183, 2-norm = 2 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.266, algorithmic cost ~ 638, 2-norm = 4 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.788, algorithmic cost ~ 1436, 2-norm = 8 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.165, algorithmic cost ~ 4287, 2-norm = 17 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.609, algorithmic cost ~ 181, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.296, algorithmic cost ~ 638, 2-norm = 2 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.834, algorithmic cost ~ 1428, 2-norm = 4 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.741, algorithmic cost ~ 4263, 2-norm = 8 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.304, algorithmic cost ~ 638, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.424, algorithmic cost ~ 1425, 2-norm = 2 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.394, algorithmic cost ~ 4255, 2-norm = 4 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.616, algorithmic cost ~ 1425, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.352, algorithmic cost ~ 3227, 2-norm = 2 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.031, algorithmic cost ~ 3185, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.392, algorithmic cost ~ 44, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-69.055, algorithmic cost ~ 60, 2-norm = 3 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-67.055, algorithmic cost ~ 68, 2-norm = 7 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.731, algorithmic cost ~ 78, 2-norm = 15 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.116, algorithmic cost ~ 276, 2-norm = 31 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.593, algorithmic cost ~ 623, 2-norm = 63 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.211, algorithmic cost ~ 1893, 2-norm = 127 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.376, algorithmic cost ~ 6440, 2-norm = 255 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-66.171, algorithmic cost ~ 48, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.37, algorithmic cost ~ 67, 2-norm = 2 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.968, algorithmic cost ~ 76, 2-norm = 5 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.212, algorithmic cost ~ 276, 2-norm = 10 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-66.244, algorithmic cost ~ 617, 2-norm = 21 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.413, algorithmic cost ~ 1871, 2-norm = 42 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.825, algorithmic cost ~ 5215, 2-norm = 85 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.423, algorithmic cost ~ 67, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-66.941, algorithmic cost ~ 76, 2-norm = 2 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.215, algorithmic cost ~ 179, 2-norm = 4 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.023, algorithmic cost ~ 616, 2-norm = 9 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.082, algorithmic cost ~ 1408, 2-norm = 18 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.189, algorithmic cost ~ 4198, 2-norm = 36 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-67.234, algorithmic cost ~ 76, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.348, algorithmic cost ~ 170, 2-norm = 2 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.163, algorithmic cost ~ 616, 2-norm = 4 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.134, algorithmic cost ~ 1365, 2-norm = 8 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.51, algorithmic cost ~ 4107, 2-norm = 17 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.558, algorithmic cost ~ 169, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.189, algorithmic cost ~ 616, 2-norm = 2 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.524, algorithmic cost ~ 1361, 2-norm = 4 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.512, algorithmic cost ~ 4087, 2-norm = 8 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.33, algorithmic cost ~ 407, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-66.282, algorithmic cost ~ 1361, 2-norm = 2 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.798, algorithmic cost ~ 3103, 2-norm = 4 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-66.474, algorithmic cost ~ 1361, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.582, algorithmic cost ~ 2991, 2-norm = 2 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.28, algorithmic cost ~ 2975, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-69.861, algorithmic cost ~ 57, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-67.207, algorithmic cost ~ 74, 2-norm = 3 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.13, algorithmic cost ~ 80, 2-norm = 7 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.051, algorithmic cost ~ 90, 2-norm = 15 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.7, algorithmic cost ~ 330, 2-norm = 31 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.453, algorithmic cost ~ 735, 2-norm = 63 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.212, algorithmic cost ~ 2266, 2-norm = 127 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.846, algorithmic cost ~ 7822, 2-norm = 255 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.154, algorithmic cost ~ 62, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.526, algorithmic cost ~ 80, 2-norm = 2 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.733, algorithmic cost ~ 88, 2-norm = 5 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.801, algorithmic cost ~ 330, 2-norm = 10 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.464, algorithmic cost ~ 729, 2-norm = 21 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-66.236, algorithmic cost ~ 2239, 2-norm = 42 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.354, algorithmic cost ~ 6253, 2-norm = 85 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.592, algorithmic cost ~ 80, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.134, algorithmic cost ~ 88, 2-norm = 2 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.793, algorithmic cost ~ 199, 2-norm = 4 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-66.43, algorithmic cost ~ 729, 2-norm = 9 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.032, algorithmic cost ~ 1648, 2-norm = 18 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.043, algorithmic cost ~ 4956, 2-norm = 36 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.431, algorithmic cost ~ 88, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.246, algorithmic cost ~ 193, 2-norm = 2 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-66.607, algorithmic cost ~ 729, 2-norm = 4 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-66.387, algorithmic cost ~ 1604, 2-norm = 8 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-66.466, algorithmic cost ~ 4865, 2-norm = 17 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.954, algorithmic cost ~ 193, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-66.64, algorithmic cost ~ 729, 2-norm = 2 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.677, algorithmic cost ~ 1598, 2-norm = 4 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.883, algorithmic cost ~ 4847, 2-norm = 8 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.047, algorithmic cost ~ 452, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.138, algorithmic cost ~ 1594, 2-norm = 2 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.742, algorithmic cost ~ 3549, 2-norm = 4 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.346, algorithmic cost ~ 1594, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.867, algorithmic cost ~ 3473, 2-norm = 2 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.847, algorithmic cost ~ 3461, 2-norm = 1 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M64; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_64/ks_pbs_gpu.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_64/ks_pbs_gpu.rs new file mode 100644 index 000000000..5c7210cd5 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_64/ks_pbs_gpu.rs @@ -0,0 +1,25 @@ +use crate::shortint::parameters::MultiBitPBSParameters; +/// p-fail = 2^-65.542, algorithmic cost ~ 63, 2-norm = 3 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.828, algorithmic cost ~ 81, 2-norm = 5 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.103, algorithmic cost ~ 638, 2-norm = 9 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.165, algorithmic cost ~ 4287, 2-norm = 17 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-66.207, algorithmic cost ~ 71, 2-norm = 3 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.838, algorithmic cost ~ 77, 2-norm = 5 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.023, algorithmic cost ~ 616, 2-norm = 9 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-65.51, algorithmic cost ~ 4107, 2-norm = 17 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-67.779, algorithmic cost ~ 94, 2-norm = 3 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-64.733, algorithmic cost ~ 88, 2-norm = 5 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-66.43, algorithmic cost ~ 729, 2-norm = 9 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64; +/// p-fail = 2^-66.466, algorithmic cost ~ 4865, 2-norm = 17 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_64/mod.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_64/mod.rs new file mode 100644 index 000000000..c5bc259b2 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/gaussian/p_fail_2_minus_64/mod.rs @@ -0,0 +1,2 @@ +pub mod ks_pbs; +pub mod ks_pbs_gpu; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/mod.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/mod.rs new file mode 100644 index 000000000..008172142 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/mod.rs @@ -0,0 +1,2 @@ +pub mod gaussian; +pub mod tuniform; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/mod.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/mod.rs new file mode 100644 index 000000000..372442ce7 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/mod.rs @@ -0,0 +1,3 @@ +pub mod p_fail_2_minus_128; +pub mod p_fail_2_minus_40; +pub mod p_fail_2_minus_64; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_128/ks_pbs.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_128/ks_pbs.rs new file mode 100644 index 000000000..229755496 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_128/ks_pbs.rs @@ -0,0 +1,25 @@ +use crate::shortint::parameters::MultiBitPBSParameters; +/// p-fail = 2^-136.056, algorithmic cost ~ 63, 2-norm = 3 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-140.341, algorithmic cost ~ 188, 2-norm = 5 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-135.674, algorithmic cost ~ 1390, 2-norm = 9 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-140.409, algorithmic cost ~ 11612, 2-norm = 17 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-144.818, algorithmic cost ~ 65, 2-norm = 3 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-128.235, algorithmic cost ~ 143, 2-norm = 5 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-147.007, algorithmic cost ~ 1342, 2-norm = 9 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-131.906, algorithmic cost ~ 11197, 2-norm = 17 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-145.017, algorithmic cost ~ 79, 2-norm = 3 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-134.345, algorithmic cost ~ 100, 2-norm = 5 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-130.951, algorithmic cost ~ 810, 2-norm = 9 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-128.146, algorithmic cost ~ 7147, 2-norm = 17 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_128/ks_pbs_gpu.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_128/ks_pbs_gpu.rs new file mode 100644 index 000000000..5649bc9c5 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_128/ks_pbs_gpu.rs @@ -0,0 +1,25 @@ +use crate::shortint::parameters::MultiBitPBSParameters; +/// p-fail = 2^-136.056, algorithmic cost ~ 63, 2-norm = 3 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-140.341, algorithmic cost ~ 188, 2-norm = 5 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-135.674, algorithmic cost ~ 1390, 2-norm = 9 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-140.409, algorithmic cost ~ 11612, 2-norm = 17 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-131.536, algorithmic cost ~ 86, 2-norm = 3 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-128.29, algorithmic cost ~ 144, 2-norm = 5 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-147.007, algorithmic cost ~ 1342, 2-norm = 9 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-131.906, algorithmic cost ~ 11197, 2-norm = 17 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-145.020, algorithmic cost ~ 79, 2-norm = 3 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_4::V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-134.345, algorithmic cost ~ 100, 2-norm = 5 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-130.951, algorithmic cost ~ 810, 2-norm = 9 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128; +/// p-fail = 2^-128.146, algorithmic cost ~ 7147, 2-norm = 17 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_128/mod.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_128/mod.rs new file mode 100644 index 000000000..c5bc259b2 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_128/mod.rs @@ -0,0 +1,2 @@ +pub mod ks_pbs; +pub mod ks_pbs_gpu; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_40/ks_pbs.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_40/ks_pbs.rs new file mode 100644 index 000000000..30e93acbd --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_40/ks_pbs.rs @@ -0,0 +1,25 @@ +use crate::shortint::parameters::MultiBitPBSParameters; +/// p-fail = 2^-45.692, algorithmic cost ~ 59, 2-norm = 3 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-43.359, algorithmic cost ~ 79, 2-norm = 5 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-47.347, algorithmic cost ~ 638, 2-norm = 9 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-49.501, algorithmic cost ~ 4240, 2-norm = 17 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-40.859, algorithmic cost ~ 55, 2-norm = 3 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-47.184, algorithmic cost ~ 76, 2-norm = 5 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-52.488, algorithmic cost ~ 622, 2-norm = 9 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-56.094, algorithmic cost ~ 4118, 2-norm = 17 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-40.484, algorithmic cost ~ 68, 2-norm = 3 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-42.042, algorithmic cost ~ 88, 2-norm = 5 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-40.227, algorithmic cost ~ 416, 2-norm = 9 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-60.755, algorithmic cost ~ 4920, 2-norm = 17 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_40/ks_pbs_gpu.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_40/ks_pbs_gpu.rs new file mode 100644 index 000000000..456420b19 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_40/ks_pbs_gpu.rs @@ -0,0 +1,25 @@ +use crate::shortint::parameters::MultiBitPBSParameters; +/// p-fail = 2^-44.187, algorithmic cost ~ 63, 2-norm = 3 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-43.359, algorithmic cost ~ 79, 2-norm = 5 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-58.688, algorithmic cost ~ 644, 2-norm = 9 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-49.501, algorithmic cost ~ 4240, 2-norm = 17 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-40.859, algorithmic cost ~ 55, 2-norm = 3 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-40.171, algorithmic cost ~ 76, 2-norm = 5 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-42.174, algorithmic cost ~ 632, 2-norm = 9 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-43.508, algorithmic cost ~ 4173, 2-norm = 17 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-40.484, algorithmic cost ~ 68, 2-norm = 3 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-41.764, algorithmic cost ~ 96, 2-norm = 5 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-40.227, algorithmic cost ~ 416, 2-norm = 9 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40; +/// p-fail = 2^-46.098, algorithmic cost ~ 4942, 2-norm = 17 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_40/mod.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_40/mod.rs new file mode 100644 index 000000000..c5bc259b2 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_40/mod.rs @@ -0,0 +1,2 @@ +pub mod ks_pbs; +pub mod ks_pbs_gpu; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_64/ks_pbs.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_64/ks_pbs.rs new file mode 100644 index 000000000..728ff54d7 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_64/ks_pbs.rs @@ -0,0 +1,25 @@ +use crate::shortint::parameters::MultiBitPBSParameters; +/// p-fail = 2^-76.784, algorithmic cost ~ 62, 2-norm = 3 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-65.226, algorithmic cost ~ 83, 2-norm = 5 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-66.396, algorithmic cost ~ 663, 2-norm = 9 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-67.617, algorithmic cost ~ 4397, 2-norm = 17 +pub const V1_5_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-79.556, algorithmic cost ~ 65, 2-norm = 3 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-85.115, algorithmic cost ~ 79, 2-norm = 5 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-66.575, algorithmic cost ~ 629, 2-norm = 9 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-75.531, algorithmic cost ~ 4276, 2-norm = 17 +pub const V1_5_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-145.017, algorithmic cost ~ 79, 2-norm = 3 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-81.222, algorithmic cost ~ 91, 2-norm = 5 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-73.432, algorithmic cost ~ 747, 2-norm = 9 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-64.132, algorithmic cost ~ 4955, 2-norm = 17 +pub const V1_5_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_64/ks_pbs_gpu.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_64/ks_pbs_gpu.rs new file mode 100644 index 000000000..b8ac5aa96 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_64/ks_pbs_gpu.rs @@ -0,0 +1,25 @@ +use crate::shortint::parameters::MultiBitPBSParameters; +/// p-fail = 2^-70.971, algorithmic cost ~ 66, 2-norm = 3 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-65.226, algorithmic cost ~ 83, 2-norm = 5 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-80.919, algorithmic cost ~ 671, 2-norm = 9 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-67.617, algorithmic cost ~ 4397, 2-norm = 17 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-80.333, algorithmic cost ~ 74, 2-norm = 3 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-74.16, algorithmic cost ~ 79, 2-norm = 5 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-66.575, algorithmic cost ~ 629, 2-norm = 9 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-70.079, algorithmic cost ~ 4330, 2-norm = 17 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-88.3, algorithmic cost ~ 98, 2-norm = 3 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-81.222, algorithmic cost ~ 91, 2-norm = 5 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-73.432, algorithmic cost ~ 747, 2-norm = 9 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64; +/// p-fail = 2^-64.132, algorithmic cost ~ 4955, 2-norm = 17 +pub const V1_5_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64: MultiBitPBSParameters = crate::shortint::parameters::v1_1::V1_1_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64; diff --git a/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_64/mod.rs b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_64/mod.rs new file mode 100644 index 000000000..c5bc259b2 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/multi_bit/tuniform/p_fail_2_minus_64/mod.rs @@ -0,0 +1,2 @@ +pub mod ks_pbs; +pub mod ks_pbs_gpu; diff --git a/tfhe/src/shortint/parameters/v1_5/noise_squashing/mod.rs b/tfhe/src/shortint/parameters/v1_5/noise_squashing/mod.rs new file mode 100644 index 000000000..244d1d4e8 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/noise_squashing/mod.rs @@ -0,0 +1 @@ +pub mod p_fail_2_minus_128; diff --git a/tfhe/src/shortint/parameters/v1_5/noise_squashing/p_fail_2_minus_128/mod.rs b/tfhe/src/shortint/parameters/v1_5/noise_squashing/p_fail_2_minus_128/mod.rs new file mode 100644 index 000000000..e6cadf188 --- /dev/null +++ b/tfhe/src/shortint/parameters/v1_5/noise_squashing/p_fail_2_minus_128/mod.rs @@ -0,0 +1,47 @@ +use crate::shortint::parameters::noise_squashing::NoiseSquashingClassicParameters; +use crate::shortint::parameters::{ + CarryModulus, CoreCiphertextModulus, DecompositionBaseLog, DecompositionLevelCount, + DynamicDistribution, GlweDimension, LweCiphertextCount, MessageModulus, ModulusSwitchType, + NoiseSquashingCompressionParameters, NoiseSquashingParameters, PolynomialSize, +}; + +pub const V1_5_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: + NoiseSquashingParameters = NoiseSquashingParameters::Classic(NoiseSquashingClassicParameters { + glwe_dimension: GlweDimension(2), + polynomial_size: PolynomialSize(2048), + glwe_noise_distribution: DynamicDistribution::new_t_uniform(30), + decomp_base_log: DecompositionBaseLog(24), + decomp_level_count: DecompositionLevelCount(3), + modulus_switch_noise_reduction_params: ModulusSwitchType::CenteredMeanNoiseReduction, + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(4), + ciphertext_modulus: CoreCiphertextModulus::::new_native(), +}); + +pub const V1_5_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: + NoiseSquashingCompressionParameters = NoiseSquashingCompressionParameters { + packing_ks_level: DecompositionLevelCount(1), + packing_ks_base_log: DecompositionBaseLog(61), + packing_ks_polynomial_size: PolynomialSize(1024), + packing_ks_glwe_dimension: GlweDimension(6), + lwe_per_glwe: LweCiphertextCount(128), + packing_ks_key_noise_distribution: DynamicDistribution::new_t_uniform(3), + ciphertext_modulus: CoreCiphertextModulus::::new_native(), + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(4), +}; + +pub const V1_5_NOISE_SQUASHING_PARAM_GPU_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: + NoiseSquashingParameters = NoiseSquashingParameters::Classic(NoiseSquashingClassicParameters { + glwe_dimension: GlweDimension(2), + polynomial_size: PolynomialSize(2048), + glwe_noise_distribution: DynamicDistribution::new_t_uniform(30), + decomp_base_log: DecompositionBaseLog(24), + decomp_level_count: DecompositionLevelCount(3), + modulus_switch_noise_reduction_params: ModulusSwitchType::CenteredMeanNoiseReduction, + message_modulus: MessageModulus(4), + carry_modulus: CarryModulus(4), + ciphertext_modulus: CoreCiphertextModulus::::new_native(), +}); + +pub const V1_5_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: NoiseSquashingParameters = crate::shortint::parameters::v1_3::V1_3_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; diff --git a/tfhe/src/shortint/prelude.rs b/tfhe/src/shortint/prelude.rs index 8653f9f8e..ec51e7d49 100644 --- a/tfhe/src/shortint/prelude.rs +++ b/tfhe/src/shortint/prelude.rs @@ -7,7 +7,7 @@ pub use super::ciphertext::{Ciphertext, CompressedCiphertext, PBSOrder}; pub use super::client_key::ClientKey; pub use super::gen_keys; pub use super::key_switching_key::KeySwitchingKey; -pub use super::parameters::current_params::key_switching::p_fail_2_minus_128::ks_pbs::V1_4_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128; +pub use super::parameters::current_params::key_switching::p_fail_2_minus_128::ks_pbs::V1_5_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128; pub use super::parameters::{ CarryModulus, CiphertextModulus, ClassicPBSParameters, DecompositionBaseLog, DecompositionLevelCount, EncryptionKeyChoice, GlweDimension, LweDimension, MaxNoiseLevel, diff --git a/tfhe/src/shortint/server_key/mul.rs b/tfhe/src/shortint/server_key/mul.rs index 011548e36..c59e910b0 100644 --- a/tfhe/src/shortint/server_key/mul.rs +++ b/tfhe/src/shortint/server_key/mul.rs @@ -401,10 +401,10 @@ impl GenericServerKey { /// ///```rust /// use tfhe::shortint::gen_keys; - /// use tfhe::shortint::parameters::current_params::V1_4_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128; + /// use tfhe::shortint::parameters::current_params::V1_5_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128; /// /// // Generate the client key and the server key: - /// let (cks, sks) = gen_keys(V1_4_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128); + /// let (cks, sks) = gen_keys(V1_5_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128); /// /// let msg = 2; /// diff --git a/tfhe/web_wasm_parallel_tests/worker.js b/tfhe/web_wasm_parallel_tests/worker.js index 804a4035d..e8b40e469 100644 --- a/tfhe/web_wasm_parallel_tests/worker.js +++ b/tfhe/web_wasm_parallel_tests/worker.js @@ -48,7 +48,7 @@ function append_param_name(bench_results, params_name) { async function compressedPublicKeyTest() { let params_name_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_small = new ShortintParameters(params_name_small); let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); @@ -80,7 +80,7 @@ async function compressedPublicKeyTest() { async function publicKeyTest() { let params_name_small = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128; let params_small = new ShortintParameters(params_name_small); let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); @@ -161,7 +161,7 @@ async function compactPublicKeyBench32BitOnConfig(config) { async function compactPublicKeyBench32BitBig() { const params = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; const block_params = new ShortintParameters(params); let config = TfheConfigBuilder.default() .use_custom_parameters(block_params) @@ -174,7 +174,7 @@ async function compactPublicKeyBench32BitBig() { async function compactPublicKeyBench32BitSmall() { const params = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M128; const block_params = new ShortintParameters(params); let config = TfheConfigBuilder.default() .use_custom_parameters(block_params) @@ -477,7 +477,7 @@ async function compactPublicKeyZeroKnowledgeTest() { async function compressedCompactPublicKeyTest256BitBig() { const block_params = new ShortintParameters( - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, ); let config = TfheConfigBuilder.default() .use_custom_parameters(block_params) @@ -487,7 +487,7 @@ async function compressedCompactPublicKeyTest256BitBig() { async function compressedCompactPublicKeyTest256BitSmall() { const block_params = new ShortintParameters( - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M128, + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M128, ); let config = TfheConfigBuilder.default() .use_custom_parameters(block_params) @@ -558,7 +558,7 @@ async function compactPublicKeyBench256BitOnConfig(config) { async function compactPublicKeyBench256BitBig() { const params = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M128; const block_params = new ShortintParameters(params); let config = TfheConfigBuilder.default() .use_custom_parameters(block_params) @@ -571,7 +571,7 @@ async function compactPublicKeyBench256BitBig() { async function compactPublicKeyBench256BitSmall() { const params = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS_GAUSSIAN_2M128; const block_params = new ShortintParameters(params); let config = TfheConfigBuilder.default() .use_custom_parameters(block_params) @@ -618,7 +618,7 @@ async function compressedServerKeyBenchConfig(config) { async function compressedServerKeyBenchMessage1Carry1() { const params = - ShortintParametersName.V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128; const block_params = new ShortintParameters(params); let config = TfheConfigBuilder.default() .use_custom_parameters(block_params) @@ -631,7 +631,7 @@ async function compressedServerKeyBenchMessage1Carry1() { async function compressedServerKeyBenchMessage2Carry2() { const params = - ShortintParametersName.V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; + ShortintParametersName.V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128; const block_params = new ShortintParameters(params); let config = TfheConfigBuilder.default() .use_custom_parameters(block_params) @@ -665,7 +665,7 @@ async function compactPublicKeyZeroKnowledgeBench() { ShortintParametersName.PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, ), casting_params: new ShortintCompactPublicKeyEncryptionParameters( - ShortintCompactPublicKeyEncryptionParametersName.V1_4_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1, + ShortintCompactPublicKeyEncryptionParametersName.V1_5_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1, ), }, ]; diff --git a/utils/tfhe-backward-compat-data/Cargo.toml b/utils/tfhe-backward-compat-data/Cargo.toml index d2d76618b..053c58e73 100644 --- a/utils/tfhe-backward-compat-data/Cargo.toml +++ b/utils/tfhe-backward-compat-data/Cargo.toml @@ -55,13 +55,13 @@ tfhe_1_3 = { git = "https://github.com/zama-ai/tfhe-rs.git", features = [ "zk-pok", "experimental-force_fft_algo_dif4", ], package = "tfhe", tag = "tfhe-rs-1.3.0", optional = true } -tfhe_1_4 = { path = "../../tfhe", features = [ +tfhe_1_4 = { git = "https://github.com/zama-ai/tfhe-rs.git", features = [ "boolean", "integer", "shortint", "zk-pok", "experimental-force_fft_algo_dif4", -], package = "tfhe", optional = true } +], package = "tfhe", tag = "tfhe-rs-1.4.1", optional = true } # TFHE-rs 0.8 and 0.10 use the same version of versionable @@ -70,7 +70,7 @@ tfhe_0_11-versionable = { version = "0.4.0", optional = true, package = "tfhe-ve tfhe_1_0-versionable = { version = "0.5.0", optional = true, package = "tfhe-versionable" } tfhe_1_1-versionable = { git = "https://github.com/zama-ai/tfhe-rs.git", tag = "tfhe-rs-1.1.0", optional = true, package = "tfhe-versionable" } tfhe_1_3-versionable = { git = "https://github.com/zama-ai/tfhe-rs.git", tag = "tfhe-rs-1.3.0", optional = true, package = "tfhe-versionable" } -tfhe_1_4-versionable = { path = "../../utils/tfhe-versionable", optional = true, package = "tfhe-versionable" } +tfhe_1_4-versionable = { git = "https://github.com/zama-ai/tfhe-rs.git", tag = "tfhe-rs-1.4.1", optional = true, package = "tfhe-versionable" } # other deps