diff --git a/src/utils/dff.rs b/src/utils/dff.rs index 6335d27..2cd754e 100644 --- a/src/utils/dff.rs +++ b/src/utils/dff.rs @@ -11,29 +11,28 @@ pub struct Factors { pub degree: u32, } -pub fn ddf(f: Polynomial) -> Vec<(Polynomial, usize)> { +pub fn ddf(f: Polynomial) -> Vec<(Polynomial, u128)> { let q = BigUint::pow(&BigUint::from_u8(2).unwrap(), 128); eprintln!("q: {:?}", q); - let mut z: Vec<(Polynomial, usize)> = vec![]; - let mut d: u32 = 1; + let mut z: Vec<(Polynomial, u128)> = vec![]; + let mut d: u128 = 1; let mut f_star = f.clone(); let one_cmp = Polynomial::one(); while f_star.degree() >= (2 * d) as usize { - let h = Polynomial::x().bpow_mod(q.clone().pow(d), f_star.clone()) - + Polynomial::x().div(&f_star).1; + 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 { - z.push((g.clone(), d as usize)); + z.push((g.clone(), d)); f_star = f_star.div(&g).0; } d += 1; } if f_star != one_cmp { - z.push((f_star.clone(), f_star.degree())); + z.push((f_star.clone(), f_star.degree() as u128)); } else if z.len() == 0 { z.push((f.clone(), 1)); } diff --git a/src/utils/sff.rs b/src/utils/sff.rs index f8f1358..e7a154a 100644 --- a/src/utils/sff.rs +++ b/src/utils/sff.rs @@ -10,14 +10,14 @@ use super::poly::Polynomial; #[derive(Debug, Serialize, Deserialize)] pub struct Factors { pub factor: Vec, - pub exponent: u32, + pub exponent: u128, } -pub fn sff(mut f: Polynomial) -> Vec<(Polynomial, u32)> { +pub fn sff(mut f: Polynomial) -> Vec<(Polynomial, u128)> { let mut c = gcd(&f, &f.clone().diff()); f = f.div(&c).0; - let mut z: Vec<(Polynomial, u32)> = vec![]; - let mut e: u32 = 1; + let mut z: Vec<(Polynomial, u128)> = vec![]; + let mut e: u128 = 1; let one_element = Polynomial::new(vec![FieldElement::new( polynomial_2_block(vec![0], "gcm").unwrap(), diff --git a/test_json/sandbox.json b/test_json/sandbox.json index 007d487..d0a0f3c 100644 --- a/test_json/sandbox.json +++ b/test_json/sandbox.json @@ -1,24 +1,15 @@ { "testcases": { "sandbox": { - "action": "gfpoly_factor_sff", + "action": "gfpoly_factor_ddf", "arguments": { "F": [ - "vL77UwAAAAAAAAAAAAAAAA==", - "mEHchYAAAAAAAAAAAAAAAA==", - "9WJa0MAAAAAAAAAAAAAAAA==", - "akHfwWAAAAAAAAAAAAAAAA==", - "E12o/QAAAAAAAAAAAAAAAA==", - "vKJ/FgAAAAAAAAAAAAAAAA==", - "yctWwAAAAAAAAAAAAAAAAA==", - "c1BXYAAAAAAAAAAAAAAAAA==", - "o0AtAAAAAAAAAAAAAAAAAA==", - "AbP2AAAAAAAAAAAAAAAAAA==", - "k2YAAAAAAAAAAAAAAAAAAA==", - "vBYAAAAAAAAAAAAAAAAAAA==", - "dSAAAAAAAAAAAAAAAAAAAA==", - "69gAAAAAAAAAAAAAAAAAAA==", - "VkAAAAAAAAAAAAAAAAAAAA==", + "tpkgAAAAAAAAAAAAAAAAAA==", + "m6MQAAAAAAAAAAAAAAAAAA==", + "8roAAAAAAAAAAAAAAAAAAA==", + "3dUAAAAAAAAAAAAAAAAAAA==", + "FwAAAAAAAAAAAAAAAAAAAA==", + "/kAAAAAAAAAAAAAAAAAAAA==", "a4AAAAAAAAAAAAAAAAAAAA==", "gAAAAAAAAAAAAAAAAAAAAA==" ]