poulpy/src/modulus.rs
src/modulus.rsRaw
1pub(crate) mod prime;
2pub(crate) mod montgomery;
3pub(crate) mod barrett;
4
5trait ReduceOnce<O>{
6 fn reduce_once_assign(&mut self, q: O);
7 fn reduce_once(&self, q:O) -> O;
8}
9
10impl ReduceOnce<u64> for u64{
11 fn reduce_once_assign(&mut self, q: u64){
12 if *self >= q{
13 *self -= q
14 }
15 }
16
17 fn reduce_once(&self, q:u64) -> u64{
18 if *self >= q {
19 *self - q
20 } else {
21 *self
22 }
23 }
24}