Module Rat_poly_sturm


module Rat_poly_sturm: sig .. end
Provides operations involving the real roots of polynomials in one variable and whose coefficients are rational. These operations are based on Sturm's theorem. The four last functions are still under test.

val sturm_chain : Rat_poly.rat_poly -> Rat_poly.rat_poly list
Returns the Sturm chain (or Sturm sequence) from a polynomial which is non-zero, whose degree is non-zero and which is a square-free polynomial (i.e. a polynomial with no square factors).
val nb_roots_in : Rat_poly.rat_poly -> Rat_inter.rat_inter -> int
Returns the number of real roots of a polynomial (which is non-zero, whose degree is non-zero and which is a square-free polynomial) that are in an open non-empty interval none of the rational bounds of which is a root of the polynomial.
val square_free_with_the_same_roots : Rat_poly.rat_poly -> Rat_poly.rat_poly
Returns a square-free polynomial whose set of real roots is equal to the one of the given polynomial (which is non-zero and whose degree is non-zero).
val nb_roots : Rat_poly.rat_poly -> int
Returns the number of real roots of a non-zero polynomial.
val list_of_root_bounding_intervals : Rat_poly.rat_poly * Rat.rat -> Rat_inter.rat_inter list
Returns a list of intervals where the number of real roots of p in each interval is 1 and where the width of each interval is less than prec, given a pair (p, prec) where p is a non-zero polynomial and prec is a rational > 0.
val low_approximation_of_roots : Rat_poly.rat_poly * int -> Rat.rat list
Returns a list of rationals where each rational r is either a root of p or such that a root of p is in the interval (r, r + 10 raised to the power -n), given a pair (p, n) where p is a non-zero polynomial and n is a non-negative integer.
val strings_of_roots : Rat_poly.rat_poly * int -> string list
Returns a list of (string representations of) decimals where each decimal is either a root of p or such that a root of p is in the interval (d, d + 10 raised to the power -n+1), given a pair (p, n) where p is a non-zero polynomial and n is a non-negative integer.
val strings_of_images_of_roots : Rat_poly.rat_poly * int -> string list
In order to test strings_of_roots, this function returns a list of (string representations of) decimals which approximate the images of the approximations of the roots of p resulting from applying strings_of_roots to (p, n), given a pair (p, n) where p is a non-zero polynomial and n is a non-negative integer.