mirror of
https://github.com/zama-ai/tfhe-rs.git
synced 2026-01-09 14:47:56 -05:00
chore: adds params_to_file for noise squashing compression
This commit is contained in:
committed by
Nicolas Sarlin
parent
075b2259d3
commit
c7ec835e5f
@@ -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)))
|
||||
|
||||
Reference in New Issue
Block a user