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