Abstract
A common way of implementing multivariate polynomial multiplication and division is to represent polynomials as linked lists of terms sorted in a term ordering and to use repeated merging. This results in poor performance on large sparse polynomials.
In this paper we use an auxiliary heap of pointers to reduce the number of monomial comparisons in the worst case while keeping the overall storage linear. We give two variations. In the first, the size of the heap is bounded by the number of terms in the quotient(s). In the second, which is new, the size is bounded by the number of terms in the divisor(s).
We use dynamic arrays of terms rather than linked lists to reduce storage allocations and indirect memory references. We pack monomials in the array to reduce storage and to speed up monomial comparisons. We give a new packing for the graded reverse lexicographical ordering.
We have implemented the heap algorithms in C with an interface to Maple. For comparison we have also implemented Yan’s “geobuckets” data structure. Our timings demonstrate that heaps of pointers are comparable in speed with geobuckets but use significantly less storage.
This work was supported by NSERC of Canada and the MITACS NCE of Canada.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Bachmann, O., Schönemann, H.: Monomial representations for Gröbner bases computations. In: Proceedings of ISSAC 1998, pp. 309–316. ACM Press, New York (1998)
Brown, W.S.: Altran Users Manual, 4th edn. Murray Hill, N.J (1977)
Cox, D., Little, J., O’Shea, D.: Ideals, Varieties and Algorithms: An Introduction to Computational Algebraic Geometry and Commutative Algebra. Springer, Heidelberg (1992)
Geddes, K.O., Czapor, S.R., Labahn, G.: Algorithms for Computer Algebra. Kluwer Academic, Dordrecht (1992)
Grayson, D.R., Stillman, M.E.: Macaulay 2, a software system for research in algebraic geometry. Available at http://www.math.uiuc.edu/Macaulay2/
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
Jenks, R., Sutor, R., Morrison, S.: AXIOM: The Scientific Computation System. Springer, Heidelberg (1992)
Johnson, S.C.: Sparse polynomial arithmetic. ACM SIGSAM Bulletin 8(3), 63–71 (1974)
LaMarca, A., Ladner, R.: The Influence of Caches on the Performance of Heaps. J. Experimental Algorithms 1, Article 4 (1996)
Monagan, M., Geddes, K., Heal, K., Labahn, G., Vorkoetter, S., McCarron, J., DeMarco, P.: Maple 10 Introductory Programming Guide Maplesoft (2005) ISBN 1-894511-76
Stoutemyer, D.: Which Polynomial Representation is Best? In: Proceedings of the 1984 Macsyma Users Conference, Schenectedy, NY, pp. 221–244 (1984)
Yan, T.: The Geobucket Data Structure for Polynomials. J. Symb. Comput. 25, 285–293 (1998)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Monagan, M., Pearce, R. (2007). Polynomial Division Using Dynamic Arrays, Heaps, and Packed Exponent Vectors. In: Ganzha, V.G., Mayr, E.W., Vorozhtsov, E.V. (eds) Computer Algebra in Scientific Computing. CASC 2007. Lecture Notes in Computer Science, vol 4770. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-75187-8_23
Download citation
DOI: https://doi.org/10.1007/978-3-540-75187-8_23
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-75186-1
Online ISBN: 978-3-540-75187-8
eBook Packages: Computer ScienceComputer Science (R0)