Exemplo n.º 1
0
 def is_cyclotomic(f):
     """Returns ``True`` if ``f`` is a cyclotomic polnomial. """
     if not f.lev:
         return dup_zz_cyclotomic_p(f.rep, f.dom)
     else:
         return False
Exemplo n.º 2
0
def test_dup_zz_cyclotomic_p():
    assert dup_zz_cyclotomic_p([1, -1], ZZ) == True
    assert dup_zz_cyclotomic_p([1, 1], ZZ) == True
    assert dup_zz_cyclotomic_p([1, 1, 1], ZZ) == True
    assert dup_zz_cyclotomic_p([1, 0, 1], ZZ) == True
    assert dup_zz_cyclotomic_p([1, 1, 1, 1, 1], ZZ) == True
    assert dup_zz_cyclotomic_p([1, -1, 1], ZZ) == True
    assert dup_zz_cyclotomic_p([1, 1, 1, 1, 1, 1, 1], ZZ) == True
    assert dup_zz_cyclotomic_p([1, 0, 0, 0, 1], ZZ) == True
    assert dup_zz_cyclotomic_p([1, 0, 0, 1, 0, 0, 1], ZZ) == True

    assert dup_zz_cyclotomic_p([], ZZ) == False
    assert dup_zz_cyclotomic_p([1], ZZ) == False
    assert dup_zz_cyclotomic_p([1, 0], ZZ) == False
    assert dup_zz_cyclotomic_p([1, 2], ZZ) == False
    assert dup_zz_cyclotomic_p([3, 1], ZZ) == False
    assert dup_zz_cyclotomic_p([1, 0, -1], ZZ) == False

    f = [1, 0, 1, 0, 0, 0, -1, 0, 1, 0, -1, 0, 0, 0, 1, 0, 1]
    assert dup_zz_cyclotomic_p(f, ZZ) == False

    g = [1, 0, 1, 0, 0, 0, -1, 0, -1, 0, -1, 0, 0, 0, 1, 0, 1]
    assert dup_zz_cyclotomic_p(g, ZZ) == True

    assert dup_zz_cyclotomic_p([QQ(1), QQ(1), QQ(1)], QQ) == True
    assert dup_zz_cyclotomic_p([QQ(1, 2), QQ(1), QQ(1)], QQ) == False
Exemplo n.º 3
0
 def is_cyclotomic(f):
     """Returns ``True`` if ``f`` is a cyclotomic polnomial. """
     if not f.lev:
         return dup_zz_cyclotomic_p(f.rep, f.dom)
     else:
         return False
Exemplo n.º 4
0
def test_dup_zz_cyclotomic_p():
    assert dup_zz_cyclotomic_p([1,-1], ZZ) == True
    assert dup_zz_cyclotomic_p([1,1], ZZ) == True
    assert dup_zz_cyclotomic_p([1,1,1], ZZ) == True
    assert dup_zz_cyclotomic_p([1,0,1], ZZ) == True
    assert dup_zz_cyclotomic_p([1,1,1,1,1], ZZ) == True
    assert dup_zz_cyclotomic_p([1,-1,1], ZZ) == True
    assert dup_zz_cyclotomic_p([1,1,1,1,1,1,1], ZZ) == True
    assert dup_zz_cyclotomic_p([1,0,0,0,1], ZZ) == True
    assert dup_zz_cyclotomic_p([1,0,0,1,0,0,1], ZZ) == True

    assert dup_zz_cyclotomic_p([], ZZ) == False
    assert dup_zz_cyclotomic_p([1], ZZ) == False
    assert dup_zz_cyclotomic_p([1, 0], ZZ) == False
    assert dup_zz_cyclotomic_p([1, 2], ZZ) == False
    assert dup_zz_cyclotomic_p([3, 1], ZZ) == False
    assert dup_zz_cyclotomic_p([1, 0, -1], ZZ) == False

    f = [1, 0, 1, 0, 0, 0,-1, 0, 1, 0,-1, 0, 0, 0, 1, 0, 1]
    assert dup_zz_cyclotomic_p(f, ZZ) == False

    g = [1, 0, 1, 0, 0, 0,-1, 0,-1, 0,-1, 0, 0, 0, 1, 0, 1]
    assert dup_zz_cyclotomic_p(g, ZZ) == True

    assert dup_zz_cyclotomic_p([QQ(1),QQ(1),QQ(1)], QQ) == True
    assert dup_zz_cyclotomic_p([QQ(1,2),QQ(1),QQ(1)], QQ) == False