Elements of function fields: extension#
- class sage.rings.function_field.element_polymod.FunctionFieldElement_polymod#
Bases:
FunctionFieldElement
Elements of a finite extension of a function field.
EXAMPLES:
sage: K.<x> = FunctionField(QQ); R.<y> = K[] sage: L.<y> = K.extension(y^2 - x*y + 4*x^3) sage: x*y + 1/x^3 x*y + 1/x^3
- element()#
Return the underlying polynomial that represents the element.
EXAMPLES:
sage: K.<x> = FunctionField(QQ); R.<T> = K[] sage: L.<y> = K.extension(T^2 - x*T + 4*x^3) sage: f = y/x^2 + x/(x^2+1); f 1/x^2*y + x/(x^2 + 1) sage: f.element() 1/x^2*y + x/(x^2 + 1)
- is_nth_power(n)#
Return whether this element is an
n
-th power in the function field.INPUT:
n
– an integer
ALGORITHM:
If
n
is a power of the characteristic of the field and the constant base field is perfect, then this uses the algorithm described in Proposition 12 of [GiTr1996].See also
EXAMPLES:
sage: # needs sage.rings.finite_rings sage: K.<x> = FunctionField(GF(4)) sage: R.<y> = K[] sage: L.<y> = K.extension(y^2 - x) sage: y.is_nth_power(2) False sage: L(x).is_nth_power(2) True
- list()#
Return the list of the coefficients representing the element.
If the function field is \(K[y]/(f(y))\), then return the coefficients of the reduced presentation of the element as a polynomial in \(K[y]\).
EXAMPLES:
sage: K.<x> = FunctionField(QQ); R.<y> = K[] sage: L.<y> = K.extension(y^2 - x*y + 4*x^3) sage: a = ~(2*y + 1/x); a (-1/8*x^2/(x^5 + 1/8*x^2 + 1/16))*y + (1/8*x^3 + 1/16*x)/(x^5 + 1/8*x^2 + 1/16) sage: a.list() [(1/8*x^3 + 1/16*x)/(x^5 + 1/8*x^2 + 1/16), -1/8*x^2/(x^5 + 1/8*x^2 + 1/16)] sage: (x*y).list() [0, x]
- nth_root(n)#
Return an
n
-th root of this element in the function field.INPUT:
n
– an integer
OUTPUT:
Returns an element
a
in the function field such that this element equals \(a^n\). Raises an error if no such element exists.ALGORITHM:
If
n
is a power of the characteristic of the field and the constant base field is perfect, then this uses the algorithm described in Proposition 12 of [GiTr1996].See also
EXAMPLES:
sage: K.<x> = FunctionField(GF(3)) sage: R.<y> = K[] sage: L.<y> = K.extension(y^2 - x) sage: L(y^3).nth_root(3) y sage: L(y^9).nth_root(-9) 1/x*y
This also works for inseparable extensions:
sage: K.<x> = FunctionField(GF(3)) sage: R.<y> = K[] sage: L.<y> = K.extension(y^3 - x^2) sage: L(x).nth_root(3)^3 x sage: L(x^9).nth_root(-27)^-27 x^9