# Singular          ### D.12.8 rootsur_lib

Library:
rootsur.lib
Purpose:
Counting number of real roots of univariate polynomial
Author:
Enrique A. Tobis, etobis@dc.uba.ar

Overview:
Routines for bounding and counting the number of real roots of a univariate polynomial, by means of several different methods, namely Descartes' rule of signs, the Budan-Fourier theorem, Sturm sequences and Sturm-Habicht sequences. The first two give bounds on the number of roots. The other two compute the actual number of roots of the polynomial. There are several wrapper functions, to simplify the application of the aforesaid theorems and some functions to determine whether a given polynomial is univariate.

References:
Basu, Pollack, Roy, "Algorithms in Real Algebraic Geometry", Springer, 2003.

Procedures:

 D.12.8.1 isuni Checks whether a polynomial is univariate D.12.8.2 whichvariable The only variable of a univariate monomial (or 0) D.12.8.3 varsigns Number of sign changes in a list D.12.8.4 boundBuFou Bound for number of real roots of polynomial p in interval (a,b) D.12.8.5 boundposDes Bound for the number of positive real roots of polynomial p D.12.8.6 boundDes Bound for the number of real roots of polynomial p D.12.8.7 allrealst Checks whether all the roots of a polynomial are real (via Sturm) D.12.8.8 maxabs A bound for the maximum absolute value of a root of a poly D.12.8.9 allreal Checks whether all the roots of a polynomial are real (via St-Ha) D.12.8.10 sturm Number of real roots of a polynomial on an interval (via Sturm) D.12.8.11 sturmseq Sturm sequence of a polynomial D.12.8.12 sturmha Number of real roots of a polynomial in (a,b) (via Sturm-Habicht) D.12.8.13 sturmhaseq A Sturm-Habicht Sequence of a polynomial D.12.8.14 reverse Reverses a list D.12.8.15 nrroots The number of real roots of p D.12.8.16 isparam Returns 0 if and only if the polynomial has non-parametric coefficients

### Misc 