chore: prepare v1.5

This commit is contained in:
Arthur Meyre
2025-10-13 14:05:33 +02:00
parent a8520a2e22
commit 20a91337c1
112 changed files with 6595 additions and 734 deletions

View File

@@ -129,7 +129,7 @@ Other sizes than 64 bit are expected to be available in the future.
# FHE shortint Trivium implementation # 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 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 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. its setup a little more intricate.
@@ -138,9 +138,9 @@ Example code:
```rust ```rust
use tfhe::shortint::prelude::*; use tfhe::shortint::prelude::*;
use tfhe::shortint::parameters::current_params::{ use tfhe::shortint::parameters::current_params::{
V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, V1_5_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_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128,
}; };
use tfhe::{ConfigBuilder, generate_keys, FheUint64}; use tfhe::{ConfigBuilder, generate_keys, FheUint64};
use tfhe::prelude::*; use tfhe::prelude::*;
@@ -148,17 +148,17 @@ use tfhe_trivium::TriviumStreamShortint;
fn test_shortint() { fn test_shortint() {
let config = ConfigBuilder::default() 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(); .build();
let (hl_client_key, hl_server_key) = generate_keys(config); 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_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 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( let ksk = KeySwitchingKey::new(
(&client_key, Some(&server_key)), (&client_key, Some(&server_key)),
(&underlying_ck, &underlying_sk), (&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(); let key_string = "0053A6F94C9FF24598EB".to_string();

View File

@@ -1,9 +1,9 @@
use criterion::Criterion; use criterion::Criterion;
use tfhe::prelude::*; use tfhe::prelude::*;
use tfhe::shortint::parameters::current_params::{ use tfhe::shortint::parameters::current_params::{
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,
V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128,
}; };
use tfhe::shortint::prelude::*; use tfhe::shortint::prelude::*;
use tfhe::{generate_keys, ConfigBuilder, FheUint64}; use tfhe::{generate_keys, ConfigBuilder, FheUint64};
@@ -11,19 +11,19 @@ use tfhe_trivium::{KreyviumStreamShortint, TransCiphering};
pub fn kreyvium_shortint_warmup(c: &mut Criterion) { pub fn kreyvium_shortint_warmup(c: &mut Criterion) {
let config = ConfigBuilder::default() 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(); .build();
let (hl_client_key, hl_server_key) = generate_keys(config); 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_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 underlying_sk: tfhe::shortint::ServerKey = (*hl_server_key.as_ref()).clone().into();
let (client_key, server_key): (ClientKey, ServerKey) = 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( let ksk = KeySwitchingKey::new(
(&client_key, Some(&server_key)), (&client_key, Some(&server_key)),
(&underlying_ck, &underlying_sk), (&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(); 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) { pub fn kreyvium_shortint_gen(c: &mut Criterion) {
let config = ConfigBuilder::default() 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(); .build();
let (hl_client_key, hl_server_key) = generate_keys(config); 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_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 underlying_sk: tfhe::shortint::ServerKey = (*hl_server_key.as_ref()).clone().into();
let (client_key, server_key): (ClientKey, ServerKey) = 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( let ksk = KeySwitchingKey::new(
(&client_key, Some(&server_key)), (&client_key, Some(&server_key)),
(&underlying_ck, &underlying_sk), (&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(); 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) { pub fn kreyvium_shortint_trans(c: &mut Criterion) {
let config = ConfigBuilder::default() 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(); .build();
let (hl_client_key, hl_server_key) = generate_keys(config); 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_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 underlying_sk: tfhe::shortint::ServerKey = (*hl_server_key.as_ref()).clone().into();
let (client_key, server_key): (ClientKey, ServerKey) = 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( let ksk = KeySwitchingKey::new(
(&client_key, Some(&server_key)), (&client_key, Some(&server_key)),
(&underlying_ck, &underlying_sk), (&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(); let key_string = "0053A6F94C9FF24598EB000000000000".to_string();

View File

@@ -1,9 +1,9 @@
use criterion::Criterion; use criterion::Criterion;
use tfhe::prelude::*; use tfhe::prelude::*;
use tfhe::shortint::parameters::current_params::{ use tfhe::shortint::parameters::current_params::{
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,
V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128,
}; };
use tfhe::shortint::prelude::*; use tfhe::shortint::prelude::*;
use tfhe::{generate_keys, ConfigBuilder, FheUint64}; use tfhe::{generate_keys, ConfigBuilder, FheUint64};
@@ -11,19 +11,19 @@ use tfhe_trivium::{TransCiphering, TriviumStreamShortint};
pub fn trivium_shortint_warmup(c: &mut Criterion) { pub fn trivium_shortint_warmup(c: &mut Criterion) {
let config = ConfigBuilder::default() 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(); .build();
let (hl_client_key, hl_server_key) = generate_keys(config); 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_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 underlying_sk: tfhe::shortint::ServerKey = (*hl_server_key.as_ref()).clone().into();
let (client_key, server_key): (ClientKey, ServerKey) = 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( let ksk = KeySwitchingKey::new(
(&client_key, Some(&server_key)), (&client_key, Some(&server_key)),
(&underlying_ck, &underlying_sk), (&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(); 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) { pub fn trivium_shortint_gen(c: &mut Criterion) {
let config = ConfigBuilder::default() 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(); .build();
let (hl_client_key, hl_server_key) = generate_keys(config); 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_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 underlying_sk: tfhe::shortint::ServerKey = (*hl_server_key.as_ref()).clone().into();
let (client_key, server_key): (ClientKey, ServerKey) = 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( let ksk = KeySwitchingKey::new(
(&client_key, Some(&server_key)), (&client_key, Some(&server_key)),
(&underlying_ck, &underlying_sk), (&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(); 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) { pub fn trivium_shortint_trans(c: &mut Criterion) {
let config = ConfigBuilder::default() 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(); .build();
let (hl_client_key, hl_server_key) = generate_keys(config); 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_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 underlying_sk: tfhe::shortint::ServerKey = (*hl_server_key.as_ref()).clone().into();
let (client_key, server_key): (ClientKey, ServerKey) = 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( let ksk = KeySwitchingKey::new(
(&client_key, Some(&server_key)), (&client_key, Some(&server_key)),
(&underlying_ck, &underlying_sk), (&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(); let key_string = "0053A6F94C9FF24598EB".to_string();

View File

@@ -1,9 +1,9 @@
use crate::{KreyviumStream, KreyviumStreamByte, KreyviumStreamShortint, TransCiphering}; use crate::{KreyviumStream, KreyviumStreamByte, KreyviumStreamShortint, TransCiphering};
use tfhe::prelude::*; use tfhe::prelude::*;
use tfhe::shortint::parameters::current_params::{ use tfhe::shortint::parameters::current_params::{
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,
V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128,
}; };
use tfhe::{generate_keys, ConfigBuilder, FheBool, FheUint64, FheUint8}; use tfhe::{generate_keys, ConfigBuilder, FheBool, FheUint64, FheUint8};
// Values for these tests come from the github repo renaud1239/Kreyvium, // Values for these tests come from the github repo renaud1239/Kreyvium,
@@ -221,19 +221,19 @@ use tfhe::shortint::prelude::*;
#[test] #[test]
fn kreyvium_test_shortint_long() { fn kreyvium_test_shortint_long() {
let config = ConfigBuilder::default() 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(); .build();
let (hl_client_key, hl_server_key) = generate_keys(config); 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_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 underlying_sk: tfhe::shortint::ServerKey = (*hl_server_key.as_ref()).clone().into();
let (client_key, server_key): (ClientKey, ServerKey) = 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( let ksk = KeySwitchingKey::new(
(&client_key, Some(&server_key)), (&client_key, Some(&server_key)),
(&underlying_ck, &underlying_sk), (&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(); let key_string = "0053A6F94C9FF24598EB000000000000".to_string();

View File

@@ -1,9 +1,9 @@
use crate::{TransCiphering, TriviumStream, TriviumStreamByte, TriviumStreamShortint}; use crate::{TransCiphering, TriviumStream, TriviumStreamByte, TriviumStreamShortint};
use tfhe::prelude::*; use tfhe::prelude::*;
use tfhe::shortint::parameters::current_params::{ use tfhe::shortint::parameters::current_params::{
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,
V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128,
}; };
use tfhe::{generate_keys, ConfigBuilder, FheBool, FheUint64, FheUint8}; use tfhe::{generate_keys, ConfigBuilder, FheBool, FheUint64, FheUint8};
// Values for these tests come from the github repo cantora/avr-crypto-lib, commit 2a5b018, // Values for these tests come from the github repo cantora/avr-crypto-lib, commit 2a5b018,
@@ -357,19 +357,19 @@ use tfhe::shortint::prelude::*;
#[test] #[test]
fn trivium_test_shortint_long() { fn trivium_test_shortint_long() {
let config = ConfigBuilder::default() 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(); .build();
let (hl_client_key, hl_server_key) = generate_keys(config); 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_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 underlying_sk: tfhe::shortint::ServerKey = (*hl_server_key.as_ref()).clone().into();
let (client_key, server_key): (ClientKey, ServerKey) = 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( let ksk = KeySwitchingKey::new(
(&client_key, Some(&server_key)), (&client_key, Some(&server_key)),
(&underlying_ck, &underlying_sk), (&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(); let key_string = "0053A6F94C9FF24598EB".to_string();

View File

@@ -400,11 +400,11 @@ pub mod shortint_params {
pub fn get_classical_tuniform_groups() -> Vec<MetaParameters> { pub fn get_classical_tuniform_groups() -> Vec<MetaParameters> {
vec![ vec![
// Most complete 2_2 parameters set // Most complete 2_2 parameters set
V1_4_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_4_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_4_META_PARAM_CPU_1_1_KS_PBS_TUNIFORM_2M128, V1_5_META_PARAM_CPU_1_1_KS_PBS_TUNIFORM_2M128,
V1_4_META_PARAM_CPU_3_3_KS_PBS_TUNIFORM_2M128, V1_5_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_4_4_KS_PBS_TUNIFORM_2M128,
] ]
} }
@@ -413,37 +413,37 @@ pub mod shortint_params {
vec![ vec![
// Group 2 // Group 2
// CPU --- // CPU ---
V1_4_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_4_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_4_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_4_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,
// GPU --- // GPU ---
V1_4_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_4_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_4_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_4_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,
// Group 3 // Group 3
// CPU --- // CPU ---
V1_4_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_4_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_4_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_4_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,
// GPU --- // GPU ---
V1_4_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_4_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_4_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_4_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,
// Group 4 // Group 4
// CPU --- // CPU ---
V1_4_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_4_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_4_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_4_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,
// GPU --- // GPU ---
V1_4_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_4_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_4_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_4_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,
] ]
} }
} }

View File

@@ -10,25 +10,25 @@ pub mod shortint_params_aliases {
}; };
// KS PBS Gaussian // KS PBS Gaussian
pub const BENCH_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = 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 = 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 = 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 = 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 // KS PBS TUniform
pub const BENCH_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: ClassicPBSParameters = 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 = 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 = 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 = 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 = 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] = pub const BENCH_ALL_CLASSIC_PBS_PARAMETERS: [(&ClassicPBSParameters, &str); 140] =
VEC_ALL_CLASSIC_PBS_PARAMETERS; VEC_ALL_CLASSIC_PBS_PARAMETERS;
@@ -37,116 +37,116 @@ pub mod shortint_params_aliases {
// CPU Gaussian // CPU Gaussian
pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128:
MultiBitPBSParameters = 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 // CPU TUniform
// --- Grouping factor 2 // --- Grouping factor 2
pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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 // --- Grouping factor 3
pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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 // --- Grouping factor 4
pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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 // GPU Gaussian
// --- Grouping factor 4 // --- Grouping factor 4
pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128:
MultiBitPBSParameters = 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 // GPU TUniform
// --- Grouping factor 2 // --- Grouping factor 2
pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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 // --- Grouping factor 3
pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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 // --- Grouping factor 4
pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const BENCH_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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] = pub const BENCH_ALL_MULTI_BIT_PBS_PARAMETERS: [(&MultiBitPBSParameters, &str); 240] =
VEC_ALL_MULTI_BIT_PBS_PARAMETERS; VEC_ALL_MULTI_BIT_PBS_PARAMETERS;
@@ -154,88 +154,88 @@ pub mod shortint_params_aliases {
// PKE // PKE
pub const BENCH_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: pub const BENCH_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
CompactPublicKeyEncryptionParameters = 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: pub const BENCH_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1:
CompactPublicKeyEncryptionParameters = 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 // KS
pub const BENCH_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: pub const BENCH_PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
ShortintKeySwitchingParameters = 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: pub const BENCH_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128:
ShortintKeySwitchingParameters = 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: pub const BENCH_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
ShortintKeySwitchingParameters = 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: pub const BENCH_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
ShortintKeySwitchingParameters = 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 // ZKV1
pub const BENCH_PARAM_PKE_TO_SMALL_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 = 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: pub const BENCH_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1:
ShortintKeySwitchingParameters = 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: pub const BENCH_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1:
ShortintKeySwitchingParameters = 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 // ZKV2
pub const BENCH_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2: pub const BENCH_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2:
CompactPublicKeyEncryptionParameters = 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: pub const BENCH_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2:
ShortintKeySwitchingParameters = 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: pub const BENCH_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2:
ShortintKeySwitchingParameters = 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 // Compression
pub const BENCH_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: CompressionParameters = 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: pub const BENCH_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
CompressionParameters = 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 // Noise Squashing
pub const BENCH_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: pub const BENCH_NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
NoiseSquashingParameters = 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: pub const BENCH_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
NoiseSquashingCompressionParameters = 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: pub const BENCH_NOISE_SQUASHING_PARAM_GPU_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
NoiseSquashingParameters = 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: pub const BENCH_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
NoiseSquashingParameters = 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: pub const BENCH_COMP_NOISE_SQUASHING_PARAM_GPU_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
NoiseSquashingCompressionParameters = 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")] #[cfg(feature = "hpu")]
// KS PBS Gaussian for Hpu // KS PBS Gaussian for Hpu
pub const BENCH_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_GAUSSIAN_2M64: KeySwitch32PBSParameters = 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")] #[cfg(feature = "hpu")]
// KS PBS TUniform // KS PBS TUniform
pub const BENCH_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M64: KeySwitch32PBSParameters = 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")] #[cfg(feature = "hpu")]
// KS PBS TUniform pfail -128 // KS PBS TUniform pfail -128
pub const BENCH_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128: KeySwitch32PBSParameters = 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"))] #[cfg(any(feature = "shortint", feature = "integer"))]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "tfhe" name = "tfhe"
version = "1.4.0" version = "1.5.0"
edition = "2021" edition = "2021"
readme = "../README.md" readme = "../README.md"
keywords = ["fully", "homomorphic", "encryption", "fhe", "cryptography"] keywords = ["fully", "homomorphic", "encryption", "fhe", "cryptography"]

View File

@@ -647,7 +647,7 @@ int main(void) {
assert(ok == 0); assert(ok == 0);
// Then use small parameters, those are gaussians as we don't have small TUniform params // Then use small parameters, those are gaussians as we don't have small TUniform params
ok = config_builder_use_custom_parameters( 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); ok = config_builder_build(builder, &config);
assert(ok == 0); assert(ok == 0);

View File

@@ -15,7 +15,7 @@ void test_predefined_keygen_w_serde(void) {
ShortintCompressedCiphertext *cct = NULL; ShortintCompressedCiphertext *cct = NULL;
ShortintCompressedCiphertext *deser_cct = NULL; ShortintCompressedCiphertext *deser_cct = NULL;
ShortintCiphertext *decompressed_ct = 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); int gen_keys_ok = shortint_gen_keys_with_parameters(params, &cks, &sks);
assert(gen_keys_ok == 0); assert(gen_keys_ok == 0);
@@ -79,7 +79,7 @@ void test_server_key_trivial_encrypt(void) {
ShortintClientKey *cks = NULL; ShortintClientKey *cks = NULL;
ShortintServerKey *sks = NULL; ShortintServerKey *sks = NULL;
ShortintCiphertext *ct = 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); int gen_keys_ok = shortint_gen_keys_with_parameters(params, &cks, &sks);
assert(gen_keys_ok == 0); assert(gen_keys_ok == 0);
@@ -219,10 +219,10 @@ void test_compressed_public_keygen(ShortintPBSParameters params) {
int main(void) { int main(void) {
test_predefined_keygen_w_serde(); test_predefined_keygen_w_serde();
test_custom_keygen(); test_custom_keygen();
test_public_keygen(SHORTINT_V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128); test_public_keygen(SHORTINT_V1_5_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_public_keygen(SHORTINT_V1_5_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_5_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_compressed_public_keygen(SHORTINT_V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128);
test_server_key_trivial_encrypt(); test_server_key_trivial_encrypt();
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }

View File

@@ -41,7 +41,7 @@ void test_shortint_pbs_2_bits_message(void) {
ShortintPBSLookupTable *lookup_table = NULL; ShortintPBSLookupTable *lookup_table = NULL;
ShortintClientKey *cks = NULL; ShortintClientKey *cks = NULL;
ShortintServerKey *sks = 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); int gen_keys_ok = shortint_gen_keys_with_parameters(params, &cks, &sks);
assert(gen_keys_ok == 0); assert(gen_keys_ok == 0);
@@ -115,7 +115,7 @@ void test_shortint_bivariate_pbs_2_bits_message(void) {
ShortintBivariatePBSLookupTable *lookup_table = NULL; ShortintBivariatePBSLookupTable *lookup_table = NULL;
ShortintClientKey *cks = NULL; ShortintClientKey *cks = NULL;
ShortintServerKey *sks = 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); int gen_keys_ok = shortint_gen_keys_with_parameters(params, &cks, &sks);
assert(gen_keys_ok == 0); assert(gen_keys_ok == 0);

View File

@@ -541,7 +541,7 @@ void test_server_key(void) {
ShortintPBSParameters params = SHORTINT_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; ShortintPBSParameters params = SHORTINT_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128;
// We don't have TUniform small params, use gaussian instead // 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.message_modulus == 1 << message_bits);
assert(params.carry_modulus == 1 << carry_bits); assert(params.carry_modulus == 1 << carry_bits);

View File

@@ -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`. To use the **TFHE-rs** GPU backend in your project, add the following dependency in your `Cargo.toml`.
```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. If none of the supported backends is configured in `Cargo.toml`, the CPU backend is used.

View File

@@ -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`. To use the **TFHE-rs** HPU backend in your project, add the following dependency in your `Cargo.toml`.
```toml ```toml
tfhe = { version = "~1.4.0", features = ["integer", "hpu-v80"] } tfhe = { version = "~1.5.0", features = ["integer", "hpu-v80"] }
``` ```
{% hint style="success" %} {% hint style="success" %}

View File

@@ -13,11 +13,11 @@ The following example shows how to use parallelized bootstrapping by choosing mu
```rust ```rust
use tfhe::prelude::*; use tfhe::prelude::*;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint32}; 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<dyn std::error::Error>> { fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = ConfigBuilder::default() 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(); .build();
let (keys, server_keys) = generate_keys(config); let (keys, server_keys) = generate_keys(config);
@@ -45,12 +45,12 @@ Here's an example:
```rust ```rust
use tfhe::prelude::*; use tfhe::prelude::*;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint32}; 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<dyn std::error::Error>> { fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = ConfigBuilder::default() let config = ConfigBuilder::default()
.use_custom_parameters( .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(); .build();

View File

@@ -97,11 +97,11 @@ use tfhe::zk::{CompactPkeCrs, ZkComputeLoad};
pub fn main() -> Result<(), Box<dyn std::error::Error>> { pub fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut rng = thread_rng(); 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 // 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. // 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 // Enable the dedicated parameters on the config
let config = tfhe::ConfigBuilder::with_custom_parameters(params) let config = tfhe::ConfigBuilder::with_custom_parameters(params)
.use_dedicated_compact_public_key_parameters((cpk_params, casting_params)).build(); .use_dedicated_compact_public_key_parameters((cpk_params, casting_params)).build();

View File

@@ -49,11 +49,11 @@ You can override the default parameters with the `with_custom_parameters(block_p
```rust ```rust
use tfhe::{ConfigBuilder, generate_keys}; 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() { fn main() {
let config = 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(); .build();
// Client-side // Client-side

View File

@@ -16,7 +16,7 @@ You can load serialized data with the `unversionize` function, even in newer ver
[dependencies] [dependencies]
# ... # ...
tfhe = { version = "~1.4.0", features = ["integer"] } tfhe = { version = "~1.5.0", features = ["integer"] }
tfhe-versionable = "0.6.0" tfhe-versionable = "0.6.0"
bincode = "1.3.3" bincode = "1.3.3"
``` ```

View File

@@ -161,7 +161,7 @@ In the following example, we use [bincode](https://crates.io/crates/bincode) for
[dependencies] [dependencies]
# ... # ...
tfhe = { version = "~1.4.0", features = ["integer"] } tfhe = { version = "~1.5.0", features = ["integer"] }
bincode = "1.3.3" bincode = "1.3.3"
``` ```

View File

@@ -19,7 +19,7 @@ The following example shows a complete workflow of working with encrypted arrays
# Cargo.toml # Cargo.toml
[dependencies] [dependencies]
tfhe = { version = "~1.4.0", features = ["integer"] } tfhe = { version = "~1.5.0", features = ["integer"] }
``` ```
```rust ```rust

View File

@@ -29,7 +29,7 @@ Here is an example:
# Cargo.toml # Cargo.toml
[dependencies] [dependencies]
tfhe = { version = "~1.4.0", features = ["integer", "strings"] } tfhe = { version = "~1.5.0", features = ["integer", "strings"] }
``` ```
```rust ```rust

View File

@@ -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`. First, add **TFHE-rs** as a dependency in your `Cargo.toml`.
```toml ```toml
tfhe = { version = "~1.4.0", features = ["boolean", "shortint", "integer"] } tfhe = { version = "~1.5.0", features = ["boolean", "shortint", "integer"] }
``` ```
{% hint style="info" %} {% 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`: To add support for older CPU, import **TFHE-rs** with the `software-prng` feature in your `Cargo.toml`:
```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 ## Hardware acceleration

View File

@@ -59,7 +59,7 @@ edition = "2021"
Then add the following configuration to include **TFHE-rs**: Then add the following configuration to include **TFHE-rs**:
```toml ```toml
tfhe = { version = "~1.4.0", features = ["integer"] } tfhe = { version = "~1.5.0", features = ["integer"] }
``` ```
Your updated `Cargo.toml` file should look like this: Your updated `Cargo.toml` file should look like this:
@@ -71,7 +71,7 @@ version = "0.1.0"
edition = "2021" edition = "2021"
[dependencies] [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. If you are on a different platform please refer to the [installation documentation](installation.md) for configuration options of other supported platforms.

View File

@@ -37,7 +37,7 @@ function fhe_uint32_example() {
const U32_MAX = 4294967295; 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() let config = TfheConfigBuilder.default()
.build(); .build();
@@ -90,7 +90,7 @@ async function example() {
await initThreadPool(navigator.hardwareConcurrency); await initThreadPool(navigator.hardwareConcurrency);
await init_panic_hook(); 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);
// .... // ....
} }
``` ```

View File

@@ -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`: To use `TFHE-rs`, it first has to be added as a dependency in the `Cargo.toml`:
```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. ### Commented code to double a 2-bit message in a leveled fashion and using a PBS with the `core_crypto` module.

View File

@@ -28,7 +28,7 @@ To use the `FheUint8` type, enable the `integer` feature:
# Cargo.toml # Cargo.toml
[dependencies] [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. 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 # Cargo.toml
[dependencies] [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!): The `FheAsciiString` type allows to simply do homomorphic case changing of encrypted strings (and much more!):

View File

@@ -17,7 +17,7 @@ This function returns a Boolean (`true` or `false`) so that the total count of `
```toml ```toml
# Cargo.toml # Cargo.toml
tfhe = { version = "~1.4.0", features = ["integer"] } tfhe = { version = "~1.5.0", features = ["integer"] }
``` ```
First, define the verification function. First, define the verification function.

View File

@@ -5,8 +5,8 @@ use std::mem::MaybeUninit;
use std::{array, iter}; use std::{array, iter};
use tfhe::prelude::*; use tfhe::prelude::*;
use tfhe::shortint::parameters::current_params::{ use tfhe::shortint::parameters::current_params::{
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,
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,
}; };
use tfhe::{set_server_key, ClientKey, CompressedServerKey, ConfigBuilder, Device, FheUint32}; 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 { let config = match args.multibit {
None => ConfigBuilder::default(), None => ConfigBuilder::default(),
Some(2) => ConfigBuilder::with_custom_parameters( 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( 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) => { Some(v) => {
panic!("Invalid multibit setting {v}"); panic!("Invalid multibit setting {v}");

View File

@@ -32,9 +32,9 @@ const KSK_PARAMS: [(
ClassicPBSParameters, ClassicPBSParameters,
ShortintKeySwitchingParameters, ShortintKeySwitchingParameters,
); 1] = [( ); 1] = [(
V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, V1_5_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_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128,
)]; )];
fn client_server_keys() { fn client_server_keys() {
@@ -64,12 +64,12 @@ fn client_server_keys() {
let coverage_only: bool = matches.get_flag("coverage_only"); let coverage_only: bool = matches.get_flag("coverage_only");
if multi_bit_only { if multi_bit_only {
const MULTI_BIT_PARAMS: [MultiBitPBSParameters; 6] = [ const MULTI_BIT_PARAMS: [MultiBitPBSParameters; 6] = [
V1_4_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_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,
V1_4_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_4_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_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,
V1_4_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,
]; ];
generate_pbs_multi_bit_keys(&MULTI_BIT_PARAMS); generate_pbs_multi_bit_keys(&MULTI_BIT_PARAMS);
@@ -97,7 +97,7 @@ fn client_server_keys() {
#[cfg(feature = "experimental")] #[cfg(feature = "experimental")]
{ {
const WOPBS_PARAMS: [(ClassicPBSParameters, WopbsParameters); 1] = [( 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, LEGACY_WOPBS_PARAM_MESSAGE_2_CARRY_2_KS_PBS,
)]; )];
generate_wopbs_keys(&WOPBS_PARAMS); generate_wopbs_keys(&WOPBS_PARAMS);
@@ -111,21 +111,21 @@ fn client_server_keys() {
// TUniform // TUniform
PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128,
// Gaussian // Gaussian
V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128,
// 2M64 as backup as 2M128 is too slow // 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); generate_pbs_keys(&PBS_KEYS);
@@ -133,19 +133,19 @@ fn client_server_keys() {
{ {
const WOPBS_PARAMS: [(ClassicPBSParameters, WopbsParameters); 4] = [ 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, 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, 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, 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, LEGACY_WOPBS_PARAM_MESSAGE_4_CARRY_4_KS_PBS,
), ),
]; ];

View File

@@ -100,7 +100,7 @@ test("hlapi_compressed_public_client_int8_big", (t) => {
test("hlapi_public_key_encrypt_decrypt_int32_small", (t) => { test("hlapi_public_key_encrypt_decrypt_int32_small", (t) => {
let params_name_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 params_small = new ShortintParameters(params_name_small);
let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); 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) => { test("hlapi_decompress_public_key_then_encrypt_decrypt_int32_small", (t) => {
let params_name_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 params_small = new ShortintParameters(params_name_small);
let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); 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) => { test("hlapi_client_key_encrypt_decrypt_int128_small", (t) => {
let params_name_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 params_small = new ShortintParameters(params_name_small);
let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); 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) => { test("hlapi_client_key_encrypt_decrypt_int256_small", (t) => {
let params_name_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 params_small = new ShortintParameters(params_name_small);
let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); 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) => { test("hlapi_decompress_public_key_then_encrypt_decrypt_int256_small", (t) => {
let params_name_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 params_small = new ShortintParameters(params_name_small);
let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); 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) => { test("hlapi_public_key_encrypt_decrypt_int256_small", (t) => {
let params_name_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 params_small = new ShortintParameters(params_name_small);
let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); 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) => { test("hlapi_compact_public_key_encrypt_decrypt_int32_big_single", (t) => {
const block_params = new ShortintParameters( 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() let config = TfheConfigBuilder.default()
.use_custom_parameters(block_params) .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) => { test("hlapi_compact_public_key_encrypt_decrypt_int32_small_single", (t) => {
const block_params = new ShortintParameters( 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() let config = TfheConfigBuilder.default()
.use_custom_parameters(block_params) .use_custom_parameters(block_params)

View File

@@ -80,7 +80,7 @@ test("hlapi_key_gen_big", (t) => {
test("hlapi_key_gen_small", (t) => { test("hlapi_key_gen_small", (t) => {
let params_name_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 params_small = new ShortintParameters(params_name_small);
let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); 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) => { test("hlapi_public_key_encrypt_decrypt_uint32_small", (t) => {
let params_name_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 params_small = new ShortintParameters(params_name_small);
let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); 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) => { test("hlapi_decompress_public_key_then_encrypt_decrypt_uint32_small", (t) => {
let params_name_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 params_small = new ShortintParameters(params_name_small);
let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); 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) => { test("hlapi_client_key_encrypt_decrypt_uint128_small", (t) => {
let params_name_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 params_small = new ShortintParameters(params_name_small);
let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); 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) => { test("hlapi_client_key_encrypt_decrypt_uint256_small", (t) => {
let params_name_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 params_small = new ShortintParameters(params_name_small);
let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); 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) => { test("hlapi_decompress_public_key_then_encrypt_decrypt_uint256_small", (t) => {
let params_name_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 params_small = new ShortintParameters(params_name_small);
let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); 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) => { test("hlapi_public_key_encrypt_decrypt_uint256_small", (t) => {
let params_name_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 params_small = new ShortintParameters(params_name_small);
let config = TfheConfigBuilder.with_custom_parameters(params_small).build(); let config = TfheConfigBuilder.with_custom_parameters(params_small).build();

View File

@@ -128,7 +128,7 @@ test("shortint_encrypt_decrypt", (t) => {
// Encryption using small keys // Encryption using small keys
let params_name_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 params_small = new ShortintParameters(params_name_small);
let cks_small = Shortint.new_client_key(params_small); let cks_small = Shortint.new_client_key(params_small);
@@ -164,7 +164,7 @@ test("shortint_compressed_encrypt_decrypt", (t) => {
// Encryption using small keys // Encryption using small keys
// We don't have TUniform small params so use previous gaussian ones. // We don't have TUniform small params so use previous gaussian ones.
let params_name_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 params_small = new ShortintParameters(params_name_small);
let cks_small = Shortint.new_client_key(params_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) => { test("shortint_public_encrypt_decrypt", (t) => {
let params_name_2_0 = 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 params_2_0 = new ShortintParameters(params_name_2_0);
let cks = Shortint.new_client_key(params_2_0); let cks = Shortint.new_client_key(params_2_0);
let pk = Shortint.new_public_key(cks); let pk = Shortint.new_public_key(cks);
@@ -199,7 +199,7 @@ test("shortint_public_encrypt_decrypt", (t) => {
// Small // Small
let params_name_2_2_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 params_2_2_small = new ShortintParameters(params_name_2_2_small);
let cks_small = Shortint.new_client_key(params_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) => { 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 params = new ShortintParameters(params_name);
let cks = Shortint.new_client_key(params); let cks = Shortint.new_client_key(params);
let pk = Shortint.new_compressed_public_key(cks); let pk = Shortint.new_compressed_public_key(cks);
@@ -238,7 +239,7 @@ test("shortint_compressed_public_encrypt_decrypt", (t) => {
// Small // Small
let params_name_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 params_small = new ShortintParameters(params_name_small);
let cks_small = Shortint.new_client_key(params_small); let cks_small = Shortint.new_client_key(params_small);

View File

@@ -8,6 +8,7 @@ use crate::shortint::parameters::v1_1::*;
use crate::shortint::parameters::v1_2::*; use crate::shortint::parameters::v1_2::*;
use crate::shortint::parameters::v1_3::*; use crate::shortint::parameters::v1_3::*;
use crate::shortint::parameters::v1_4::*; use crate::shortint::parameters::v1_4::*;
use crate::shortint::parameters::v1_5::*;
pub use crate::shortint::parameters::*; pub use crate::shortint::parameters::*;
use crate::shortint::parameters::{ use crate::shortint::parameters::{
ModulusSwitchNoiseReductionParams as RustModulusSwitchNoiseReductionParams, 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_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128,
PARAM_KEYSWITCH_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_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128,
V1_4_PARAM_KEYSWITCH_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!( expose_as_shortint_pbs_parameters!(
(V1_5, M128),
(V1_4, M128), (V1_4, M128),
(V1_3, M128), (V1_3, M128),
(V1_2, M128), (V1_2, M128),
@@ -686,6 +692,9 @@ macro_rules! expose_as_shortint_compression_parameters(
expose_as_shortint_compression_parameters!( expose_as_shortint_compression_parameters!(
COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, 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
V1_4_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, 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, V1_4_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128,

View File

@@ -634,11 +634,11 @@ mod tests {
#[test] #[test]
fn test_compressed_squashed_noise_ciphertext_list() { 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 = 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 = 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) let config = ConfigBuilder::with_custom_parameters(params)
.enable_noise_squashing(noise_squashing_params) .enable_noise_squashing(noise_squashing_params)
@@ -692,11 +692,11 @@ mod tests {
#[test] #[test]
#[cfg(feature = "gpu")] #[cfg(feature = "gpu")]
fn test_gpu_compressed_squashed_noise_ciphertext_list() { 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 = 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 = 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) let config = ConfigBuilder::with_custom_parameters(params)
.enable_noise_squashing(noise_squashing_params) .enable_noise_squashing(noise_squashing_params)

View File

@@ -155,19 +155,18 @@ mod tests {
ProvenCompactCiphertextList, ProvenCompactCiphertextList,
}; };
use crate::shortint::parameters::test_params::TEST_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2; 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::{ use crate::shortint::parameters::{
CompactPublicKeyEncryptionParameters, ShortintKeySwitchingParameters, CompactPublicKeyEncryptionParameters, ShortintKeySwitchingParameters,
PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, 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_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128,
PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128,
}; };
use crate::shortint::PBSParameters; use crate::shortint::PBSParameters;
use crate::zk::{CompactPkeCrs, ZkComputeLoad}; use crate::zk::{CompactPkeCrs, ZkComputeLoad};
use rand::random; use rand::random;
use std::num::NonZero;
#[test] #[test]
fn test_zk_compact_ciphertext_list_encryption() { fn test_zk_compact_ciphertext_list_encryption() {
@@ -177,17 +176,17 @@ mod tests {
PBSParameters, PBSParameters,
); 3] = [ ); 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, 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_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_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_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_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128,
PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128.into(), PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128.into(),
), ),
@@ -268,17 +267,17 @@ mod tests {
PBSParameters, PBSParameters,
); 3] = [ ); 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, 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_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_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_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_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128,
PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128.into(), PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128.into(),
), ),
@@ -358,17 +357,17 @@ mod tests {
PBSParameters, PBSParameters,
); 3] = [ ); 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, 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_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_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_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_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128,
PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128.into(), PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128.into(),
), ),

View File

@@ -12,6 +12,7 @@ use crate::shortint::parameters::v1_1::*;
use crate::shortint::parameters::v1_2::*; use crate::shortint::parameters::v1_2::*;
use crate::shortint::parameters::v1_3::*; use crate::shortint::parameters::v1_3::*;
use crate::shortint::parameters::v1_4::*; use crate::shortint::parameters::v1_4::*;
use crate::shortint::parameters::v1_5::*;
use crate::shortint::parameters::*; use crate::shortint::parameters::*;
use std::panic::set_hook; use std::panic::set_hook;
use wasm_bindgen::prelude::*; 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_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1,
V1_4_PARAM_KEYSWITCH_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] #[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 // 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 // compatible order starting with 1.1, new versions are now added at the END
expose_predefined_pbs_parameters!( 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_0_KS_PBS_GAUSSIAN_2,
PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2, PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2,
PARAM_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2, PARAM_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2,

View File

@@ -323,21 +323,21 @@ impl KeySwitchingKey {
/// ///
/// ```rust /// ```rust
/// use tfhe::shortint::parameters::current_params::{ /// use tfhe::shortint::parameters::current_params::{
/// 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,
/// V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, /// V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128,
/// V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, /// V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128,
/// }; /// };
/// use tfhe::shortint::{gen_keys, KeySwitchingKey}; /// use tfhe::shortint::{gen_keys, KeySwitchingKey};
/// ///
/// // Generate the client keys and server keys: /// // Generate the client keys and server keys:
/// let (ck1, sk1) = gen_keys(V1_4_PARAM_MESSAGE_1_CARRY_1_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_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128); /// let (ck2, sk2) = gen_keys(V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128);
/// ///
/// // Generate the server key: /// // Generate the server key:
/// let ksk = KeySwitchingKey::new( /// let ksk = KeySwitchingKey::new(
/// (&ck1, Some(&sk1)), /// (&ck1, Some(&sk1)),
/// (&ck2, &sk2), /// (&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>( pub fn new<'input_key, InputEncryptionKey>(
@@ -469,21 +469,21 @@ impl KeySwitchingKey {
/// ///
/// ```rust /// ```rust
/// use tfhe::shortint::parameters::current_params::{ /// use tfhe::shortint::parameters::current_params::{
/// 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,
/// V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, /// V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128,
/// V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, /// V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128,
/// }; /// };
/// use tfhe::shortint::{gen_keys, KeySwitchingKey}; /// use tfhe::shortint::{gen_keys, KeySwitchingKey};
/// ///
/// // Generate the client keys and server keys: /// // Generate the client keys and server keys:
/// let (ck1, sk1) = gen_keys(V1_4_PARAM_MESSAGE_1_CARRY_1_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_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128); /// let (ck2, sk2) = gen_keys(V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128);
/// ///
/// // Generate the server key: /// // Generate the server key:
/// let ksk = KeySwitchingKey::new( /// let ksk = KeySwitchingKey::new(
/// (&ck1, Some(&sk1)), /// (&ck1, Some(&sk1)),
/// (&ck2, &sk2), /// (&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; /// let cleartext = 1;
@@ -615,21 +615,21 @@ impl<'keys> KeySwitchingKeyView<'keys> {
/// ///
/// ```rust /// ```rust
/// use tfhe::shortint::parameters::current_params::{ /// use tfhe::shortint::parameters::current_params::{
/// 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,
/// V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, /// V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128,
/// V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, /// V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128,
/// }; /// };
/// use tfhe::shortint::{gen_keys, KeySwitchingKey}; /// use tfhe::shortint::{gen_keys, KeySwitchingKey};
/// ///
/// // Generate the client keys and server keys: /// // Generate the client keys and server keys:
/// let (ck1, sk1) = gen_keys(V1_4_PARAM_MESSAGE_1_CARRY_1_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_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128); /// let (ck2, sk2) = gen_keys(V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128);
/// ///
/// // Generate the server key: /// // Generate the server key:
/// let ksk = KeySwitchingKey::new( /// let ksk = KeySwitchingKey::new(
/// (&ck1, Some(&sk1)), /// (&ck1, Some(&sk1)),
/// (&ck2, &sk2), /// (&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; /// let cleartext = 1;

View File

@@ -12,311 +12,311 @@ use crate::shortint::{ClientKey, KeySwitchingKey, ServerKey};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
named_params_impl!( ShortintParameterSet => named_params_impl!( ShortintParameterSet =>
V1_4_PARAM_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_3_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_4_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_5_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_6_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_7_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_2_CARRY_0_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_2_CARRY_1_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_2_CARRY_3_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_2_CARRY_4_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_2_CARRY_5_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_2_CARRY_6_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_3_CARRY_0_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_3_CARRY_1_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_3_CARRY_2_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_3_CARRY_4_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_3_CARRY_5_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_4_CARRY_0_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_4_CARRY_1_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_4_CARRY_2_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_4_CARRY_3_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_5_CARRY_0_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_5_CARRY_1_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_5_CARRY_2_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_5_CARRY_3_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_6_CARRY_0_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_6_CARRY_1_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_6_CARRY_2_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M128,
// Small // Small
V1_4_PARAM_MESSAGE_1_CARRY_1_PBS_KS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_1_CARRY_1_PBS_KS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_3_CARRY_3_PBS_KS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_3_CARRY_3_PBS_KS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_4_CARRY_4_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 // For GPU classical tests until they have the drift technique parameters
// To avoid crashing shortint tests with slow/too large keys for 4_4 // To avoid crashing shortint tests with slow/too large keys for 4_4
// And to have parameters without drift technique for WOPBS tests // And to have parameters without drift technique for WOPBS tests
V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64, V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64,
V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64,
V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64, V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64,
V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64, V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64,
// MultiBit Group 2 // MultiBit Group 2
V1_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_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,
V1_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_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,
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,
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,
V1_4_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,
// MultiBit Group 3 // MultiBit Group 3
V1_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_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,
V1_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_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,
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,
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,
V1_4_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,
// MultiBit Group 4 // MultiBit Group 4
V1_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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,
// CPU Multibit TUniform // CPU Multibit TUniform
V1_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
// MultiBit Group 3 GPU // MultiBit Group 3 GPU
V1_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_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,
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,
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,
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,
// GPU MultiBit Group 2 // GPU MultiBit Group 2
V1_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_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,
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,
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,
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,
// GPU MultiBit Group 4 // GPU MultiBit Group 4
V1_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_4_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_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,
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,
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,
V1_4_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_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,
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,
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,
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,
// CPK // CPK
V1_4_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_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,
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,
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,
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,
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,
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,
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,
V1_4_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_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,
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,
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,
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,
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,
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,
V1_4_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_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,
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,
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,
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,
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,
V1_4_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_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,
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,
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,
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,
V1_4_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_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,
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,
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,
V1_4_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_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,
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,
V1_4_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_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,
V1_4_PARAM_MESSAGE_8_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_8_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M128,
// CPK SMALL // CPK SMALL
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,
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,
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,
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,
// TUniform // TUniform
PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128,
V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40, V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M40,
V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40, V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M40,
V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40, V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M40,
V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40, V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M40,
V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64, V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64,
V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64, V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64,
V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64, V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M64,
V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64, V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M64,
V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128, V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128,
V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128,
V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128, V1_5_PARAM_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128,
V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128, V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128,
// KS32 AP with TUniform // 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 // Wopbs
LEGACY_WOPBS_PARAM_MESSAGE_1_CARRY_0_KS_PBS, LEGACY_WOPBS_PARAM_MESSAGE_1_CARRY_0_KS_PBS,
LEGACY_WOPBS_PARAM_MESSAGE_1_CARRY_1_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, COVERAGE_PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS_GAUSSIAN_2M64,
#[cfg(feature ="hpu")] #[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")] #[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")] #[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 { impl NamedParam for ClassicPBSParameters {
@@ -451,7 +451,7 @@ impl NamedParam for KeySwitch32PBSParameters {
} }
named_params_impl!(ShortintKeySwitchingParameters => 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 ; fallback => ks_params_default_name
); );
@@ -475,7 +475,7 @@ fn comp_params_default_name(params: &CompressionParameters) -> String {
} }
named_params_impl!(CompactPublicKeyEncryptionParameters => 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 ; fallback => cpke_params_default_name
); );
@@ -487,13 +487,13 @@ fn cpke_params_default_name(params: &CompactPublicKeyEncryptionParameters) -> St
} }
named_params_impl!( NoiseSquashingParameters => named_params_impl!( 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,
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,
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,
); );
named_params_impl!( NoiseSquashingCompressionParameters => 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<AtomicPatternParameters> for (ClientKey, ServerKey) { impl From<AtomicPatternParameters> for (ClientKey, ServerKey) {

View File

@@ -126,7 +126,6 @@ mod test {
use crate::shortint::noise_squashing::{ use crate::shortint::noise_squashing::{
NoiseSquashingKey, NoiseSquashingPrivateKey, NoiseSquashingPrivateKeyView, 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 crate::shortint::parameters::*;
use rand::prelude::*; use rand::prelude::*;
@@ -143,7 +142,7 @@ mod test {
let noise_squashing_key = NoiseSquashingKey::new(cks, &noise_squashing_private_key); let noise_squashing_key = NoiseSquashingKey::new(cks, &noise_squashing_private_key);
let compression_private_key = NoiseSquashingCompressionPrivateKey::new( 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 let compression_key = noise_squashing_private_key
@@ -153,7 +152,7 @@ mod test {
let id_lut = sks.generate_lookup_table(|x| x); let id_lut = sks.generate_lookup_table(|x| x);
let max_ct_count = 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] { for ct_count in [0, 1, max_ct_count.0] {
// Generate random msgs // Generate random msgs

View File

@@ -4,55 +4,54 @@ use crate::shortint::parameters::{
NoiseSquashingCompressionParameters, NoiseSquashingParameters, ShortintKeySwitchingParameters, 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::{ use current_params::classic::gaussian::p_fail_2_minus_128::ks_pbs::{
V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128, V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128,
V1_4_PARAM_MESSAGE_3_CARRY_3_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::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_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; 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_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64; 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_4_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; 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::{ 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_5_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_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::{ 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_5_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_5_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_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128,
}; };
use current_params::list_compression::p_fail_2_minus_64::{ use current_params::list_compression::p_fail_2_minus_64::{
V1_4_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64, V1_5_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_TUNIFORM_2M64,
}; };
use current_params::multi_bit::gaussian::p_fail_2_minus_128::ks_pbs_gpu::{ 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_5_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_5_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_3_CARRY_3_KS_PBS_GAUSSIAN_2M128,
}; };
use current_params::multi_bit::gaussian::p_fail_2_minus_64::ks_pbs_gpu::{ 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_5_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_5_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_3_CARRY_3_KS_PBS_GAUSSIAN_2M64,
}; };
use current_params::multi_bit::tuniform::p_fail_2_minus_128::ks_pbs_gpu::{ 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_5_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_5_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_3_CARRY_3_KS_PBS_TUNIFORM_2M128,
}; };
use current_params::multi_bit::tuniform::p_fail_2_minus_64::ks_pbs_gpu::{ 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_5_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_5_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_3_CARRY_3_KS_PBS_TUNIFORM_2M64,
}; };
use current_params::noise_squashing::p_fail_2_minus_128::{ 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_5_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_5_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_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_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128,
}; };
// Aliases // Aliases
@@ -60,20 +59,20 @@ use current_params::noise_squashing::p_fail_2_minus_128::{
// Compute Gaussian // Compute Gaussian
// 2M128 // 2M128
pub const PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = 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 // Used by CRT doctests
pub const PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = 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 // 2M64
pub const PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = 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 // Compute TUniform
// 2M128 // 2M128
pub const PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ClassicPBSParameters = 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 = pub const PARAM_MESSAGE_2_CARRY_2_KS_PBS: ClassicPBSParameters =
PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; 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 // 2M64
pub const PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64: ClassicPBSParameters = 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 // Compute KS32
// 2M128 // 2M128
pub const PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128: KeySwitch32PBSParameters = 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 // Compression Gaussian
// 2M128 // 2M128
pub const COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: CompressionParameters = 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 // 2M64
pub const COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: CompressionParameters = 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 // Compression TUniform
// 2M128 // 2M128
pub const COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: CompressionParameters = 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: pub const COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
CompressionParameters = 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 = pub const COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS: CompressionParameters =
COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128; 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 // 2M64
pub const COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M64: CompressionParameters = 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 // PKE TUniform
pub const PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: CompactPublicKeyEncryptionParameters = 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 // PKE To Compute Keyswitch
pub const PARAM_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ShortintKeySwitchingParameters = 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: pub const PARAM_KEYSWITCH_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
ShortintKeySwitchingParameters = 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: pub const PARAM_KEYSWITCH_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
ShortintKeySwitchingParameters = 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 // Noise squashing
pub const NOISE_SQUASHING_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: NoiseSquashingParameters = 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 // Noise squashing compression
pub const NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: pub const NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
NoiseSquashingCompressionParameters = 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: pub const NOISE_SQUASHING_PARAM_GPU_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
NoiseSquashingParameters = 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: pub const NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
NoiseSquashingParameters = 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 2^-64
// GPU TUniform // GPU TUniform
pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M64: 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: 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: 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 // GPU Gaussian
pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: 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: 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: 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 2^-128
// GPU TUniform // GPU TUniform
pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128: pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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: pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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 = 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; 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 // GPU Gaussian
pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128:
MultiBitPBSParameters = 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: pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128:
MultiBitPBSParameters = 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: pub const PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128:
MultiBitPBSParameters = 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 // GPU PKE To Compute Keyswitch
pub const PARAM_GPU_MULTI_BIT_GROUP_4_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: pub const PARAM_GPU_MULTI_BIT_GROUP_4_KEYSWITCH_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
ShortintKeySwitchingParameters = 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;

View File

@@ -58,9 +58,10 @@ pub mod v1_1;
pub mod v1_2; pub mod v1_2;
pub mod v1_3; pub mod v1_3;
pub mod v1_4; pub mod v1_4;
pub mod v1_5;
// TODO, what do we do about this one ? // TODO, what do we do about this one ?
pub use aliases::*; pub use aliases::*;
pub use v1_4 as current_params; pub use v1_5 as current_params;
pub use super::atomic_pattern::{AtomicPatternKind, AtomicPatternParameters}; pub use super::atomic_pattern::{AtomicPatternKind, AtomicPatternParameters};
use super::backward_compatibility::parameters::modulus_switch_noise_reduction::ModulusSwitchNoiseReductionParamsVersions; use super::backward_compatibility::parameters::modulus_switch_noise_reduction::ModulusSwitchNoiseReductionParamsVersions;

View File

@@ -15,219 +15,219 @@ pub type TestParameters = AtomicPatternParameters;
// Classic // Classic
// CPK Gaussian // CPK Gaussian
pub const TEST_PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 // KS PBS Gaussian
// 2^-64 // 2^-64
pub const TEST_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters = 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 = 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 = 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 = 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 // 2^-128
pub const TEST_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 // PBS KS Gaussian
pub const TEST_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128: ClassicPBSParameters = 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 // KS PBS TUniform
pub const TEST_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: ClassicPBSParameters = 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 // MultiBit
// CPU Gaussian // CPU Gaussian
pub const TEST_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: 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: 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: 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: 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: 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: 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: 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 // GPU Gaussian
pub const TEST_PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: 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: 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 // GPU TUniform
pub const TEST_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: pub const TEST_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
MultiBitPBSParameters = 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 // PKE ZK V1
pub const TEST_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1: pub const TEST_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV1:
CompactPublicKeyEncryptionParameters = 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 // PKE ZK V2
pub const TEST_PARAM_PKE_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: 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: pub const TEST_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2:
CompactPublicKeyEncryptionParameters = 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: pub const TEST_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2:
CompactPublicKeyEncryptionParameters = 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 // KS
pub const TEST_PARAM_KEYSWITCH_1_1_KS_PBS_TO_2_2_KS_PBS_GAUSSIAN_2M128: 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: 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: pub const TEST_PARAM_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
ShortintKeySwitchingParameters = 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: pub const TEST_PARAM_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
ShortintKeySwitchingParameters = 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 // ZKV1
pub const TEST_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 = 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 // Compression
pub const TEST_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128: CompressionParameters = 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: pub const TEST_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
CompressionParameters = 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 // KS32 PBS AP
pub const TEST_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128: KeySwitch32PBSParameters = 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: pub const TEST_PARAM_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128:
NoiseSquashingCompressionParameters = 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: 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;

View File

@@ -0,0 +1,2 @@
pub mod p_fail_2_minus_128;
pub mod p_fail_2_minus_64;

View File

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

View File

@@ -0,0 +1,2 @@
pub mod ks_pbs;
pub mod pbs_ks;

View File

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

View File

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

View File

@@ -0,0 +1,2 @@
pub mod ks_pbs;
pub mod pbs_ks;

View File

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

View File

@@ -0,0 +1 @@
pub mod gaussian;

View File

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

View File

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

View File

@@ -0,0 +1,2 @@
pub mod ks_pbs;
pub mod pbs_ks;

View File

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

View File

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

View File

@@ -0,0 +1 @@
pub mod ks_pbs;

View File

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

View File

@@ -0,0 +1 @@
pub mod ks_pbs;

View File

@@ -0,0 +1,3 @@
pub mod compact_pk;
pub mod gaussian;
pub mod tuniform;

View File

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

View File

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

View File

@@ -0,0 +1 @@
pub mod ks_pbs;

View File

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

View File

@@ -0,0 +1 @@
pub mod ks_pbs;

View File

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

View File

@@ -0,0 +1 @@
pub mod ks_pbs;

View File

@@ -0,0 +1 @@
pub mod p_fail_2_minus_128;

View File

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

View File

@@ -0,0 +1 @@
pub mod ks_pbs;

View File

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

View File

@@ -0,0 +1 @@
pub mod p_fail_2_minus_128;

View File

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

View File

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

View File

@@ -0,0 +1,2 @@
pub mod ks_pbs;
pub mod ks_pbs_gpu;

View File

@@ -0,0 +1 @@
pub mod tuniform;

View File

@@ -0,0 +1 @@
pub mod p_fail_2_minus_128;

View File

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

View File

@@ -0,0 +1 @@
pub mod ks_pbs;

View File

@@ -0,0 +1,2 @@
pub mod p_fail_2_minus_128;
pub mod p_fail_2_minus_64;

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -0,0 +1,2 @@
pub mod cpu;
pub mod gpu;

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,2 @@
pub mod ks_pbs;
pub mod ks_pbs_gpu;

View File

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

View File

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

View File

@@ -0,0 +1,2 @@
pub mod ks_pbs;
pub mod ks_pbs_gpu;

View File

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

View File

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

View File

@@ -0,0 +1,2 @@
pub mod ks_pbs;
pub mod ks_pbs_gpu;

View File

@@ -0,0 +1,2 @@
pub mod gaussian;
pub mod tuniform;

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,2 @@
pub mod ks_pbs;
pub mod ks_pbs_gpu;

Some files were not shown because too many files have changed in this diff Show More