'Computes the Sturm sequence of ``f``.
Examples
>>> from sympy import Poly
>>> from sympy.abc import x
>>> Poly(x**3 - 2*x**2 + x - 3, x).sturm()
[Poly(x**3 - 2*x**2 + x - 3, x, domain=\'QQ\'),
Poly(3*x**2 - 4*x + 1, x, domain=\'QQ\'),
Poly(2/9*x + 25/9, x, domain=\'QQ\'),
Poly(-2079/4, x, domain=\'QQ\')]'

def sturm(self, auto=True):

    f = self
    if (auto and f.rep.dom.is_Ring):
        f = f.to_field()
    if hasattr(f.rep, 'sturm'):
        result = f.rep.sturm()
    else:
        raise OperationNotSupported(f, 'sturm')
    return list(map(f.per, result))
