Rational and integer zeros of a univariate polynomial
using fast modular methods.
Author: F.J.Wright@Maths.QMW.ac.uk
Version 1.05, 2 Oct 1994
The operators r_solve and i_solve take a single univariate polynomial (or
polynomial equation) as argument, and optionally the variable as second
argument, and return respectively the sets of rational and integer zeros.
Any denominator is completely ignored! See the test/demo file rsolve.tst
for examples.
Default output format is the same as used by solve (including respecting
the multiplicities switch), but optional arguments allow other output
formats (see the source file rsolve.red for details). Solutions of
degenerate equations are expressed by r_solve and i_solve using the
operators ARBRAT (which is new) and ARBINT respectively.
Computing only the integer zeros is slightly more efficient than extracting
them from the rational zeros. This algorithm appears to be faster than
solve by a factor that depends on the example, but typically up to about 2,
and gives more convenient output if only integer or rational zeros are
required.
The algorithm used is that described by R. Loos (1983): Computing rational
zeros of integral polynomials by p-adic expansion. SIAM J. Computing. 12,
286--293.
The switch TRSOLVE turns on tracing of the algorithm.