Ejemplo n.º 1
0
def poly_is_square_free(field_folder):
    GF, d = read_pickle(field_folder, "is_square_free.pkl")
    d["GF"] = GF
    d["X"] = [galois.Poly(p, field=GF) for p in d["X"]]
    d["Z"] = d["Z"]
    return d
Ejemplo n.º 2
0
def poly_prod(field_folder):
    GF, d = read_pickle(field_folder, "prod.pkl")
    d["GF"] = GF
    d["X"] = [[galois.Poly(p, field=GF) for p in X] for X in d["X"]]
    d["Z"] = [galois.Poly(p, field=GF) for p in d["Z"]]
    return d
Ejemplo n.º 3
0
def poly_is_primitive(field_folder):
    GF, d = read_pickle(field_folder, "is_primitive.pkl")
    d["GF"] = GF
    d["IS"] = [galois.Poly(p, field=GF) for p in d["IS"]]
    d["IS_NOT"] = [galois.Poly(p, field=GF) for p in d["IS_NOT"]]
    return d
Ejemplo n.º 4
0
 def test_prim_poly(self, field):
     prim_poly = field.prim_poly  # Polynomial in GF(p)
     alpha = field.alpha
     poly = galois.Poly(prim_poly.coeffs, field=field)  # Polynomial in GF(p^m)
     assert poly(alpha) == 0
Ejemplo n.º 5
0
def poly_reverse(field_folder):
    GF, d = read_pickle(field_folder, "reverse.pkl")
    d["GF"] = GF
    d["X"] = [galois.Poly(p, field=GF) for p in d["X"]]
    d["Z"] = [galois.Poly(p, field=GF) for p in d["Z"]]
    return d
Ejemplo n.º 6
0
                c = e.polynomial().coefficients(sparse=False)[::-1]
                print(f"    galois.Poly({c}, field=GF{p}),")
        print("]\n")
"""
import random

import pytest

import galois

GF2 = galois.GF(2)
GF3 = galois.GF(3)
GF5 = galois.GF(5)

PRIMITIVE_ELEMENTS_2_2 = [
    galois.Poly([1, 0], field=GF2),
    galois.Poly([1, 1], field=GF2),
]

PRIMITIVE_ELEMENTS_2_3 = [
    galois.Poly([1, 0], field=GF2),
    galois.Poly([1, 1], field=GF2),
    galois.Poly([1, 0, 0], field=GF2),
    galois.Poly([1, 0, 1], field=GF2),
    galois.Poly([1, 1, 0], field=GF2),
    galois.Poly([1, 1, 1], field=GF2),
]

PRIMITIVE_ELEMENTS_2_4 = [
    galois.Poly([1, 0], field=GF2),
    galois.Poly([1, 1], field=GF2),
Ejemplo n.º 7
0
def test_negative_coeffs(type1, config):
    GF = config["GF"]
    p = galois.Poly(type1(config["neg_coeffs"]), field=GF)
    check_attributes(p, config)
Ejemplo n.º 8
0
def create_poly_from_array(bool_array):
    return galois.Poly(bool_array, field=GF)
Ejemplo n.º 9
0
def test_equal_with_scalar(field):
    # NOTE: GF(11) is not included in the `field` pytest fixture
    scalar = 0
    p = galois.Poly([scalar], field=field)
    assert p == scalar
    assert p == field(scalar)
    assert p == galois.Poly([scalar], field=field)
    assert p != galois.Poly([scalar], field=galois.GF(11))
    assert scalar == p
    assert field(scalar) == p
    assert galois.Poly([scalar], field=field) == p
    assert galois.Poly([scalar], field=galois.GF(11)) != p

    scalar = 1
    p = galois.Poly([scalar], field=field)
    assert p == scalar
    assert p == field(scalar)
    assert p == galois.Poly([scalar], field=field)
    assert p != galois.Poly([scalar], field=galois.GF(11))
    assert scalar == p
    assert field(scalar) == p
    assert galois.Poly([scalar], field=field) == p
    assert galois.Poly([scalar], field=galois.GF(11)) != p

    scalar = random.randint(1, field.order - 1)
    p = galois.Poly([scalar], field=field)
    assert p == scalar
    assert p == field(scalar)
    assert p == galois.Poly([scalar], field=field)
    assert scalar == p
    assert field(scalar) == p
    assert galois.Poly([scalar], field=field) == p
Ejemplo n.º 10
0
 def test_equal(self, field):
     c = field.Random(6)
     c[0] = field.Random(low=1)  # Ensure leading coefficient is non-zero
     p1 = galois.Poly(c)
     p2 = galois.Poly(c.tolist(), field=field)
     assert p1 == p2
Ejemplo n.º 11
0
 def test_negative_coeffs(self, field):
     a = field.Random()
     l = [1, -int(a)]
     p = galois.Poly(l, field=field)
     assert np.all(p.coeffs == [1, -a])
     check_poly(p, field)
Ejemplo n.º 12
0
 def test_field_coeffs(self, field):
     c = field.Random(6)
     c[0] = field.Random(low=1)  # Ensure leading coefficient is non-zero
     p = galois.Poly(c)
     assert np.all(p.coeffs == c)
     check_poly(p, field)
Ejemplo n.º 13
0
def field_minimal_poly_element(field_folder):
    GF, d = read_pickle(field_folder, "minimal_poly_element.pkl")
    d["GF"] = GF
    d["X"] = GF(d["X"])
    d["Z"] = [galois.Poly(p, field=GF.prime_subfield) for p in d["Z"]]
    return d
Ejemplo n.º 14
0
def field_characteristic_poly_matrix(field_folder):
    GF, d = read_pickle(field_folder, "characteristic_poly_matrix.pkl")
    d["GF"] = GF
    d["X"] = [GF(x) for x in d["X"]]
    d["Z"] = [galois.Poly(p, field=GF) for p in d["Z"]]
    return d