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