feat: Add edf calculation #27
2 changed files with 7 additions and 3 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ impl Polynomial {
|
|||
}
|
||||
|
||||
pub fn degree(&self) -> usize {
|
||||
self.polynomial.len()
|
||||
self.polynomial.len() - 1
|
||||
}
|
||||
|
||||
pub fn one() -> Self {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue