galois.typing.ElementLike

A `Union` representing objects that can be coerced into a Galois field element.

Scalars are 0-D `Array` objects.

Union

• `int`: A finite field element in its integer representation.

``````In [1]: GF = galois.GF(3**5)

In [2]: GF(17)
Out[2]: GF(17, order=3^5)
``````
``````In [3]: GF = galois.GF(3**5, repr="poly")

In [4]: GF(17)
Out[4]: GF(α^2 + 2α + 2, order=3^5)
``````
``````In [5]: GF = galois.GF(3**5, repr="power")

In [6]: GF(17)
Out[6]: GF(α^222, order=3^5)
``````
• `str`: A finite field element in its polynomial representation. Many string conventions are accepted, including: with/without `*`, with/without spaces, `^` or `**`, any indeterminate variable, increasing/decreasing degrees, etc. Or any combination of the above.

``````In [7]: GF("x^2 + 2x + 2")
Out[7]: GF(17, order=3^5)

# Add explicit * for multiplication
In [8]: GF("x^2 + 2*x + 2")
Out[8]: GF(17, order=3^5)

# No spaces
In [9]: GF("x^2+2x+2")
Out[9]: GF(17, order=3^5)

In [10]: GF("x**2 + 2x + 2")
Out[10]: GF(17, order=3^5)

# Different indeterminate
In [11]: GF("α^2 + 2α + 2")
Out[11]: GF(17, order=3^5)

# Ascending degrees
In [12]: GF("2 + 2x + x^2")
Out[12]: GF(17, order=3^5)
``````
``````In [13]: GF("x^2 + 2x + 2")
Out[13]: GF(α^2 + 2α + 2, order=3^5)

# Add explicit * for multiplication
In [14]: GF("x^2 + 2*x + 2")
Out[14]: GF(α^2 + 2α + 2, order=3^5)

# No spaces
In [15]: GF("x^2+2x+2")
Out[15]: GF(α^2 + 2α + 2, order=3^5)

In [16]: GF("x**2 + 2x + 2")
Out[16]: GF(α^2 + 2α + 2, order=3^5)

# Different indeterminate
In [17]: GF("α^2 + 2α + 2")
Out[17]: GF(α^2 + 2α + 2, order=3^5)

# Ascending degrees
In [18]: GF("2 + 2x + x^2")
Out[18]: GF(α^2 + 2α + 2, order=3^5)
``````
``````In [19]: GF("x^2 + 2x + 2")
Out[19]: GF(α^222, order=3^5)

# Add explicit * for multiplication
In [20]: GF("x^2 + 2*x + 2")
Out[20]: GF(α^222, order=3^5)

# No spaces
In [21]: GF("x^2+2x+2")
Out[21]: GF(α^222, order=3^5)

In [22]: GF("x**2 + 2x + 2")
Out[22]: GF(α^222, order=3^5)

# Different indeterminate
In [23]: GF("α^2 + 2α + 2")
Out[23]: GF(α^222, order=3^5)

# Ascending degrees
In [24]: GF("2 + 2x + x^2")
Out[24]: GF(α^222, order=3^5)
``````
• `Array`: A previously-created scalar `Array` object. No coercion is necessary.

Alias

alias of `Union`[`int`, `str`, `Array`]