feat: Adding gcd implementation

This commit is contained in:
Alivecow 2024-11-23 12:31:27 +01:00
parent 8be8dc7a54
commit 0b18ba1bff
4 changed files with 102 additions and 9 deletions

View file

@ -2,7 +2,10 @@ use anyhow::Result;
use base64::{prelude::BASE64_STANDARD, Engine};
use serde_json::Value;
use crate::utils::{field::FieldElement, poly::Polynomial};
use crate::utils::{
field::FieldElement,
poly::{gcd, Polynomial},
};
pub fn gfpoly_add(args: &Value) -> Result<Polynomial> {
let poly_a = Polynomial::from_c_array(&args["A"].clone());
@ -105,6 +108,15 @@ pub fn gfpoly_diff(args: &Value) -> Result<Polynomial> {
Ok(result)
}
pub fn gfpoly_gcd(args: &Value) -> Result<Polynomial> {
let poly_a = Polynomial::from_c_array(&args["A"].clone());
let poly_b = Polynomial::from_c_array(&args["B"].clone());
let result = gcd(poly_a, poly_b);
Ok(result)
}
#[cfg(test)]
mod tests {
use super::*;