arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/math/src/modulus/montgomery.rs
math/src/modulus/montgomery.rsRaw
 1use crate::modulus::barrett::BarrettPrecomp;
 2
 3/// Montgomery is a generic struct storing
 4/// an element in the Montgomery domain.
 5pub type Montgomery<O> = O;
 6
 7/// MontgomeryPrecomp is a generic struct storing 
 8/// precomputations for Montgomery arithmetic.
 9#[derive(Clone, Copy, Debug, PartialEq, Eq)]
10pub struct MontgomeryPrecomp<O>{
11    pub q: O,
12    pub two_q: O,
13    pub four_q: O,
14    pub barrett: BarrettPrecomp<O>,
15    pub q_inv: O,
16    pub one: Montgomery<O>,
17    pub minus_one: Montgomery<O>,
18}