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,
);