RealZeroPackage(Pol)

realzero.spad line 1 [edit on github]

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 -> 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.

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.

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.