arnaucube
arnaucube/poulpyPublic Self-hosted repository
added fill_normal
Jean-Philippe Bossuat jeanphilippe.bossuat@gmail.com
Mon, 20 Jan 2025 12:23:50 +0100
commit

70765026c5ec5b22c72a4346801182121dd13ed8

parent

1cc38b304236b1f2e1981bb67f5626018d600b30

1 files changed, 5 insertions(+), 1 deletions(-)

jump to
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); } }