chore: adds params_to_file for noise squashing compression

This commit is contained in:
Nicolas Sarlin
2025-07-07 14:09:52 +02:00
committed by Nicolas Sarlin
parent 075b2259d3
commit c7ec835e5f
2 changed files with 48 additions and 4 deletions

View File

@@ -11,12 +11,13 @@ use tfhe::keycache::NamedParam;
use tfhe::shortint::parameters::current_params::{
VEC_ALL_CLASSIC_PBS_PARAMETERS, VEC_ALL_COMPACT_PUBLIC_KEY_ENCRYPTION_PARAMETERS,
VEC_ALL_COMPRESSION_PARAMETERS, VEC_ALL_HPU_PARAMETERS, VEC_ALL_KS32_PARAMETERS,
VEC_ALL_MULTI_BIT_PBS_PARAMETERS, VEC_ALL_NOISE_SQUASHING_PARAMETERS,
VEC_ALL_MULTI_BIT_PBS_PARAMETERS, VEC_ALL_NOISE_SQUASHING_COMPRESSION_PARAMETERS,
VEC_ALL_NOISE_SQUASHING_MULTI_BIT_PARAMETERS, VEC_ALL_NOISE_SQUASHING_PARAMETERS,
};
use tfhe::shortint::parameters::noise_squashing::NoiseSquashingMultiBitParameters;
use tfhe::shortint::parameters::v1_3::VEC_ALL_NOISE_SQUASHING_MULTI_BIT_PARAMETERS;
use tfhe::shortint::parameters::{
CompactPublicKeyEncryptionParameters, CompressionParameters, NoiseSquashingParameters,
CompactPublicKeyEncryptionParameters, CompressionParameters,
NoiseSquashingCompressionParameters, NoiseSquashingParameters,
};
use tfhe::shortint::AtomicPatternParameters;
@@ -246,6 +247,36 @@ impl ParamDetails<u128> for NoiseSquashingMultiBitParameters {
}
}
impl ParamDetails<u128> for NoiseSquashingCompressionParameters {
fn lwe_dimension(&self) -> LweDimension {
panic!("lwe_dimension not applicable for NoiseSquashingCompressionParameters")
}
fn glwe_dimension(&self) -> GlweDimension {
self.packing_ks_glwe_dimension
}
fn lwe_noise_distribution(&self) -> DynamicDistribution<u128> {
panic!("lwe_noise_distribution not applicable for NoiseSquashingCompressionParameters")
}
fn glwe_noise_distribution(&self) -> DynamicDistribution<u128> {
self.packing_ks_key_noise_distribution
}
fn polynomial_size(&self) -> PolynomialSize {
self.packing_ks_polynomial_size
}
fn lwe_ciphertext_modulus(&self) -> ParamModulus {
panic!("lwe_ciphertext_modulus not applicable for NoiseSquashingCompressionParameters")
}
fn glwe_ciphertext_modulus(&self) -> ParamModulus {
ParamModulus::from_ciphertext_modulus(self.ciphertext_modulus)
}
}
#[derive(Eq, PartialEq, Hash)]
enum ParametersFormat {
Lwe,
@@ -535,6 +566,16 @@ fn main() {
ParametersFormat::Glwe,
);
let noise_squasing_compression_params: Vec<_> = VEC_ALL_NOISE_SQUASHING_COMPRESSION_PARAMETERS
.into_iter()
.map(|p| (*p.0, Some(p.1)))
.collect();
write_all_params_in_file(
"shortint_noise_squashing_compression_parameters_lattice_estimator.sage",
&noise_squasing_compression_params,
ParametersFormat::Glwe,
);
let ks32_params: Vec<_> = VEC_ALL_KS32_PARAMETERS
.into_iter()
.map(|p| (AtomicPatternParameters::from(*p.0), Some(p.1)))