Function concrete_npe::estimate_tensor_product_noise
source · [−]pub fn estimate_tensor_product_noise<D1, D2, K>(
poly_size: PolynomialSize,
rlwe_dimension: GlweDimension,
dispersion_glwe1: D1,
dispersion_glwe2: D2,
delta_1: f64,
delta_2: f64,
max_msg_1: f64,
max_msg_2: f64,
log2_modulus: u32
) -> Variancewhere
D1: DispersionParameter,
D2: DispersionParameter,
K: KeyDispersion,
Expand description
Computes the dispersion of a tensor product between two independent GLWEs given a set of parameters.
Example:
use concrete_core::prelude::{
BinaryKeyKind, DecompositionBaseLog, DecompositionLevelCount, GlweDimension,
PolynomialSize, Variance,
};
use concrete_npe::estimate_tensor_product_noise;
let dimension = GlweDimension(3);
let polynomial_size = PolynomialSize(1024);
let dispersion_rlwe_0 = Variance::from_modular_variance(2_f64.powi(24), 64);
let dispersion_rlwe_1 = Variance::from_modular_variance(2_f64.powi(24), 64);
let delta_1 = 2_f64.powi(40);
let delta_2 = 2_f64.powi(42);
let max_msg_1 = 15.;
let max_msg_2 = 7.;
let var_out = estimate_tensor_product_noise::<_, _, BinaryKeyKind>(
polynomial_size,
dimension,
dispersion_rlwe_0,
dispersion_rlwe_1,
delta_1,
delta_2,
max_msg_1,
max_msg_2,
64,
);