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}