feat: start working on add for polynomial

This commit is contained in:
0xalivecow 2024-11-11 10:31:59 +01:00
parent 6e33e2e44c
commit 6431a6636e
No known key found for this signature in database

View file

@ -1,6 +1,6 @@
use std::{ use std::{
env::args, env::args,
ops::{Add, Mul}, ops::{Add, BitXor, Mul},
}; };
use anyhow::{anyhow, Ok, Result}; use anyhow::{anyhow, Ok, Result};
@ -73,9 +73,13 @@ impl Mul for Polynomial {
impl Add for Polynomial { impl Add for Polynomial {
type Output = Self; type Output = Self;
fn add(self, rhs: Self) -> Self::Output { fn add(self, rhs: Self) -> Self::Output {
FieldElement::new( for i in 0..self.polynomial.len() {
xor_bytes(&self.field_element, rhs.field_element).expect("Error in poly add"), for j in 0..rhs.polynomial.len() {
) polynomial[i + j] = &polynomial[i + j]
+ &(self.polynomial.get(i).unwrap() * rhs.polynomial.get(j).unwrap());
}
}
Polynomial::new(polynomial)
} }
} }
@ -169,6 +173,14 @@ impl Clone for FieldElement {
} }
} }
/*
impl BitXor for FieldElement {
fn bitxor(self, rhs: Self) -> Self::Output {
FieldElement
}
}
*/
/* /*
impl From<Vec<u8>> for FieldElement { impl From<Vec<u8>> for FieldElement {
fn from(item: Vec<u8>) -> Self { fn from(item: Vec<u8>) -> Self {