CASA Function: realroot_sb
Isolate real roots of a polynomial in strictly separated intervals using derecursive algorithms.
Calling Sequence:
 l := realroot_sb(poly)
 l := realroot_sb(poly,widthgoal)
 l := realroot_sb(poly,interval)
 l := realroot_sb(poly,interval,widthgoal)
Parameters:
 poly : polynom
 a univariate polynomial with numeric coefficients.
 widthgoal : number
 maximal size of each isolating interval,
 interval : list
 an interval where the user wants to isolate all of the real roots of the polynomial.
Result:
 l : list

Description:
 The function returns a sorted list of strictly separated isolating intervals for all real roots of the univariate polynomial poly within interval. If interval is omitted, all realroots of the polynomial will be isolated (easier problem).
 The width of the interval is less than or equal to the optional parameter widthgoal  a positive number. If widthgoal is omitted, the most convenient width is used for each interval returned. The function now accepts polynomials with floating point coefficiences. The polynomial will be converted to a rational polynomial before isolating the realroots.
 For isolating real roots within an OPEN interval, the algorithm in this function avoids to use transformations. It is many times faster than algorithms using transformations. For example with randpoly(x, coeffs= rand(100..100), terms=10, degree=100), it is 20 times faster (see [12] for more details).
Examples:
> realroot_sb(2.5*x^8+x^74*x^620*x^5+4*x^4+20*x^3, 1/1000);
> p1:=expand(subs({n=20,a=5},x^n2*(a*x1)^2)):
> realroot_sb(p1,[0,1]);
See Also:
[CASA]
[realroot_a]
[[realroot]]