Accelerating the pace of engineering and science

# polylib::primitiveElement

Primitive element for tower of field extensions

### Use only in the MuPAD Notebook Interface.

This functionality does not run in MATLAB.

## Syntax

```polylib::primitiveElement(F, G)
```

## Description

For given field extensions F = K(α) and G = F(β), polylib::primitiveElement(F, G) returns a list consisting of a simple algebraic extension of K that is K-isomorphic to G, a symbol for a primitive element of that extension, and the images of α and β under some fixed K-isomorphism.

It is presumed that the extension is separable. Otherwise, it may happen that the algorithm does not terminate.

## Examples

### Example 1

Since the rational numbers are perfect, extensions of them can always be handled:

```F := Dom::AlgebraicExtension(Dom::Rational, sqrt2^2 - 2):
G := Dom::AlgebraicExtension(F, sqrt3^2 - 3):```

Now , and we use polylib::primitiveElement to find a primitive element for G:

`polylib::primitiveElement(F, G)`

This means that a primitive element X1 of the extension is determined by its minimal polynomial X14 - 10 X12 + 1. The last two operands of the list are field elements whose squares are 2 and 3, respectively.

### Example 2

The function works also for subdomains of Dom::AlgebraicExtension, e.g., Galois fields.

```F := Dom::GaloisField(7, 2):
G := Dom::GaloisField(F, 2):
polylib::primitiveElement(F, G)```

## Parameters

 F A field created by Dom::AlgebraicExtension G A field created by Dom::AlgebraicExtension with ground field F

## Return Values

List consisting of four operands:

• a field H of type Dom::AlgebraicExtension over the same ground field as F;

• an identifier that equals the entry H::variable;

• an object of type H that satisfies the minimal polynomial for α;

• an object of type H that satisfies the minimal polynomial for β.

## Algorithms

The chosen primitive element is α + sβ, where s is a positive integer.