RealZeroPackage Pol¶

This package provides functions for finding the real zeros of univariate polynomials over the integers to arbitrary user-specified precision. The results are returned as a list of isolating intervals which are expressed as records with “left” and “right” rational number components.

midpoint: Record(left: Fraction Integer, right: Fraction Integer) -> Fraction Integer

midpoint(int) returns the midpoint of the interval int.

midpoints: List Record(left: Fraction Integer, right: Fraction Integer) -> List Fraction Integer

midpoints(isolist) returns the list of midpoints for the list of intervals isolist.

realZeros: (Pol, Fraction Integer) -> List Record(left: Fraction Integer, right: Fraction Integer)

realZeros(pol, eps) returns a list of intervals of length less than the rational number eps for all the real roots of the polynomial pol.

realZeros: (Pol, Record(left: Fraction Integer, right: Fraction Integer)) -> List Record(left: Fraction Integer, right: Fraction Integer)

realZeros(pol, range) returns a list of isolating intervals for all the real zeros of the univariate polynomial pol which lie in the interval expressed by the record range.

realZeros: (Pol, Record(left: Fraction Integer, right: Fraction Integer), Fraction Integer) -> List Record(left: Fraction Integer, right: Fraction Integer)

realZeros(pol, int, eps) returns a list of intervals of length less than the rational number eps for all the real roots of the polynomial pol which lie in the interval expressed by the record int.

realZeros: Pol -> List Record(left: Fraction Integer, right: Fraction Integer)

realZeros(pol) returns a list of isolating intervals for all the real zeros of the univariate polynomial pol.

refine: (Pol, Record(left: Fraction Integer, right: Fraction Integer), Fraction Integer) -> Record(left: Fraction Integer, right: Fraction Integer)

refine(pol, int, eps) refines the interval int containing exactly one root of the univariate polynomial pol to size less than the rational number eps.

refine: (Pol, Record(left: Fraction Integer, right: Fraction Integer), Record(left: Fraction Integer, right: Fraction Integer)) -> Union(Record(left: Fraction Integer, right: Fraction Integer), failed)

refine(pol, int, range) takes a univariate polynomial pol and and isolating interval int containing exactly one real root of pol; the operation returns an isolating interval which is contained within range, or “failed” if no such isolating interval exists.