#13214: Frobenius endomorphism over finite fields
-------------------------------------------+--------------------------------
Reporter: caruso | Owner: AlexGhitza
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-5.3
Component: basic arithmetic | Resolution:
Keywords: frobenius finite fields | Work issues:
Report Upstream: N/A | Reviewers:
Authors: | Merged in:
Dependencies: | Stopgaps:
-------------------------------------------+--------------------------------
Comment (by caruso):
Oh sorry, I forgot *.pxd files. Thanks!
Paul, the answer to your question is probably yes... at least if q is
small enough so that you can work with givaro fields (otherwise, it won't
be so efficient).
Actually, I have not implemented automatic coercions between finite fields
(essentially because embeddings between finite fields are not canonical).
As a consequence it's not so easy to create embeddings. Nevertheless, here
is what you can do:
{{{
sage: K.<x> = GF(5^3)
sage: L.<y> = GF(5^6)
sage: from sage.rings.finite_rings.hom_finite_field_givaro import
FiniteFieldEmbedding_givaro
sage: f = FiniteFieldEmbedding_givaro(K,L); f
Embedding of Finite Field in x of size 5^3 into Finite Field in y of size
5^6
sage: g = f.section(); g
Section of Embedding of Finite Field in x of size 5^3 into Finite Field in
y of size 5^6
sage: g(y^126)
3*x^2 + 1
sage: g(y)
Traceback (most recent call last):
...
ValueError: y is not in the image of Embedding of Finite Field in x of
size 5^3 into Finite Field in y of size 5^6
}}}
If you are sure that you won't never use another embedding of K into L,
you can even define f as a coerce map as follows:
{{{
sage: K._unset_coercions_used()
sage: K._populate_coercion_lists_(embedding=f)
}}}
Then the following will work:
{{{
sage: L(x)
2*y^5 + 3*y^4 + 3*y^2 + y + 2
sage: z = x*y; z
3*y^5 + 3*y^4 + 4*y^2 + 2*y + 1
sage: K(z/y)
x
sage: K(y)
Traceback (most recent call last):
...
ValueError: y is not in the image of Embedding of Finite Field in x of
size 5^3 into Finite Field in y of size 5^6
}}}
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/13214#comment:5>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.