18.1 Finite Field Elements

`Z( p^d )`

The function `Z` returns the designated generator of the multiplicative group of the finite field with `p^d` elements. p must be a prime and `p^d` must be less than or equal to 2^{16} = 65536.

The root returned by `Z` is a generator of the multiplicative group of the finite field with p^d elements, which is cyclic. The order of the element is of course p^d-1. The p^d-1 different powers of the root are exactly the nonzero elements of the finite field.

Thus all nonzero elements of the finite field with `p^d` elements can be entered as `Z(p^d)^i`. Note that this is also the form that GAP uses to output those elements.

The additive neutral element is `0*Z(p)`. It is different from the integer `0` in subtle ways. First `IsInt( 0*Z(p) )` (see IsInt) is `false` and `IsFFE( 0*Z(p) )` (see IsFFE) is `true`, whereas it is just the other way around for the integer 0.

The multiplicative neutral element is `Z(p)^0`. It is different from the integer `1` in subtle ways. First `IsInt( Z(p)^0 )` (see IsInt) is `false` and `IsFFE( Z(p)^0 )` (see IsFFE) is `true`, whereas it is just the other way around for the integer 1. Also `1+1` is `2`, whereas, e.g., `Z(2)^0 + Z(2)^0` is `0*Z(2)`.

The various roots returned by `Z` for finite fields of the same characteristic are compatible in the following sense. If the field GF(p^n) is a subfield of the field GF(p^m), i.e., n divides m, then Z(p^n) = Z(p^m)^{(p^m-1)/(p^n-1)}. Note that this is the simplest relation that may hold between a generator of GF(p^n) and GF(p^m), since Z(p^n) is an element of order p^m-1 and Z(p^m) is an element of order p^n-1. This is achieved by choosing Z(p) as the smallest primitive root modulo p and Z(p^n) as a root of the n-th Conway polynomial of characteristic p. Those polynomials where defined by J.H.~Conway and computed by R.A.~Parker.

```    gap> z := Z(16);
Z(2^4)
gap> z*z;
Z(2^4)^2 ```

GAP 3.4.4
April 1997