arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/rlwe/src/elem.rs
rlwe/src/elem.rsRaw
 1use crate::parameters::Parameters;
 2use base2k::VecZnx;
 3
 4pub struct Elem {
 5    pub value: Vec<VecZnx>,
 6    pub log_scale: usize,
 7}
 8
 9impl Parameters {
10    pub fn new_elem(&self, degree: usize, log_q: usize) -> Elem {
11        let mut value: Vec<VecZnx> = Vec::new();
12        (0..degree + 1).for_each(|_| value.push(VecZnx::new(self.n(), log_q)));
13        Elem {
14            value: value,
15            log_scale: self.log_scale(),
16        }
17    }
18}