Efficient Implementation of Polynomial Arithmetic in a Multiple-Level Programming Environment
The purpose of this study is to investigate implementation techniques for polynomial arithmetic in a multiple-level programming environment. Indeed, certain polynomial data types and algorithms can further take advantage of the features of lower level languages, such as their specialized data structures or direct access to machine arithmetic. Whereas, other polynomial operations, like Gröbner basis over an arbitrary field, are suitable for generic programming in a high-level language.
We are interested in the integration of polynomial data type implementations realized at different language levels, such as Lisp, C and Assembly. In particular, we consider situations for which code from different levels can be combined together within the same application in order to achieve high-performance.
We have developed implementation techniques in the multiple-level programming environment provided by the computer algebra system AXIOM. For a given algorithm realizing a polynomial operation, available at the user level, we combine the strengths of each language level and the features of a specific machine architecture. Our experimentations show that this allows us to improve performances of this operation in a significant manner.
KeywordsComputer Algebra System Language Level Univariate Polynomial Multivariate Polynomial Assembly Code
Unable to display preview. Download preview PDF.
- 1.The AXIOM developers web site, http://page.axiom-developer.org
- 2.aldor.org. Aldor 1.0.2. University of Western Ontario, Canada (2004), http://www.aldor.org
- 3.The Computational Algebra Group in the School of Mathematics and Statistics at the University of Sydney. The MAGMA Computational Algebra System for Algebra, Number Theory and Geometry, http://magma.maths.usyd.edu.au/magma/
- 5.Dummit, D.S., Foote, R.M.: Abstract algebra. Simon and Schuster (1993)Google Scholar
- 6.Fateman, R.J.: Vector-based polynomial recursive representation arithmetic (1999), http://www.norvig.com/ltd/test/poly.dylan
- 7.Filatei, A.: Implementation of fast polynomial arithmetic in Aldor, University of Western Ontario (2006)Google Scholar
- 8.Filatei, A., Li, X., Moreno Maza, M., Schost, É.: Implementation techniques for fast polynomial arithmetic in a high-level programming environment. In: Proc. ISSAC 2006. ACM Press, New York (2006)Google Scholar
- 9.Free Software Foundation. GNU Multiple Precision Arithmetic Library, http://swox.com/gmp/
- 11.Greuel, G.-M., Pfister, G., Schönemann, H.: SINGULAR 3.0. A Computer Algebra System for Polynomial Computations. Centre for Computer Algebra, University of Kaiserslautern (2005), http://www.singular.uni-kl.de
- 14.Li, X.: Efficient management of symbolic computations with polynomials, University of Western Ontario (2005)Google Scholar
- 15.Shoup, V.: The Number Theory Library, http://www.shoup.net/ntl
- 16.Yap, C.K.: Fundamental Problems in Algorithmic Algebra. Princeton University Press, Princeton (1993)Google Scholar
- 17.Yuasa, T., Hagiya, M., Schelter, W.F.: GNU Common Lisp, http://www.gnu.org/software/gcl