mirror of
https://github.com/zama-ai/tfhe-rs.git
synced 2026-01-10 07:08:03 -05:00
chore(tfhe): remove last remaining modular_std_dev
- some places were not updated, remove the last non modular std_dev - the ones to dump parameters are modular so are kept
This commit is contained in:
@@ -32,8 +32,12 @@ fn main() {
|
||||
LweDimension(586),
|
||||
GlweDimension(2),
|
||||
PolynomialSize(512),
|
||||
StandardDev(0.00008976167396834998),
|
||||
StandardDev(0.00000002989040792967434),
|
||||
DynamicDistribution::new_gaussian_from_std_dev(
|
||||
StandardDev(0.00008976167396834998),
|
||||
),
|
||||
DynamicDistribution::new_gaussian_from_std_dev(
|
||||
StandardDev(0.00000002989040792967434),
|
||||
),
|
||||
DecompositionBaseLog(8),
|
||||
DecompositionLevelCount(2),
|
||||
DecompositionBaseLog(2),
|
||||
|
||||
@@ -52,6 +52,7 @@ For instance:
|
||||
|
||||
```rust
|
||||
use tfhe::shortint::prelude::*;
|
||||
use tfhe::shortint::parameters::DynamicDistribution;
|
||||
|
||||
fn main() {
|
||||
let param = unsafe {
|
||||
@@ -59,8 +60,12 @@ fn main() {
|
||||
LweDimension(656),
|
||||
GlweDimension(2),
|
||||
PolynomialSize(512),
|
||||
StandardDev(0.000034119201269311964),
|
||||
StandardDev(0.00000004053919869756513),
|
||||
DynamicDistribution::new_gaussian_from_std_dev(
|
||||
StandardDev(0.000034119201269311964),
|
||||
),
|
||||
DynamicDistribution::new_gaussian_from_std_dev(
|
||||
StandardDev(0.00000004053919869756513),
|
||||
),
|
||||
DecompositionBaseLog(8),
|
||||
DecompositionLevelCount(2),
|
||||
DecompositionBaseLog(3),
|
||||
|
||||
@@ -67,8 +67,8 @@ impl BooleanParameters {
|
||||
lwe_dimension: LweDimension,
|
||||
glwe_dimension: GlweDimension,
|
||||
polynomial_size: PolynomialSize,
|
||||
lwe_modular_std_dev: StandardDev,
|
||||
glwe_modular_std_dev: StandardDev,
|
||||
lwe_noise_distribution: DynamicDistribution<u32>,
|
||||
glwe_noise_distribution: DynamicDistribution<u32>,
|
||||
pbs_base_log: DecompositionBaseLog,
|
||||
pbs_level: DecompositionLevelCount,
|
||||
ks_base_log: DecompositionBaseLog,
|
||||
@@ -79,12 +79,8 @@ impl BooleanParameters {
|
||||
lwe_dimension,
|
||||
glwe_dimension,
|
||||
polynomial_size,
|
||||
lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(
|
||||
lwe_modular_std_dev,
|
||||
),
|
||||
glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(
|
||||
glwe_modular_std_dev,
|
||||
),
|
||||
lwe_noise_distribution,
|
||||
glwe_noise_distribution,
|
||||
pbs_base_log,
|
||||
pbs_level,
|
||||
ks_base_log,
|
||||
|
||||
@@ -186,7 +186,7 @@ fn lwe_encrypt_multi_bit_deterministic_pbs_decrypt_custom_mod<Scalar>(
|
||||
+ DeserializeOwned,
|
||||
MultiBitTestParams<Scalar>: KeyCacheAccess<Keys = MultiBitBootstrapKeys<Scalar>>,
|
||||
{
|
||||
let lwe_modular_std_dev = params.lwe_noise_distribution;
|
||||
let lwe_noise_distribution = params.lwe_noise_distribution;
|
||||
let ciphertext_modulus = params.ciphertext_modulus;
|
||||
let message_modulus_log = params.message_modulus_log;
|
||||
let msg_modulus = Scalar::ONE.shl(message_modulus_log.0);
|
||||
@@ -235,7 +235,7 @@ fn lwe_encrypt_multi_bit_deterministic_pbs_decrypt_custom_mod<Scalar>(
|
||||
let lwe_ciphertext_in = allocate_and_encrypt_new_lwe_ciphertext(
|
||||
&input_lwe_secret_key,
|
||||
plaintext,
|
||||
lwe_modular_std_dev,
|
||||
lwe_noise_distribution,
|
||||
ciphertext_modulus,
|
||||
&mut rsc.encryption_random_generator,
|
||||
);
|
||||
@@ -313,7 +313,7 @@ where
|
||||
+ DeserializeOwned,
|
||||
MultiBitTestParams<Scalar>: KeyCacheAccess<Keys = MultiBitBootstrapKeys<Scalar>>,
|
||||
{
|
||||
let lwe_modular_std_dev = params.lwe_noise_distribution;
|
||||
let lwe_noise_distribution = params.lwe_noise_distribution;
|
||||
let ciphertext_modulus = params.ciphertext_modulus;
|
||||
let message_modulus_log = params.message_modulus_log;
|
||||
let msg_modulus = Scalar::ONE.shl(message_modulus_log.0);
|
||||
@@ -362,7 +362,7 @@ where
|
||||
let lwe_ciphertext_in = allocate_and_encrypt_new_lwe_ciphertext(
|
||||
&input_lwe_secret_key,
|
||||
plaintext,
|
||||
lwe_modular_std_dev,
|
||||
lwe_noise_distribution,
|
||||
ciphertext_modulus,
|
||||
&mut rsc.encryption_random_generator,
|
||||
);
|
||||
@@ -417,7 +417,7 @@ fn std_lwe_encrypt_multi_bit_deterministic_pbs_decrypt_custom_mod<Scalar>(
|
||||
+ DeserializeOwned,
|
||||
MultiBitTestParams<Scalar>: KeyCacheAccess<Keys = MultiBitBootstrapKeys<Scalar>>,
|
||||
{
|
||||
let lwe_modular_std_dev = params.lwe_noise_distribution;
|
||||
let lwe_noise_distribution = params.lwe_noise_distribution;
|
||||
let ciphertext_modulus = params.ciphertext_modulus;
|
||||
let message_modulus_log = params.message_modulus_log;
|
||||
let msg_modulus = Scalar::ONE.shl(message_modulus_log.0);
|
||||
@@ -466,7 +466,7 @@ fn std_lwe_encrypt_multi_bit_deterministic_pbs_decrypt_custom_mod<Scalar>(
|
||||
let lwe_ciphertext_in = allocate_and_encrypt_new_lwe_ciphertext(
|
||||
&input_lwe_secret_key,
|
||||
plaintext,
|
||||
lwe_modular_std_dev,
|
||||
lwe_noise_distribution,
|
||||
ciphertext_modulus,
|
||||
&mut rsc.encryption_random_generator,
|
||||
);
|
||||
|
||||
@@ -390,7 +390,9 @@ pub const TEST_PARAMS_4_BITS_NATIVE_U128: ClassicTestParams<u128> = ClassicTestP
|
||||
ks_base_log: DecompositionBaseLog(3),
|
||||
pfks_level: DecompositionLevelCount(1),
|
||||
pfks_base_log: DecompositionBaseLog(23),
|
||||
pfks_modular_std_dev: StandardDev(0.00000000000000029403601535432533),
|
||||
pfks_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
|
||||
0.00000000000000029403601535432533,
|
||||
)),
|
||||
cbs_level: DecompositionLevelCount(0),
|
||||
cbs_base_log: DecompositionBaseLog(0),
|
||||
message_modulus_log: CiphertextModulusLog(4),
|
||||
@@ -413,7 +415,9 @@ pub const TEST_PARAMS_3_BITS_127_U128: ClassicTestParams<u128> = ClassicTestPara
|
||||
ks_base_log: DecompositionBaseLog(3),
|
||||
pfks_level: DecompositionLevelCount(1),
|
||||
pfks_base_log: DecompositionBaseLog(23),
|
||||
pfks_modular_std_dev: StandardDev(0.00000000000000029403601535432533),
|
||||
pfks_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
|
||||
0.00000000000000029403601535432533,
|
||||
)),
|
||||
cbs_level: DecompositionLevelCount(0),
|
||||
cbs_base_log: DecompositionBaseLog(0),
|
||||
message_modulus_log: CiphertextModulusLog(3),
|
||||
|
||||
@@ -69,7 +69,9 @@ pub const TEST_PARAMS_4_BITS_NATIVE_U64: ClassicTestParams<u64> = ClassicTestPar
|
||||
ks_base_log: DecompositionBaseLog(3),
|
||||
pfks_level: DecompositionLevelCount(1),
|
||||
pfks_base_log: DecompositionBaseLog(23),
|
||||
pfks_modular_std_dev: StandardDev(0.00000000000000029403601535432533),
|
||||
pfks_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
|
||||
0.00000000000000029403601535432533,
|
||||
)),
|
||||
cbs_level: DecompositionLevelCount(0),
|
||||
cbs_base_log: DecompositionBaseLog(0),
|
||||
message_modulus_log: CiphertextModulusLog(4),
|
||||
@@ -92,7 +94,9 @@ pub const TEST_PARAMS_3_BITS_63_U64: ClassicTestParams<u64> = ClassicTestParams
|
||||
ks_base_log: DecompositionBaseLog(3),
|
||||
pfks_level: DecompositionLevelCount(1),
|
||||
pfks_base_log: DecompositionBaseLog(23),
|
||||
pfks_modular_std_dev: StandardDev(0.00000000000000029403601535432533),
|
||||
pfks_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
|
||||
0.00000000000000029403601535432533,
|
||||
)),
|
||||
cbs_level: DecompositionLevelCount(0),
|
||||
cbs_base_log: DecompositionBaseLog(0),
|
||||
message_modulus_log: CiphertextModulusLog(3),
|
||||
@@ -115,7 +119,9 @@ pub const TEST_PARAMS_3_BITS_SOLINAS_U64: ClassicTestParams<u64> = ClassicTestPa
|
||||
ks_base_log: DecompositionBaseLog(3),
|
||||
pfks_level: DecompositionLevelCount(1),
|
||||
pfks_base_log: DecompositionBaseLog(23),
|
||||
pfks_modular_std_dev: StandardDev(0.00000000000000029403601535432533),
|
||||
pfks_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
|
||||
0.00000000000000029403601535432533,
|
||||
)),
|
||||
cbs_level: DecompositionLevelCount(0),
|
||||
cbs_base_log: DecompositionBaseLog(0),
|
||||
message_modulus_log: CiphertextModulusLog(3),
|
||||
@@ -138,7 +144,9 @@ pub const DUMMY_NATIVE_U32: ClassicTestParams<u32> = ClassicTestParams {
|
||||
ks_base_log: DecompositionBaseLog(3),
|
||||
pfks_level: DecompositionLevelCount(1),
|
||||
pfks_base_log: DecompositionBaseLog(23),
|
||||
pfks_modular_std_dev: StandardDev(0.00000000000000029403601535432533),
|
||||
pfks_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
|
||||
0.00000000000000029403601535432533,
|
||||
)),
|
||||
cbs_level: DecompositionLevelCount(0),
|
||||
cbs_base_log: DecompositionBaseLog(0),
|
||||
message_modulus_log: CiphertextModulusLog(4),
|
||||
@@ -161,7 +169,9 @@ pub const DUMMY_31_U32: ClassicTestParams<u32> = ClassicTestParams {
|
||||
ks_base_log: DecompositionBaseLog(3),
|
||||
pfks_level: DecompositionLevelCount(1),
|
||||
pfks_base_log: DecompositionBaseLog(23),
|
||||
pfks_modular_std_dev: StandardDev(0.00000000000000029403601535432533),
|
||||
pfks_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
|
||||
0.00000000000000029403601535432533,
|
||||
)),
|
||||
cbs_level: DecompositionLevelCount(0),
|
||||
cbs_base_log: DecompositionBaseLog(0),
|
||||
message_modulus_log: CiphertextModulusLog(3),
|
||||
@@ -314,7 +324,9 @@ pub const FFT_WOPBS_PARAMS: FftWopPbsTestParams<u64> = FftWopPbsTestParams {
|
||||
// Value was 0.000_061_200_133_780_220_371_345
|
||||
// But rust indicates it gets truncated anyways to
|
||||
// 0.000_061_200_133_780_220_36
|
||||
glwe_modular_std_dev: StandardDev(0.000_061_200_133_780_220_36),
|
||||
glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
|
||||
0.000_061_200_133_780_220_36,
|
||||
)),
|
||||
pbs_base_log: DecompositionBaseLog(4),
|
||||
pbs_level: DecompositionLevelCount(9),
|
||||
pfks_level: DecompositionLevelCount(9),
|
||||
@@ -331,7 +343,9 @@ pub const FFT_WOPBS_N512_PARAMS: FftWopPbsTestParams<u64> = FftWopPbsTestParams
|
||||
lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
|
||||
0.000_000_000_000_000_221_486_881_160_055_68,
|
||||
)),
|
||||
glwe_modular_std_dev: StandardDev(0.000_061_200_133_780_220_36),
|
||||
glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
|
||||
0.000_061_200_133_780_220_36,
|
||||
)),
|
||||
pbs_base_log: DecompositionBaseLog(9),
|
||||
pbs_level: DecompositionLevelCount(4),
|
||||
pfks_level: DecompositionLevelCount(2),
|
||||
@@ -348,7 +362,9 @@ pub const FFT_WOPBS_N1024_PARAMS: FftWopPbsTestParams<u64> = FftWopPbsTestParams
|
||||
lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
|
||||
0.000_000_000_000_000_221_486_881_160_055_68,
|
||||
)),
|
||||
glwe_modular_std_dev: StandardDev(0.000_061_200_133_780_220_36),
|
||||
glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
|
||||
0.000_061_200_133_780_220_36,
|
||||
)),
|
||||
pbs_base_log: DecompositionBaseLog(9),
|
||||
pbs_level: DecompositionLevelCount(4),
|
||||
pfks_level: DecompositionLevelCount(2),
|
||||
@@ -365,7 +381,9 @@ pub const FFT_WOPBS_N2048_PARAMS: FftWopPbsTestParams<u64> = FftWopPbsTestParams
|
||||
lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
|
||||
0.000_000_000_000_000_221_486_881_160_055_68,
|
||||
)),
|
||||
glwe_modular_std_dev: StandardDev(0.000_061_200_133_780_220_36),
|
||||
glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
|
||||
0.000_061_200_133_780_220_36,
|
||||
)),
|
||||
pbs_base_log: DecompositionBaseLog(9),
|
||||
pbs_level: DecompositionLevelCount(4),
|
||||
pfks_level: DecompositionLevelCount(2),
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
use crate::core_crypto::commons::dispersion::*;
|
||||
use crate::core_crypto::commons::parameters::*;
|
||||
use crate::core_crypto::entities::*;
|
||||
use crate::core_crypto::prelude::{CastFrom, CastInto, UnsignedInteger};
|
||||
@@ -59,7 +58,7 @@ pub struct ClassicTestParams<Scalar: UnsignedInteger> {
|
||||
pub ks_level: DecompositionLevelCount,
|
||||
pub pfks_level: DecompositionLevelCount,
|
||||
pub pfks_base_log: DecompositionBaseLog,
|
||||
pub pfks_modular_std_dev: StandardDev,
|
||||
pub pfks_noise_distribution: DynamicDistribution<Scalar>,
|
||||
pub cbs_level: DecompositionLevelCount,
|
||||
pub cbs_base_log: DecompositionBaseLog,
|
||||
pub message_modulus_log: CiphertextModulusLog,
|
||||
@@ -118,7 +117,7 @@ pub struct FftWopPbsTestParams<Scalar: UnsignedInteger> {
|
||||
pub glwe_dimension: GlweDimension,
|
||||
pub polynomial_size: PolynomialSize,
|
||||
pub lwe_noise_distribution: DynamicDistribution<Scalar>,
|
||||
pub glwe_modular_std_dev: StandardDev,
|
||||
pub glwe_noise_distribution: DynamicDistribution<Scalar>,
|
||||
pub pbs_base_log: DecompositionBaseLog,
|
||||
pub pbs_level: DecompositionLevelCount,
|
||||
pub pfks_level: DecompositionLevelCount,
|
||||
|
||||
@@ -155,7 +155,7 @@ pub mod tests {
|
||||
K: FourierBootstrapKey<Scalar>,
|
||||
FftTestParams<Scalar>: KeyCacheAccess<Keys = FftBootstrapKeys<Scalar>>,
|
||||
{
|
||||
let lwe_modular_std_dev = params.lwe_noise_distribution;
|
||||
let lwe_noise_distribution = params.lwe_noise_distribution;
|
||||
let glwe_dimension = params.glwe_dimension;
|
||||
let polynomial_size = params.polynomial_size;
|
||||
let ciphertext_modulus = params.ciphertext_modulus;
|
||||
@@ -202,7 +202,7 @@ pub mod tests {
|
||||
let lwe_ciphertext_in: LweCiphertextOwned<Scalar> = allocate_and_encrypt_new_lwe_ciphertext(
|
||||
&small_lwe_sk,
|
||||
plaintext,
|
||||
lwe_modular_std_dev,
|
||||
lwe_noise_distribution,
|
||||
ciphertext_modulus,
|
||||
&mut rsc.encryption_random_generator,
|
||||
);
|
||||
|
||||
@@ -595,8 +595,7 @@ pub fn test_extract_bit_circuit_bootstrapping_vertical_packing() {
|
||||
let base_log_cbs = params.cbs_base_log;
|
||||
let level_ksk = DecompositionLevelCount(9);
|
||||
let base_log_ksk = DecompositionBaseLog(1);
|
||||
let std_big = params.glwe_modular_std_dev;
|
||||
let noise_distribution_big_std = DynamicDistribution::new_gaussian(std_big);
|
||||
let noise_distribution_big_std = params.glwe_noise_distribution;
|
||||
|
||||
let mut rsc = TestResources::new();
|
||||
|
||||
|
||||
@@ -101,8 +101,8 @@ impl ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension,
|
||||
glwe_dimension: GlweDimension,
|
||||
polynomial_size: PolynomialSize,
|
||||
lwe_modular_std_dev: StandardDev,
|
||||
glwe_modular_std_dev: StandardDev,
|
||||
lwe_noise_distribution: DynamicDistribution<u64>,
|
||||
glwe_noise_distribution: DynamicDistribution<u64>,
|
||||
pbs_base_log: DecompositionBaseLog,
|
||||
pbs_level: DecompositionLevelCount,
|
||||
ks_base_log: DecompositionBaseLog,
|
||||
@@ -116,12 +116,8 @@ impl ClassicPBSParameters {
|
||||
lwe_dimension,
|
||||
glwe_dimension,
|
||||
polynomial_size,
|
||||
lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(
|
||||
lwe_modular_std_dev,
|
||||
),
|
||||
glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(
|
||||
glwe_modular_std_dev,
|
||||
),
|
||||
lwe_noise_distribution,
|
||||
glwe_noise_distribution,
|
||||
pbs_base_log,
|
||||
pbs_level,
|
||||
ks_base_log,
|
||||
|
||||
Reference in New Issue
Block a user