#13214: Finite field homomorphisms and Frobenius endomorphisms
-------------------------------------+-------------------------------------
       Reporter:  caruso             |        Owner:  AlexGhitza
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-5.11
      Component:  finite rings       |   Resolution:
       Keywords:  frobenius finite   |    Merged in:
  fields sd51                        |    Reviewers:  Paul Zimmermann,
        Authors:  Xavier Caruso,     |  Peter Bruin
  Peter Bruin                        |  Work issues:
Report Upstream:  N/A                |       Commit:
         Branch:                     |     Stopgaps:
   Dependencies:  #8335              |
-------------------------------------+-------------------------------------
Changes (by {'newvalue': u'Xavier Caruso, Peter Bruin', 'oldvalue': u'Xavier 
Caruso'}):

 * author:  Xavier Caruso => Xavier Caruso, Peter Bruin
 * cc: JCooley, dfesti (added)
 * component:  basic arithmetic => finite rings
 * dependencies:  #13184 => #8335
 * reviewer:  Paul Zimmermann => Paul Zimmermann, Peter Bruin


Old description:

> Here is a patch implementing:
>
>  1. Frobenius endomorphisms over finite fields (generic implementation,
> plus special implementations for prime finite fields and givaro finite
> fields)
>  1. embeddings between finite fields (with again a special implementation
> for givaro finite fields)
>  1. hashing and rich comparisons for general morphisms
>
> ----
> Apply: [attachment:trac_13214_hom_finite_field.patch]

New description:

 Here is a patch implementing:

  1. Frobenius endomorphisms over finite fields (generic implementation,
 plus special implementations for prime finite fields and givaro finite
 fields)
  1. embeddings between finite fields (with again a special implementation
 for givaro finite fields)
  1. hashing and rich comparisons for general morphisms

 ----
 Apply: [attachment:trac_13214_hom_finite_field.patch],
 [attachment:trac_13214-reviewer.patch]

--

Comment:

 In principle I am giving this a positive review, but since the reviewer
 patch I just uploaded contains some non-trivial changes, I think it is
 best if someone else reviews those changes first.

 Summary of changes in [attachment:trac_13214-reviewer.patch]:
 - Do not add `inverse()` method to `Section`; it is currently not used and
 does not seem to be the best name, since its return value (the original
 map) is only a one-sided inverse.
 - Add method `gens()` to `CombinatorialFreeModule` to fix a doctest
 failure in `modules_with_basis.py`.  I guess this is the same failure
 discussed in comment:14 above.
 - Rename `[Section]FiniteFieldEmbedding_*` to
 `[Section]FiniteFieldHomomorphism_*`; even though finite field
 homomorphisms are automatically injective, I think "homomorphism" fits
 better with existing code.  Furthermore, to me "embedding" makes it sound
 too much like finite field homomorphisms are canonical.
 - Derive `FiniteFieldHomomorphism_generic` from `RingHomomorphism_im_gens`
 as suggested above.
 - Replace the existing `FiniteFieldHomomorphism_im_gens` by the new
 `FiniteFieldHomomorphism_generic`.
 - Better integration of the new code into the existing finite field code.
 - Remove the `_repr_()` method of `FiniteFieldHomomorphism_generic`, so
 that the output is the same as for the old
 `FiniteFieldHomomorphism_im_gens`.
 - Do not automatically generate a section for every finite field
 homomorphism.
 - Numerous whitespace edits and some other typographical changes.

--
Ticket URL: <http://trac.sagemath.org/ticket/13214#comment:34>
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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to