Polynomial Factorization

Joachim von zur Gathen has proposed a challenge for factoring univariate poly-nomials over nite elds to evaluate the practicability of current factorization algorithms (\A Factorization Challenge", SIGSAM Bulletin 26(2):22-24, 1992). More recently, Victor Shoup has proposed an alternate family of polynomials with a similar goal in mind. Our eeort is to take these challenges on using the general purpose computer algebra systems Maple and MuPAD. The result of our work are the factorizations of the von zur Gathen polyno-mials f n and of the Shoup polynomials F n for n from 1 to 500. We also present the factorization of the degree 1000 von zur Gathen polynomial f 1000. 1 The Algorithms We implemented Shoup's distinct degree factorization algorithm 4] in Maple and MuPAD. For the equal degree splitting, Maple uses the standard Cantor-Zassenhaus algorithm while MuPAD implements an improved version that uses some of the intermediate computations from the distinct degree step. Because we are working with large coeecients, it is crucial that the modular integer arithmetic is as fast as possible. MuPAD uses PARI 1] and proves to be a factor of 2 faster than Maple's proprietary integer arithmetic. In an experimental version of Maple we used Karatsuba multiplication for large integers to alleviate this problem somewhat. For univariate polynomials MuPAD uses a sparse data structure. By contrast , Maple uses a dense representation 2] which uses lazy reduction techniques to keep the number of integer divisions linear in the degree of the polynomials for multiplication and division. Additonally, we have implemented Karatsuba multiplication for univariate polynomials in an experimental version.