Primitive element for tower of field extensions
This functionality does not run in MATLAB.
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.
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:
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.
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)
A field created by Dom::AlgebraicExtension
A field created by Dom::AlgebraicExtension with ground field F
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 β.