Givaro finite field morphisms - Finite Rings

Skip to content
Back to top
View this page
Edit this page

# 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

  Bases: `FiniteFieldHomomorphism_generic`

class sage.rings.finite_rings.hom_finite_field_givaro.FrobeniusEndomorphism_givaro

  Bases: `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

        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

    Python

        >>> 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

class sage.rings.finite_rings.hom_finite_field_givaro.SectionFiniteFieldHomomorphism_givaro

  Bases: `SectionFiniteFieldHomomorphism_generic`