The design of Maple's sum-of-products and POLY data structures for representing mathematical objects
- Published
- Accepted
- Subject Areas
- Computational Science
- Keywords
- Maple, GNOME 2014, Polynomial Data Structures
- Copyright
- © 2014 Monagan et al.
- Licence
- This is an open access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, reproduction and adaptation in any medium and for any purpose provided that it is properly attributed. For attribution, the original author(s), title, publication source (PeerJ PrePrints) and either DOI or URL of the article must be cited.
- Cite this article
- 2014. The design of Maple's sum-of-products and POLY data structures for representing mathematical objects. PeerJ PrePrints 2:e504v1 https://doi.org/10.7287/peerj.preprints.504v1
Abstract
The principal data structure in Maple used to represent polynomials and general mathematical expressions involving functions like sqrt(x), sin x, exp(2x), y'(x) etc., is known to the Maple developers as the sum-of-products data structure. Gaston Gonnet, as the primary author of the Maple kernel, designed and implemented this data structure in the early 80s. As part of the process of simplifying a mathematical formula, he represented every Maple object and every sub-object uniquely in memory. This makes testing for equality, which is used in many operations, very fast. In this article, on occasion of Gaston's retirement, we present details of his design, its pros and cons, and changes we have made to it over the years. One of the cons is the sum-of-products data structure is not nearly as efficient for multiplying multivariate polynomials as other special purpose computer algebra systems. We describe the new data structure called POLY which we added to Maple 17 (released 2013) to improve performance for polynomials in Maple, and recent work done for Maple 18 (released 2014).
Author Comment
This submission is part of the on-line proceedings of GNOME 2014. It has been submitted to Communications of Computer Algebra.