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