switched from Arc to Rc

This commit is contained in:
Jean-Philippe Bossuat
2025-01-09 10:10:21 +01:00
parent 2b916b03c5
commit f9123e7681
2 changed files with 5 additions and 5 deletions

View File

@@ -5,7 +5,7 @@ use crate::modulus::prime::Prime;
use crate::poly::{Poly, PolyRNS}; use crate::poly::{Poly, PolyRNS};
use crate::modulus::WordOps; use crate::modulus::WordOps;
use num::traits::Unsigned; use num::traits::Unsigned;
use std::sync::Arc; use std::rc::Rc;
pub struct Ring<O: Unsigned> { pub struct Ring<O: Unsigned> {
pub n: usize, pub n: usize,
@@ -28,7 +28,7 @@ impl<O: Unsigned> Ring<O> {
} }
} }
pub struct RingRNS<O: Unsigned>(pub Vec<Arc<Ring<O>>>); pub struct RingRNS<O: Unsigned>(pub Vec<Rc<Ring<O>>>);
impl<O: Unsigned> RingRNS<O> { impl<O: Unsigned> RingRNS<O> {

View File

@@ -5,14 +5,14 @@ use crate::poly::PolyRNS;
use crate::ring::{Ring, RingRNS}; use crate::ring::{Ring, RingRNS};
use crate::scalar::ScalarRNS; use crate::scalar::ScalarRNS;
use num_bigint::BigInt; use num_bigint::BigInt;
use std::sync::Arc; use std::rc::Rc;
impl RingRNS<u64> { impl RingRNS<u64> {
pub fn new(n: usize, moduli: Vec<u64>) -> Self { pub fn new(n: usize, moduli: Vec<u64>) -> Self {
assert!(!moduli.is_empty(), "moduli cannot be empty"); assert!(!moduli.is_empty(), "moduli cannot be empty");
let rings: Vec<Arc<Ring<u64>>> = moduli let rings: Vec<Rc<Ring<u64>>> = moduli
.into_iter() .into_iter()
.map(|prime| Arc::new(Ring::new(n, prime, 1))) .map(|prime| Rc::new(Ring::new(n, prime, 1)))
.collect(); .collect();
return RingRNS(rings); return RingRNS(rings);
} }