Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • 15-create-plot-function
  • 17-test-jonas
  • main
3 results

Target

Select target project
  • darius.briquet/reed_solomon
1 result
Select Git revision
  • 15-create-plot-function
  • 17-test-jonas
  • main
3 results
Show changes
Commits on Source (11)
......@@ -38,7 +38,7 @@ class polynome():
coeff_poly_res = [0] * (len(self.coefs) + len(poly_2.coefs) - 1)
for index_1, value_1 in enumerate(self.coefs):
for index_2, value_2 in enumerate(poly_2.coefs):
coeff_poly_res[index_1 + index_2] += value_1 * value_2
coeff_poly_res[index_1 + index_2] += (value_1 * value_2) % self.prime_mod
return polynome(coeff_poly_res)
def evaluate(self, x):
......@@ -46,4 +46,4 @@ class polynome():
res = 0
for i in range(len(self.coefs) - 1, -1, -1):
res = (res * x + self.coefs[i])
return res
return (res % self.prime_mod)
# Created on 09/12/2021
from polynome import *
from inverse_mult import *
from itertools import combinations
def get_possibilities(l: list):
......@@ -22,13 +23,23 @@ def get_possibilities(l: list):
return p
def lagrange_compute(l: list) -> polynome:
pass
poly_l = [0] * len(l)
poly = polynome(poly_l)
for x_i, y_i in enumerate(l):
poly_n = polynome([1])
for x_k, y_k in enumerate(l):
if x_k != x_i:
d = inverse_mult((x_i-x_k) % poly_n.prime_mod, poly_n.prime_mod)
poly_n = poly_n.mul(polynome([-x_k * d % poly_n.prime_mod, d % poly_n.prime_mod]))
poly_n = poly_n.mul(polynome([y_i[1] % poly_n.prime_mod]))
poly = poly.add(poly_n)
return poly
def check_nb_error(l: list, p: polynome) -> int:
nbr_error = 0
for _, item in enumerate(l):
if (item % p.prime_mod) != (p.evaluate(_) % p.prime_mod):
print(f"{item} != p.evaluate({_}) = {p.evaluate(_)}")
print(f"DEBUG PURPOSES ONLY {item} != p.evaluate({_}) = {p.evaluate(_)}")
nbr_error += 1
return nbr_error
\ No newline at end of file
return nbr_error