File r38/packages/solve/rsolve.txt artifact 0439045378 part of check-in 3af273af29


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.


REDUCE Historical
REDUCE Sourceforge Project | Historical SVN Repository | GitHub Mirror | SourceHut Mirror | NotABug Mirror | Chisel Mirror | Chisel RSS ]