Files
poulpy/src/modulus/barrett.rs
Jean-Philippe Bossuat 8d84727fae wip
2024-12-31 15:30:57 +01:00

38 lines
603 B
Rust

#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct Barrett<O>(pub O, pub O);
impl<O> Barrett<O> {
#[inline(always)]
pub fn value(&self) -> &O {
&self.0
}
#[inline(always)]
pub fn quotient(&self) -> &O {
&self.1
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct BarrettPrecomp<O>{
pub q: O,
pub lo:O,
pub hi:O,
pub one: Barrett<O>,
}
impl<O> BarrettPrecomp<O>{
#[inline(always)]
pub fn value_hi(&self) -> &O{
&self.hi
}
#[inline(always)]
pub fn value_lo(&self) -> &O{
&self.lo
}
}