# CASA Function: finiteField

Constructs a finite field

### Calling Sequence:

• F := finiteField(q)
• F := finiteField(q, alpha)

### Parameters:

q : posint
• A prime power. The number of elements of the field.
alpha : name
• Name used for a primite element of the field.

### Result:

F : casa/finite/Field
• A table with methods to work with finite fields.

### Description:

• finiteField constructs a table containing methods to convert elements of a finite field, represented using Maple's RootOf expressions, to a more readable form alpha^i. Also conversion to RoofOf form, and routines to normalize, expand and normalize expressions containing RootOfs.
• The following methods are supplied:
• p, k, q: q = p^k. The size of the field.
• In: Convert an expression using alphas to RootOf form.
• Out: Convert from RootOf form to form using alphas. If the conversion is not possible, then the argument is returned unchanged.
• N: Normalize a field element using the inert Normal function.
• mapN: Map the normalization function N to a list, set, ...
• Expand: Expand a field element using the inert Expand function.
• seq: A sequence of the field elements, in alpha notation.
• seqIn: A sequence of the field elements, represented using RootOfs.
• mapIn, mapOut: Map the conversion functions In and Out to a list, set, etc.
• mapOutIn: This function is equivalent to mapOut followed by mapIn. This is useful to do operations on vectors stored in alpha form.

### Examples:

> F := finiteField(16):

> F["p"]; > F["q"]; > F["k"]; > F["seq"]; > a := F["In"](alpha^2 + 1); > F["Out"](1 + a + a^2); > a := F["In"](alpha^4 + alpha + 1); > F["N"](a); > F["Out"](a); 