arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/math/src/modulus/prime.rs
math/src/modulus/prime.rsRaw
 1use crate::modulus::montgomery::MontgomeryPrecomp;
 2use crate::modulus::barrett::BarrettPrecomp;
 3
 4#[derive(Clone, Debug, PartialEq, Eq)]
 5pub struct Prime<O> {
 6	pub q: O, /// q_base^q_powers
 7    pub two_q: O,
 8    pub four_q: O,
 9    pub q_base: O,
10    pub q_power: usize,
11    pub factors: Vec<O>, /// distinct factors of q-1
12    pub montgomery: MontgomeryPrecomp<O>,
13    pub barrett:BarrettPrecomp<O>,
14    pub phi: O,
15}
16
17pub struct NTTFriendlyPrimesGenerator<O>{
18	pub size: f64,
19	pub next_prime: O,
20	pub prev_prime: O,
21	pub check_next_prime: bool,
22	pub check_prev_prime: bool,
23}