arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/math/src/modulus/barrett.rs
math/src/modulus/barrett.rsRaw
 1#[derive(Clone, Copy, Debug, PartialEq, Eq)]
 2pub struct Barrett<O>(pub O, pub O);
 3
 4impl<O> Barrett<O> {
 5    
 6    #[inline(always)]
 7    pub fn value(&self) -> &O {
 8        &self.0
 9    }
10
11    #[inline(always)]
12    pub fn quotient(&self) -> &O {
13        &self.1
14    }
15}
16
17#[derive(Clone, Copy, Debug, PartialEq, Eq)]
18pub struct BarrettPrecomp<O>{
19    pub q: O,
20    pub lo:O,
21    pub hi:O,
22    pub one: Barrett<O>,
23}
24
25impl<O> BarrettPrecomp<O>{
26
27    #[inline(always)]
28    pub fn value_hi(&self) -> &O{
29        &self.hi
30    }
31
32    #[inline(always)]
33    pub fn value_lo(&self) -> &O{
34        &self.lo
35    }
36}
37