PrimitiveElement(F)

primelt.spad line 1 [edit on github]

PrimitiveElement provides functions to compute primitive elements in algebraic extensions.

primitiveElement : (List(Polynomial(F)), List(Symbol)) -> Record(coef : List(Integer), poly : List(SparseUnivariatePolynomial(F)), prim : SparseUnivariatePolynomial(F))

primitiveElement([p1, ..., pn], [a1, ..., an]) returns [[c1, ..., cn], [q1, ..., qn], q] such that then k(a1, ..., an) = k(a), where a = a1 c1 + ... + an cn, ai = qi(a), and q(a) = 0. The pi's are the defining polynomials for the ai's. This operation uses the technique of Groebner basis.

primitiveElement : (List(Polynomial(F)), List(Symbol), Symbol) -> Record(coef : List(Integer), poly : List(SparseUnivariatePolynomial(F)), prim : SparseUnivariatePolynomial(F))

primitiveElement([p1, ..., pn], [a1, ..., an], a) returns [[c1, ..., cn], [q1, ..., qn], q] such that then k(a1, ..., an) = k(a), where a = a1 c1 + ... + an cn, ai = qi(a), and q(a) = 0. The pi's are the defining polynomials for the ai's. This operation uses the technique of Groebner basis.

primitiveElement : (Polynomial(F), Symbol, Polynomial(F), Symbol) -> Record(coef1 : Integer, coef2 : Integer, prim : SparseUnivariatePolynomial(F))

primitiveElement(p1, a1, p2, a2) returns [c1, c2, q] such that k(a1, a2) = k(a) where a = c1 a1 + c2 a2, and q(a) = 0. The pi's are the defining polynomials for the ai's. The p2 may involve a1, but p1 must not involve a2. This operation uses resultant.