feat(shortint): add multi bit decompression

This commit is contained in:
Mayeul@Zama
2025-10-16 10:30:46 +02:00
committed by mayeul-zama
parent 3842032f08
commit 777bbe437a
32 changed files with 866 additions and 297 deletions

View File

@@ -37,7 +37,7 @@ fn cpu_glwe_packing(c: &mut Criterion) {
64,
128,
256,
comp_param.lwe_per_glwe.0 * log_message_modulus,
comp_param.lwe_per_glwe().0 * log_message_modulus,
] {
assert_eq!(bit_size % log_message_modulus, 0);
let num_blocks = bit_size / log_message_modulus;
@@ -198,7 +198,7 @@ mod cuda {
64,
128,
256,
comp_param.lwe_per_glwe.0 * log_message_modulus,
comp_param.lwe_per_glwe().0 * log_message_modulus,
] {
assert_eq!(bit_size % log_message_modulus, 0);
let num_blocks = bit_size / log_message_modulus;

View File

@@ -106,17 +106,17 @@ pub mod shortint_utils {
) -> Self {
CryptoParametersRecord {
lwe_dimension: Some(pbs_params.lwe_dimension()),
br_level: Some(comp_params.br_level),
br_base_log: Some(comp_params.br_base_log),
packing_ks_level: Some(comp_params.packing_ks_level),
packing_ks_base_log: Some(comp_params.packing_ks_base_log),
packing_ks_polynomial_size: Some(comp_params.packing_ks_polynomial_size),
packing_ks_glwe_dimension: Some(comp_params.packing_ks_glwe_dimension),
lwe_per_glwe: Some(comp_params.lwe_per_glwe),
storage_log_modulus: Some(comp_params.storage_log_modulus),
br_level: Some(comp_params.br_level()),
br_base_log: Some(comp_params.br_base_log()),
packing_ks_level: Some(comp_params.packing_ks_level()),
packing_ks_base_log: Some(comp_params.packing_ks_base_log()),
packing_ks_polynomial_size: Some(comp_params.packing_ks_polynomial_size()),
packing_ks_glwe_dimension: Some(comp_params.packing_ks_glwe_dimension()),
lwe_per_glwe: Some(comp_params.lwe_per_glwe()),
storage_log_modulus: Some(comp_params.storage_log_modulus()),
lwe_noise_distribution: Some(pbs_params.encryption_noise_distribution()),
packing_ks_key_noise_distribution: Some(
comp_params.packing_ks_key_noise_distribution,
comp_params.packing_ks_key_noise_distribution(),
),
ciphertext_modulus: Some(pbs_params.ciphertext_modulus()),
error_probability: Some(2f64.powf(pbs_params.log2_p_fail())),