def test_dup_sturm():
    assert dup_sturm([QQ(5)], QQ) == [[QQ(1)]]
    assert dup_sturm([QQ(1), QQ(0)], QQ) == [[QQ(1), QQ(0)], [QQ(1)]]

    f = QQ.map([1, -2, 3, -5])

    assert dup_sturm(f, QQ) == \
        [f, [QQ(3),QQ(-4),QQ(3)], [QQ(-10,9),QQ(13,3)], [QQ(-3303,100)]]
Beispiel #2
0
def test_dup_sturm():
    assert dup_sturm([QQ(5)], QQ) == [[QQ(1)]]
    assert dup_sturm([QQ(1),QQ(0)], QQ) == [[QQ(1),QQ(0)], [QQ(1)]]

    f = QQ.map([1,-2,3,-5])

    assert dup_sturm(f, QQ) == \
        [f, [QQ(3),QQ(-4),QQ(3)], [QQ(-10,9),QQ(13,3)], [QQ(-3303,100)]]
Beispiel #3
0
 def sturm(f):
     """Computes the Sturm sequence of `f`. """
     if not f.lev:
         return map(f.per, dup_sturm(f.rep, f.dom))
     else:
         raise ValueError('univariate polynomial expected')
Beispiel #4
0
 def sturm(f):
     """Computes the Sturm sequence of `f`. """
     if not f.lev:
         return map(f.per, dup_sturm(f.rep, f.dom))
     else:
         raise ValueError('univariate polynomial expected')