A Maple implementation of a modular algorithm for computing the common zeros of a polynomial and a regular chain

Authors

DOI:

https://doi.org/10.5206/mt.v2i1.14448

Keywords:

Regular chains, Modular method, Evaluation and interpolation

Abstract

One of the core commands in the RegularChains library is
Triangularize. The underlying decomposes the solution set of an
polynomial system into geometrically meaningful components represented
by regular chains.  This algorithm works by repeatedly calling a
procedure, called Intersect, which computes the common zeros of a
polynomial p and a regular chain T.

As the number of variables of p and T, as well as their degrees,
increase, the call Intersect(p, T) becomes more and more
computationally expensive. It was observed in (C. Chen an M. Moreno
Maza, JSC 2012) that when the input polynomial system is
zero-dimensional and T is one-dimensional then this cost can be
substantially reduced. The method proposed by the authors is a
probabilistic algorithm based on evaluation and interpolation
techniques. This is the type of method which is typically challenging
to implement in a high-level language like Maple's language, as a
sharp control of computing resources (in particular memory) is needed.

In this paper, we report on a successful Maple implementation of this
algorithm.  We take advantage of Maple's modp1 function which offers
fast arithmetic for univariate polynomials over a prime field.
The method avoids unlucky specialization and the probabilistic aspect
only comes from the fact that non-generic solutions are not
computed. 

A table of timings

Downloads

Published

2022-09-05