feat: Add edf calculation #27

Merged
0xalivecow merged 2 commits from dev into main 2024-11-28 12:22:17 +00:00
2 changed files with 7 additions and 3 deletions
Showing only changes of commit 2cbda23e9c - Show all commits

View file

@ -19,8 +19,9 @@ pub fn ddf(f: Polynomial) -> Vec<(Polynomial, u128)> {
let mut f_star = f.clone();
let one_cmp = Polynomial::one();
while f_star.degree() as u128 >= (d) {
let h = Polynomial::x().bpow_mod(q.clone().pow(d), &f_star) + Polynomial::x();
while f_star.degree() as u128 >= (2 * d) {
let h = Polynomial::x().bpow_mod(q.clone().pow(d), f_star.clone()) + Polynomial::x();
let g = gcd(&h, &f_star);
if g != one_cmp {
@ -35,9 +36,12 @@ pub fn ddf(f: Polynomial) -> Vec<(Polynomial, u128)> {
d += 1;
}
if f_star != one_cmp {
eprintln!("fstar not one");
z.push((f_star.clone(), f_star.degree() as u128));
} else if z.len() == 0 {
z.push((f.clone(), 1));
}
z

View file

@ -25,7 +25,7 @@ impl Polynomial {
}
pub fn degree(&self) -> usize {
self.polynomial.len()
self.polynomial.len() - 1
}
pub fn one() -> Self {