This file offers two functions: SturmSeq
and NumRealRoots
.
Let f
be a RingElem
whose value is a univariate polynomial
with rational coefficients.
SturmSeq(f)
-- returns a vector<RingElem>
being the Sturm sequence of the polynomial f
(in order of decreasing degree)
NumRealRoots(f)
-- returns a long` being the number of real roots ``f
has.
The implementation is naive and simple; this is OK for small examples. Currently it computes a primitive PRS; seems adequate for smallish tests.
Clears denominators, but I'm not sure why content
works.
2017