added fill_normal
Jean-Philippe Bossuat jeanphilippe.bossuat@gmail.com
Mon, 20 Jan 2025 12:23:50 +0100
1 files changed,
5 insertions(+),
1 deletions(-)
M
math/src/ring/impl_u64/sampling.rs
→
math/src/ring/impl_u64/sampling.rs
@@ -2,7 +2,7 @@ use crate::modulus::WordOps;
use crate::poly::{Poly, PolyRNS}; use crate::ring::{Ring, RingRNS}; use num::ToPrimitive; -use rand_distr::Distribution; +use rand_distr::{Distribution, Normal}; use sampling::source::Source; impl Ring<u64> {@@ -33,6 +33,10 @@ let sign: u64 = dist_f64.to_bits() >> 63;
*a = (dist_u64 * sign) | (max - dist_u64) * (sign ^ 1) }); + } + + pub fn fill_normal(&self, source: &mut Source, sigma: f64, bound: f64, a: &mut Poly<u64>){ + self.fill_dist_f64(source, Normal::new(0.0, sigma).unwrap(), bound, a); } }