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:
Arthur Meyre
2024-03-11 11:55:43 +01:00
parent 8c4675dc3e
commit e81152a630
10 changed files with 65 additions and 44 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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