feat: Add task runner for the sff task
This commit is contained in:
parent
1c9948ac62
commit
6856420ff9
6 changed files with 62 additions and 24 deletions
|
|
@ -5,6 +5,7 @@ use serde_json::Value;
|
|||
use crate::utils::{
|
||||
field::FieldElement,
|
||||
poly::{gcd, Polynomial},
|
||||
sff::{sff, Factors},
|
||||
};
|
||||
|
||||
pub fn gfpoly_add(args: &Value) -> Result<Polynomial> {
|
||||
|
|
@ -117,6 +118,23 @@ pub fn gfpoly_gcd(args: &Value) -> Result<Polynomial> {
|
|||
Ok(result)
|
||||
}
|
||||
|
||||
pub fn gfpoly_factor_sff(arsg: &Value) -> Result<Vec<(Factors)>> {
|
||||
let poly_f = Polynomial::from_c_array(&arsg["F"].clone());
|
||||
|
||||
let mut factors = sff(poly_f);
|
||||
factors.sort();
|
||||
let mut result: Vec<Factors> = vec![];
|
||||
|
||||
for (factor, exponent) in factors {
|
||||
result.push(Factors {
|
||||
factor: factor.to_c_array(),
|
||||
exponent,
|
||||
});
|
||||
}
|
||||
|
||||
Ok(result)
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue