# SturmHabichtPackage(R, UP)ΒΆ

This package provides functions for counting real roots of univariate polynomials over an OrderedIntegralDomain.

- countRealRoots: UP -> Integer
`countRealRoots(p)`

says how many real roots`p`

has

- countRealRootsMultiple: UP -> Integer if R has GcdDomain
`countRealRootsMultiple(p)`

says how many real roots`p`

has, counted with multiplicity

- SturmHabicht: (UP, UP) -> Integer
`SturmHabicht(p1, p2)`

computes`c_`

{+}`-c_`

{-} where`c_`

{+} is the number of real roots of`p1`

with`p2>0`

and`c_`

{-} is the number of real roots of`p1`

with`p2<0`

. If`p2=1`

what you get is the number of real roots of`p1`

.

- SturmHabichtCoefficients: (UP, UP) -> List R
`SturmHabichtCoefficients(p1, p2)`

computes the principal Sturm-Habicht coefficients of`p1`

and`p2`

- SturmHabichtMultiple: (UP, UP) -> Integer if R has GcdDomain
`SturmHabichtMultiple(p1, p2)`

computes`c_`

{+}`-c_`

{-} where`c_`

{+} is the number of real roots of`p1`

with`p2>0`

and`c_`

{-} is the number of real roots of`p1`

with`p2<0`

. If`p2=1`

what you get is the number of real roots of`p1`

.

- SturmHabichtSequence: (UP, UP) -> List UP
`SturmHabichtSequence(p1, p2)`

computes the Sturm-Habicht sequence of`p1`

and`p2`