Esempio n. 1
0
def zzX_fateman_poly_F_3(n):
    """Fateman's GCD benchmark: sparse inputs (deg f ~ vars f) """
    u = zzx_from_dict({n+1:1})

    for i in xrange(1, n):
        u = zzX_add_term([u], zzX_const(i, 1), n+1)

    v = zzX_add_term(u, zzX_const(n-1, 2))

    f = zzX_sqr(zzX_add_term([zzX_neg(v)], zzX_const(n, 1), n+1))
    g = zzX_sqr(zzX_add_term([v], zzX_const(n, 1), n+1))

    v = zzX_add_term(u, zzX_const(n-1, 1))

    h = zzX_sqr(zzX_add_term([v], zzX_const(n, 1), n+1))

    return zzX_mul(f,h), zzX_mul(g,h), h
Esempio n. 2
0
def zzX_fateman_poly_F_2(n):
    """Fateman's GCD benchmark: linearly dense quartic inputs """
    u = [1, 0]

    for i in xrange(1, n):
        u = [zzX_const(i, 1), u]

    v = zzX_add_term(u, zzX_const(n - 1, 2))

    f = zzX_sqr([zzX_const(n, 1), zzX_neg(v)])
    g = zzX_sqr([zzX_const(n, 1), v])

    v = zzX_add_term(u, zzX_const(n - 1, 1))

    h = zzX_sqr([zzX_const(n, 1), v])

    return zzX_mul(f, h), zzX_mul(g, h), h
Esempio n. 3
0
def zzX_fateman_poly_F_2(n):
    """Fateman's GCD benchmark: linearly dense quartic inputs """
    u = [1, 0]

    for i in xrange(1, n):
        u = [zzX_const(i, 1), u]

    v = zzX_add_term(u, zzX_const(n-1, 2))

    f = zzX_sqr([zzX_const(n, 1), zzX_neg(v)])
    g = zzX_sqr([zzX_const(n, 1), v])

    v = zzX_add_term(u, zzX_const(n-1, 1))

    h = zzX_sqr([zzX_const(n, 1), v])

    return zzX_mul(f,h), zzX_mul(g,h), h
Esempio n. 4
0
def zzX_fateman_poly_F_3(n):
    """Fateman's GCD benchmark: sparse inputs (deg f ~ vars f) """
    u = zzx_from_dict({n + 1: 1})

    for i in xrange(1, n):
        u = zzX_add_term([u], zzX_const(i, 1), n + 1)

    v = zzX_add_term(u, zzX_const(n - 1, 2))

    f = zzX_sqr(zzX_add_term([zzX_neg(v)], zzX_const(n, 1), n + 1))
    g = zzX_sqr(zzX_add_term([v], zzX_const(n, 1), n + 1))

    v = zzX_add_term(u, zzX_const(n - 1, 1))

    h = zzX_sqr(zzX_add_term([v], zzX_const(n, 1), n + 1))

    return zzX_mul(f, h), zzX_mul(g, h), h
def test_zzX_sqf():
    assert zzX_sqf_p(f_0) == True
    assert zzX_sqf_p(zzX_sqr(f_0)) == False
    assert zzX_sqf_p(f_1) == True
    assert zzX_sqf_p(zzX_sqr(f_1)) == False
    assert zzX_sqf_p(f_2) == True
    assert zzX_sqf_p(zzX_sqr(f_2)) == False
    assert zzX_sqf_p(f_3) == True
    assert zzX_sqf_p(zzX_sqr(f_3)) == False
    assert zzX_sqf_p(f_5) == False
    assert zzX_sqf_p(zzX_sqr(f_5)) == False

    assert zzX_sqf_p(f_4) == True
    assert zzX_sqf_part(f_4) == f_4
    assert zzX_sqf_p(f_6) == True
    assert zzX_sqf_part(f_6) == f_6

    assert zzX_sqf_part(f_5) == [[[-1]], [[-1], [1, 0]]]
Esempio n. 6
0
def test_zzX_sqf():
    assert zzX_sqf_p(f_0) == True
    assert zzX_sqf_p(zzX_sqr(f_0)) == False
    assert zzX_sqf_p(f_1) == True
    assert zzX_sqf_p(zzX_sqr(f_1)) == False
    assert zzX_sqf_p(f_2) == True
    assert zzX_sqf_p(zzX_sqr(f_2)) == False
    assert zzX_sqf_p(f_3) == True
    assert zzX_sqf_p(zzX_sqr(f_3)) == False
    assert zzX_sqf_p(f_5) == False
    assert zzX_sqf_p(zzX_sqr(f_5)) == False

    assert zzX_sqf_p(f_4) == True
    assert zzX_sqf_part(f_4) == f_4
    assert zzX_sqf_p(f_6) == True
    assert zzX_sqf_part(f_6) == f_6

    assert zzX_sqf_part(f_5) == [[[-1]], [[-1], [1, 0]]]
def test_zzX_sqr():
    assert zzX_sqr([[[]]]) == [[[]]]
    assert zzX_sqr([[[2]]]) == [[[4]]]
Esempio n. 8
0
def test_zzX_sqr():
    assert zzX_sqr([[[]]]) == [[[]]]
    assert zzX_sqr([[[2]]]) == [[[4]]]