Finite field algebra library

Project attribution: Project done in collaboration with Teodor Lungu.
Source: (Part of) The project’s source code is available here
Short description: Python library with fast arithmetic, polynomial and finite field operations.
Technologies: Python.
What I did: I implemented many of the operations, like: long division, find primitive, fast addition, multiplication, Euclid’s algorithm etc.

Main function that iterates over a list of execises (inputs) and applies the indicated function, then checks the result.

Python library that offers arithmetic functions:

  • Integer arithmetic
    • Addition, Subtraction, Multiplication, Division
    • Fast Multiplication with Karatsuba’s technique
    • Greatest Common Divisor with Euclid’s Algorithm
  • Modular arithmetic
    • Modular Addition, Subtraction, Multiplication, Inversion
  • Polynomial arithmetic
    • Polynomial Addition, Subtraction, Multiplication
    • Polynomial Long Division
    • Euclid’s algorithm for polynomials
    • Checking and finding irreducible polynomials
  • Arithmetic in finite fields
    • Generate final fields
    • Generating Addition and Multiplication tables
    • Final field Addition, Subtraction, Multiplication, Inverse, Division
    • Finding a Primitive
Division of two integers.
Finding a polynomial primitive.