Exponential Polynomial Vector Regular
0 0 (000) 0
x0=1 1 (100) 1
x1 x (010) 2
x2 x2 (001) 4
x3 1+x (110) 3
x4 x+x2 (011) 6
x5 1+x+x2 (111) 7
x6 1+ x2 (101) 5
The first and second columns are called exponential and polynomial representations,
respectively. The third column contains the triples of coefficients of the
polynomial representations, called the vector representation. The last column,
called regular representation, contains the integer representations of vectors
which are regarded as binary numbers. This finite field is said to be an
extension field of degree 3 of GF(2) and is written GF(23). Then the field
GF(2) is called the base field of GF(23). The integer in the form must be a regular representation of the finite
field. For example, suppose we now have an algebra name K5 for GF(5), then
we can write the following expressions:
In this case, the order of K5 is a prime, 5, therefore the integers that appear in the brackets [ ] are 0,1,..., or 4. In the case of a extension field GF(qn), the regular representation is used for the integers in the brackets. The regular representation has some advantages as listed below:K5[2] + K5[4] K5[1] K5[2]^3 K5[3] (K5[4] + K5[3] )^-1 K5[3]
K9[0] is the additive identity and K9[1] is the multiplicative identity of K9. K[0], K9[1], K[2] are the elements of the base field GF(3) of K9. Algebra names are defined as Listable in Mathematica, therefore, it is easy to define a vector:K9[4] + K9[5] K9[6] K9[6]^-1 K9[7] K9[3]^0 K9[1]
K9[{1,3,5}]
{K9[1], K9[3], K9[5]}
Most of operations and functions of Mathematica is designed so that they
act separately on each elements of a list. Therefore, if you declare two
Galois fields, we can compute over a direct product of two Galois fields
by writting two constants in a list.
{K5[4], K9[6]}^4
{K5[1], K9[2]}
You can input K9[0] as
however, if its result is zero then the output form is 0 instead of K9[0]. The reason is that some Mathematica functions, like Nullspace, Solve,... , may not understand K9[0] as 0. Therefore, when a result is zero in a Galois field , then this package always returns 0.K9[0] K9[4] 0