pub fn estimate_pbs_noise<D, K>(
    lwe_mask_size: LweDimension,
    poly_size: PolynomialSize,
    rlwe_mask_size: GlweDimension,
    base_log: DecompositionBaseLog,
    level: DecompositionLevelCount,
    dispersion_bsk: D,
    log2_modulus: u32
) -> Variancewhere
    D: DispersionParameter,
    K: KeyDispersion,
Expand description

Computes the dispersion of a PBS a la TFHE (i.e., the GGSW encrypts a binary keys, and the initial noise for the RLWE is equal to zero).

Example

use concrete_core::prelude::{
    BinaryKeyKind, DecompositionBaseLog, DecompositionLevelCount, GlweDimension, LweDimension,
    PolynomialSize, Variance,
};
use concrete_npe::estimate_pbs_noise;
let poly_size = PolynomialSize(1024);
let mask_size = LweDimension(2);
let rlwe_mask_size = GlweDimension(2);
let level = DecompositionLevelCount(4);
let dispersion_rgsw = Variance(2_f64.powi(-40));
let base_log = DecompositionBaseLog(7);
let var_ks = estimate_pbs_noise::<_, BinaryKeyKind>(
    mask_size,
    poly_size,
    rlwe_mask_size,
    base_log,
    level,
    dispersion_rgsw,
    64,
);