Givaro finite field morphisms

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[source]

Bases: FiniteFieldHomomorphism_generic

class sage.rings.finite_rings.hom_finite_field_givaro.FrobeniusEndomorphism_givaro[source]

Bases: FrobeniusEndomorphism_finite_field

fixed_field()[source]

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 # random
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) # random
4*t^5 + 2*t^4 + 4*t^2 + t
>>> from sage.all import *
>>> k = GF(Integer(5)**Integer(6), names=('t',)); (t,) = k._first_ngens(1)
>>> f = k.frobenius_endomorphism(Integer(2))
>>> kfixed, embed = f.fixed_field()
>>> kfixed
Finite Field in t_fixed of size 5^2
>>> embed # random
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

>>> tfixed = kfixed.gen()
>>> embed(tfixed) # random
4*t^5 + 2*t^4 + 4*t^2 + t
k.<t> = GF(5^6)
f = k.frobenius_endomorphism(2)
kfixed, embed = f.fixed_field()
kfixed
embed # random
tfixed = kfixed.gen()
embed(tfixed) # random
class sage.rings.finite_rings.hom_finite_field_givaro.SectionFiniteFieldHomomorphism_givaro[source]

Bases: SectionFiniteFieldHomomorphism_generic