Overview of the GF (Galois Field) Package - Maple Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Mathematics : Packages : GF

Overview of the GF (Galois Field) Package

Calling Sequence

GF(p, k, a)




prime integer



positive integer



(optional) irreducible polynomial of degree k over the integers mod p



The GF command returns a module G of procedures and constants for doing arithmetic in the finite field GF(p^k), a Galois Field with pk elements. The field GF(p^k) is defined by the field extension GF(p)[x]/(a) where a is an irreducible polynomial of degree k over the integers mod p.


If a is not specified, an irreducible polynomial of degree k over the integers mod p is chosen at random.  It can be accessed as the constant G:-extension.  The elements of GF(p^k) are represented using the modp1 representation.


First, you need to define an instance of a Galois field using, for example, G := GF(2, 3). This defines all operations for G, the field of characteristic 2 with 8 elements.


The G:-input and G:-output commands convert from an integer in the range 0..pk1 to the corresponding polynomial and back. Alternatively, G:-ConvertIn and G:-ConvertOut convert an element from GF(p^k) to a Maple sum of products, a univariate polynomial where the variable used is that given in the argument a. Otherwise the name `?` is used.


Arithmetic in the field is defined by the following functions. G:-`+`, G:-`-`, G:-`*`, G:-`^`, G:-inverse, G:-`/`



Field arithmetic can be written very naturally by using a use statement; see the examples below.


The additive and multiplicative identities are given by G:-zero and G:-one.


The G:-trace, G:-norm, and G:-order commands compute the trace, norm and multiplicative order of an element from GF(p^k) respectively.


The G:-random command returns a random element from GF(p^k).


The G:-PrimitiveElement command generates a primitive element at random.


The G:-isPrimitiveElement command tests whether an element from GF(p^k) is a primitive element, being a generator for the multiplicative group GF(p^k) - {0}.


For backwards compatibility, exports of the module returned by the GF command can also be accessed by indexed notation, such as G[':-ConvertIn']. However, using the more modern form G:-ConvertIn, you do not need to quote the name to avoid evaluation.




a:=α mod 2



α2 mod 2



α+1 mod 2



x:=α2+1 mod 2












x:=α3+1 mod 2



1 mod 2


The use statement, if used carefully, can make arithmetic operations in the field much more natural.

useG16iny:=aa+x;z:=ay;z3+y2end use

y:=α2+1 mod 2

z:=α2+α+1 mod 2

α+1 mod 2


See Also

Domains, mod, modp1

Download Help Document

Was this information helpful?

Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam