# GF -- make a finite field

## Synopsis

• Usage:
GF(p,n)
GF(q)
• Inputs:
• p, a prime number
• n
• Variable => , default value null, the name to use for the generator of the field
• SizeLimit => an integer, default value 10000, the limit on the size of a Galois field whose elements will be represented internally as powers of the primitive element
• Outputs:
• , a finite field with q = p^n elements
The generator of this ring is a primitive element: it generates the multiplicative group of non-zero elements.

If the single argument form GF(q) is given, q should be a prime power q = p^n

 `i1 : A = GF(3,2,Variable=>b);` ```i2 : ambient A ZZ --[b] 3 o2 = ---------- 2 b - b - 1 o2 : QuotientRing``` ```i3 : b^8 o3 = 1 o3 : A``` ```i4 : b^4 o4 = -1 o4 : A```
 ```i5 : K = GF 8 o5 = K o5 : GaloisField``` ```i6 : x = K_0 o6 = a o6 : K``` ```i7 : x^3+x o7 = 1 o7 : K```

## Synopsis

• Usage:
GF R
• Inputs:
• R, a ring, A quotient of a polynomial ring over ZZ/p in one variable, modulo an irreducible polynomial
• PrimitiveElement => default value FindOne, either an element of R, or the symbol FindOne. An element is primitive if it generates the multiplicative group of non-zero elements of R
• SizeLimit => an integer, default value 10000, the limit on the size of a Galois field whose elements will be represented internally as powers of the primitive element
• Outputs:
• , a finite field isomorphic to R
 ```i8 : A = ZZ/5[a]/(a^3-a-2) o8 = A o8 : QuotientRing``` ```i9 : B = GF A o9 = B o9 : GaloisField``` ```i10 : C = ZZ/5[b]/(b^3+1+3*b^2+b) o10 = C o10 : QuotientRing``` ```i11 : D = GF C o11 = D o11 : GaloisField``` ```i12 : map(B,D,{a^2}) 2 o12 = map(B,D,{a }) o12 : RingMap B <--- D```