Skip to main content

Polynomial Division Using Dynamic Arrays, Heaps, and Packed Exponent Vectors

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4770))

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Chapter  Google Scholar 

  2. Brown, W.S.: Altran Users Manual, 4th edn. Murray Hill, N.J (1977)

    Google Scholar 

  3. Cox, D., Little, J., O’Shea, D.: Ideals, Varieties and Algorithms: An Introduction to Computational Algebraic Geometry and Commutative Algebra. Springer, Heidelberg (1992)

    MATH  Google Scholar 

  4. Geddes, K.O., Czapor, S.R., Labahn, G.: Algorithms for Computer Algebra. Kluwer Academic, Dordrecht (1992)

    MATH  Google Scholar 

  5. Grayson, D.R., Stillman, M.E.: Macaulay 2, a software system for research in algebraic geometry. Available at http://www.math.uiuc.edu/Macaulay2/

  6. 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

  7. Jenks, R., Sutor, R., Morrison, S.: AXIOM: The Scientific Computation System. Springer, Heidelberg (1992)

    MATH  Google Scholar 

  8. Johnson, S.C.: Sparse polynomial arithmetic. ACM SIGSAM Bulletin 8(3), 63–71 (1974)

    Article  Google Scholar 

  9. LaMarca, A., Ladner, R.: The Influence of Caches on the Performance of Heaps. J. Experimental Algorithms 1, Article 4 (1996)

    Google Scholar 

  10. 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

    Google Scholar 

  11. Stoutemyer, D.: Which Polynomial Representation is Best? In: Proceedings of the 1984 Macsyma Users Conference, Schenectedy, NY, pp. 221–244 (1984)

    Google Scholar 

  12. Yan, T.: The Geobucket Data Structure for Polynomials. J. Symb. Comput. 25, 285–293 (1998)

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Victor G. Ganzha Ernst W. Mayr Evgenii V. Vorozhtsov

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics