# Practical Divide-and-Conquer Algorithms for Polynomial Arithmetic

• William Hart
• Andrew Novocin
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6885)

## Abstract

We investigate two practical divide-and-conquer style algorithms for univariate polynomial arithmetic. First we revisit an algorithm originally described by Brent and Kung for composition of power series, showing that it can be applied practically to composition of polynomials in ℤ[x] given in the standard monomial basis. We offer a complexity analysis, showing that it is asymptotically fast, avoiding coefficient explosion in ℤ[x]. Secondly we provide an improvement to Mulders’ polynomial division algorithm. We show that it is particularly efficient compared with the multimodular algorithm. The algorithms are straightforward to implement and available in the open source FLINT C library. We offer a practical comparison of our implementations with various computer algebra systems.

## Keywords

Computer Algebra System Polynomial Multiplication Short Product Division Algorithm Bernstein Basis
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

## References

1. 1.
Bernstein, D.: Multiprecision Multiplication for Mathematicians. In: Accepted by Advances in Applied Mathematics (2001), find at http://cr.yp.to/papers.html#m3
2. 2.
de Boor, C.: B-Form Basics. Geometric Modeling: Algorithms and New Trends, pp. 131–148. SIAM, Philadelphia (1987)Google Scholar
3. 3.
Bostan, A., Salvy, B.: Fast conversion algorithms for orthogonal polynomials (preprint)Google Scholar
4. 4.
Prautzsch, H., Boehm, W., Paluszny, M.: Bézier and B-Spline Techniques. Springer, Heidelberg (2002)
5. 5.
Brent, R., Kung, H.T.: $$\mathcal{O}((n \log n)^3/2)$$ Algorithms for composition and reversion of power series. In: Brent, R., Kung, H.T. (eds.) Analytic Computational Complexity, pp. 217–225. Academic Press, New York (1975)Google Scholar
6. 6.
Cannon, J.J., Bosma, W. (eds.): Handbook of Magma Functions, 2.17th edn. (2010), http://magma.maths.usyd.edu.au/magma
7. 7.
von zur Gathen, J., Gerhard, J.: Modern Computer Algebra. Cambridge University Press, Cambridge (1999)
8. 8.
Hanrot, G., Zimmermann, P.: A long note on Mulder’s short product. Journal of Symbolic Computation 37(3), 391–401 (2004)
9. 9.
Hart, W.: Fast Library for Number Theory: an introduction. In: Fukuda, K., van der Hoeven, J., Joswig, M., Takayama, N. (eds.) ICMS 2010. LNCS, vol. 6327, pp. 88–91. Springer, Heidelberg (2010), http://www.flintlib.org
10. 10.
Knuth, D.: The Art of Computer Programming, volume 2: Seminumerical Algorithms, 3rd edn., pp. 486–488. Addison-Wesley, Reading (1997)Google Scholar
11. 11.
Liu, W., Mann, S.: An analysis of polynomial composition algorithms, University of Waterloo Research Report CS-95-24 (1995)Google Scholar
12. 12.
Mulders, T.: On Short Multiplications and Divisions. In: AAECC, vol. 11, pp. 69–88 (2000)Google Scholar
13. 13.
Pan, V.: Structured matrices and polynomials: unified superfast algorithms, p. 81. Springer, Heidelberg (2001)
14. 14.
Shoup, V.: NTL: A Library for doing Number Theory, open-source library, http://shoup.net/ntl/