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