Template Class Sturm

Nested Relationships

Nested Types

Class Documentation

template<typename Real>
class Utils::Sturm

Public Types

typedef int Integer
typedef Poly<Real> Poly_t
typedef Eigen::Matrix<Real, Eigen::Dynamic, 1> dvec_t

Public Functions

inline Sturm()
void build(Poly_t const &p)

Given the polynomial \( p(x) \) build its Sturm sequence

inline Integer length() const

Return the length of the stored Sturm sequence.

inline Poly_t const &get(Integer i) const

Return the i-th polynomial of the stored Sturm sequence.

Integer sign_variations(Real x, bool &on_root) const

Conpute the sign variations of the stored Sturm sequence at \( x \).

Integer separate_roots(Real a, Real b)

Given an interval \( [a,b] \) compute the subintervals containing a single root. Return the numbers of intervals (roots) found.

inline Integer n_roots() const
inline Real a() const
inline Real b() const
inline Interval const &get_interval(Integer i) const
void refine_roots(Real tol)

compute the roots in the intervals after the separation.

inline dvec_t const &roots() const

return a vector with the computed roots

struct Interval

Public Members

Real a
Real b
Real va
Real vb