reed-solomon.sage 547 B

12345678910111213141516171819202122232425262728293031323334
  1. q = 7
  2. n = 6
  3. k = 4
  4. d = n - k + 1
  5. K = GF(q)
  6. F.<z> = K[]
  7. f = 4 + 3*z + 1*z^2 + 5*z^3
  8. assert len(list(f)) == k
  9. # Let βᵢ = K(i - 1)
  10. f_β1 = f(z=0)
  11. f_β2 = f(z=1)
  12. f_β3 = f(z=2)
  13. f_β4 = f(z=3)
  14. f_β5 = f(z=4)
  15. f_β6 = f(z=5)
  16. f_β7 = f(z=6)
  17. f = vector([f_β1, f_β2, f_β3, f_β4, f_β5, f_β6, f_β7])
  18. g0 = vector(a^0 for a in K)
  19. g1 = vector(a^1 for a in K)
  20. g2 = vector(a^2 for a in K)
  21. g3 = vector(a^3 for a in K)
  22. g4 = vector(a^4 for a in K)
  23. g5 = vector(a^5 for a in K)
  24. g6 = vector(a^6 for a in K)
  25. f1 = 4*g0 + 3*g1 + 1*g2 + 5*g3
  26. assert f == f1