2011
DOI: 10.1016/j.jsc.2010.08.014
|View full text |Cite
|
Sign up to set email alerts
|

Sparse polynomial division using a heap

Abstract: In 1974, Johnson showed how to multiply and divide sparse polynomials using a binary heap. This paper introduces a new algorithm that uses a heap to divide with the same complexity as multiplication. It is a fraction-free method that also reduces the number of integer operations for divisions of polynomials with integer coefficients over the rationals. Heap-based algorithms use very little memory and do not generate garbage. They can run in the cpu cache and achieve high performance. We compare our C implement… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
47
0

Year Published

2012
2012
2018
2018

Publication Types

Select...
5
1

Relationship

3
3

Authors

Journals

citations
Cited by 40 publications
(47 citation statements)
references
References 14 publications
0
47
0
Order By: Relevance
“…This is not optimal when #q < #g. In [13] we present a sequential division algorithm that does O(#f + #q#g log min(#q, #g)) comparisons. However our divisor heap is run on subproblems with #g/p by #q terms where p is the number of threads, so the threshold becomes easier to meet as the number of threads increases.…”
Section: Sparse Polynomial Divisionmentioning
confidence: 99%
See 4 more Smart Citations
“…This is not optimal when #q < #g. In [13] we present a sequential division algorithm that does O(#f + #q#g log min(#q, #g)) comparisons. However our divisor heap is run on subproblems with #g/p by #q terms where p is the number of threads, so the threshold becomes easier to meet as the number of threads increases.…”
Section: Sparse Polynomial Divisionmentioning
confidence: 99%
“…The strip height s is derived from the number of terms in g, refer to Section 2.3 for details. The threads merge terms from left to right in the style of a divisor heap of Monagan and Pearce [13]. Each iteration of the main loop extracts all of the products gi · qj with the largest monomial, multiplies their coefficients to compute a sum of like terms, and inserts their successors gi · qj+1 into the heap to set up the next iteration of the algorithm.…”
Section: Parallel Algorithmmentioning
confidence: 99%
See 3 more Smart Citations