Sciweavers

CASC
2007
Springer

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

13 years 10 months ago
Polynomial Division Using Dynamic Arrays, Heaps, and Packed Exponent Vectors
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...
Michael B. Monagan, Roman Pearce
Added 07 Jun 2010
Updated 07 Jun 2010
Type Conference
Year 2007
Where CASC
Authors Michael B. Monagan, Roman Pearce
Comments (0)