pub fn estimate_external_product_noise_with_binary_ggsw<D1, D2, K>(
poly_size: PolynomialSize,
rlwe_mask_size: GlweDimension,
var_glwe: D1,
var_ggsw: D2,
base_log: DecompositionBaseLog,
level: DecompositionLevelCount,
log2_modulus: u32
) -> Variancewhere
D1: DispersionParameter,
D2: DispersionParameter,
K: KeyDispersion,
Expand description
Computes the dispersion of an external product (between and RLWE and a GGSW) encrypting a binary keys (i.e., as in TFHE PBS).
Example
use concrete_core::prelude::{
BinaryKeyKind, DecompositionBaseLog, DecompositionLevelCount, GlweDimension,
PolynomialSize, Variance,
};
use concrete_npe::estimate_external_product_noise_with_binary_ggsw;
let poly_size = PolynomialSize(1024);
let mask_size = GlweDimension(2);
let level = DecompositionLevelCount(4);
let dispersion_rlwe = Variance(2_f64.powi(-40));
let dispersion_rgsw = Variance(2_f64.powi(-40));
let base_log = DecompositionBaseLog(7);
let var_ks = estimate_external_product_noise_with_binary_ggsw::<_, _, BinaryKeyKind>(
poly_size,
mask_size,
dispersion_rlwe,
dispersion_rgsw,
base_log,
level,
64,
);