GSoC Fifth Week
This week, I had been working on distinct degree factorization in this PR.
Distinct degree factorization splits a square-free polynomial into a product of polynomials whose irreducible factors all have the same degree.
Suppose we have a polynomial:
x**15 - 1
When we do distinct degree factorization of it, we get:
x**5 + 10
x**10 + x**5 + 1
Both the results consist of product of some polynomials with equal degree.
x**5 + 10
It is product of polynomials of degree 1, while:
x**10 + x**5 + 1
is product of polynomials of degree 2.
The factorization is achieved by exploiting the fact that:
So, for every degree i
less than half of polynomial’s degree, we find the gcd
of above computed polynomial and the given polynomial. If it’s not one, we add it to existing list of factors.
Then we have to find its equal degree factorization, I have implemented it and I am testing it with different cases.
It will run on every input provided from distinct-degree factorization, and break it into polynomials with equal degrees.
Currently I am implementing Cantor-Zassenhaus’s algorithm.