# CASA Function: realroot_sb

Isolate real roots of a polynomial in strictly separated intervals using de-recursive 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
• a sorted 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  for more details).

### Examples:

> realroot_sb(2.5*x^8+x^7-4*x^6-20*x^5+4*x^4+20*x^3, 1/1000); > p1:=expand(subs({n=20,a=5},x^n-2*(a*x-1)^2)):

> realroot_sb(p1,[0,1]); 