added fill_normal

This commit is contained in:
Jean-Philippe Bossuat
2025-01-20 12:23:50 +01:00
parent 1cc38b3042
commit 70765026c5

View File

@@ -2,7 +2,7 @@ use crate::modulus::WordOps;
use crate::poly::{Poly, PolyRNS}; use crate::poly::{Poly, PolyRNS};
use crate::ring::{Ring, RingRNS}; use crate::ring::{Ring, RingRNS};
use num::ToPrimitive; use num::ToPrimitive;
use rand_distr::Distribution; use rand_distr::{Distribution, Normal};
use sampling::source::Source; use sampling::source::Source;
impl Ring<u64> { impl Ring<u64> {
@@ -34,6 +34,10 @@ impl Ring<u64> {
*a = (dist_u64 * sign) | (max - dist_u64) * (sign ^ 1) *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);
}
} }
impl RingRNS<u64> { impl RingRNS<u64> {