Finite field morphisms using Givaro¶
Special implementation for givaro finite fields of:
- embeddings between finite fields
- frobenius endomorphisms
SEEALSO:
:mod:`sage.rings.finite_rings.hom_finite_field`
AUTHOR:
- Xavier Caruso (2012-06-29)
-
class
sage.rings.finite_rings.hom_finite_field_givaro.
FiniteFieldHomomorphism_givaro
¶ Bases:
sage.rings.finite_rings.hom_finite_field.FiniteFieldHomomorphism_generic
TESTS:
sage: from sage.rings.finite_rings.hom_finite_field_givaro import FiniteFieldHomomorphism_givaro sage: k.<t> = GF(3^2) sage: K.<T> = GF(3^4) sage: f = FiniteFieldHomomorphism_givaro(Hom(k, K)); f Ring morphism: From: Finite Field in t of size 3^2 To: Finite Field in T of size 3^4 Defn: t |--> 2*T^3 + 2*T^2 + 1 sage: k.<t> = GF(3^10) sage: K.<T> = GF(3^20) sage: f = FiniteFieldHomomorphism_givaro(Hom(k, K)); f Traceback (most recent call last): ... TypeError: The codomain is not an instance of FiniteField_givaro
-
class
sage.rings.finite_rings.hom_finite_field_givaro.
FrobeniusEndomorphism_givaro
¶ Bases:
sage.rings.finite_rings.hom_finite_field.FrobeniusEndomorphism_finite_field
TESTS:
sage: k.<t> = GF(5^3) sage: Frob = k.frobenius_endomorphism(); Frob Frobenius endomorphism t |--> t^5 on Finite Field in t of size 5^3 sage: type(Frob) <type 'sage.rings.finite_rings.hom_finite_field_givaro.FrobeniusEndomorphism_givaro'> sage: k.<t> = GF(5^20) sage: Frob = k.frobenius_endomorphism(); Frob Frobenius endomorphism t |--> t^5 on Finite Field in t of size 5^20 sage: type(Frob) <type 'sage.rings.finite_rings.hom_finite_field.FrobeniusEndomorphism_finite_field'>
-
fixed_field
()¶ Return the fixed field of
self
.OUTPUT:
- a tuple \((K, e)\), where \(K\) is the subfield of the domain
consisting of elements fixed by
self
and \(e\) is an embedding of \(K\) into the domain.
Note
The name of the variable used for the subfield (if it is not a prime subfield) is suffixed by
_fixed
.EXAMPLES:
sage: k.<t> = GF(5^6) sage: f = k.frobenius_endomorphism(2) sage: kfixed, embed = f.fixed_field() sage: kfixed Finite Field in t_fixed of size 5^2 sage: embed Ring morphism: From: Finite Field in t_fixed of size 5^2 To: Finite Field in t of size 5^6 Defn: t_fixed |--> 4*t^5 + 2*t^4 + 4*t^2 + t sage: tfixed = kfixed.gen() sage: embed(tfixed) 4*t^5 + 2*t^4 + 4*t^2 + t
- a tuple \((K, e)\), where \(K\) is the subfield of the domain
consisting of elements fixed by
-
-
class
sage.rings.finite_rings.hom_finite_field_givaro.
SectionFiniteFieldHomomorphism_givaro
¶ Bases:
sage.rings.finite_rings.hom_finite_field.SectionFiniteFieldHomomorphism_generic
TESTS:
sage: from sage.rings.finite_rings.hom_finite_field_givaro import FiniteFieldHomomorphism_givaro sage: k.<t> = GF(3^2) sage: K.<T> = GF(3^4) sage: f = FiniteFieldHomomorphism_givaro(Hom(k, K)) sage: g = f.section(); g Section of Ring morphism: From: Finite Field in t of size 3^2 To: Finite Field in T of size 3^4 Defn: t |--> 2*T^3 + 2*T^2 + 1