2015
DOI: 10.1145/2733693.2733720
|View full text |Cite
|
Sign up to set email alerts
|

The Design of Maple's Sum-of-Products and POLY Data Structures for Representing Mathematical Objects

Abstract: The principal data structure in Maple used to represent polynomials and general mathematical expressions involving functions like √ x, sin x, e 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 e… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

0
7
0

Year Published

2018
2018
2022
2022

Publication Types

Select...
2
2
2

Relationship

0
6

Authors

Journals

citations
Cited by 6 publications
(7 citation statements)
references
References 13 publications
0
7
0
Order By: Relevance
“…The most simple and common scheme for sparsely representing a polynomial is a linked list, or some similar variation of data blocks linked together by pointers [6,29,30]. This representation allows for very easy manipulation of terms using simple pointer manipulation.…”
Section: A Sparse Distributed Polynomial Data Structurementioning
confidence: 99%
See 2 more Smart Citations
“…The most simple and common scheme for sparsely representing a polynomial is a linked list, or some similar variation of data blocks linked together by pointers [6,29,30]. This representation allows for very easy manipulation of terms using simple pointer manipulation.…”
Section: A Sparse Distributed Polynomial Data Structurementioning
confidence: 99%
“…However, the indirection created by pointers can lead to poor locality while the pointers themselves must occupy memory, resulting in memory wasted to encode the structure rather than the data itself. More efficient sparse data structures have been explored by Gastineau and Laskar [29], where burst tries store monomials in the TRIP computer algebra system, and Monagan and Peace [30], where the so-called POLY data structure for MAPLE closely stores monomials in a dense array. In both cases, the multi-precision coefficients corresponding to those monomials are stored in a secondary structure and accessed by either indices stored alongside the monomials (in the case of TRIP) or pointers (in the case of MAPLE).…”
Section: A Sparse Distributed Polynomial Data Structurementioning
confidence: 99%
See 1 more Smart Citation
“…Researchers have tried to obtain algorithms that beat the O(n log n)-time bound, when the two polynomials are sparse, i.e. the number of non-zero terms in each polynomial is at most k. Interestingly, some ideas from the relevant literature have found applications in computer algebra packages such as Maple, Mathematica and Singular, including ways to represent and store polynomials [Maz01,MP14,MP15,GR16].…”
Section: Introductionmentioning
confidence: 99%
“…A data structure for carefully allocating and de-allocating memory has been designed in [Yan98], trying to tackle the problem of memory handling can be the main bottleneck in complexity of sparse multiplication in practical scenarios. The aforementioned algorithm is based on a heap, an idea which also lead to implementations developed in [MP07,MP09,MP14,MP15]. The authors in [MP09] develop a parallel algorithm for multiplying sparse distributed polynomials, where each core uses a heap of pointers to multiply parts of polynomials, exploiting its L3 cache.…”
Section: Introductionmentioning
confidence: 99%