#14990: Implement algebraic closures of finite fields
-------------------------------------+-------------------------------------
       Reporter:  pbruin             |        Owner:
           Type:  enhancement        |       Status:  needs_work
       Priority:  major              |    Milestone:  sage-6.2
      Component:  algebra            |   Resolution:
       Keywords:  finite field       |    Merged in:
  algebraic closure                  |    Reviewers:
        Authors:  Peter Bruin        |  Work issues:
Report Upstream:  N/A                |       Commit:
         Branch:  u/pbruin/14990     |  f9162dbae92551a67aea7a489d96591141fdebc8
   Dependencies:  #14958, #13214     |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by vdelecroix):

 Hi,

 Given that `PseudoConwayLattice` is what it is, I agree to (1) and (2) in
 your comment:75.

 Coercion are cached and I guess it forbids to have a mutable `Parent`
 (unless they coerce with nothing).

 And you are right, we have a big trouble as we can not loads/dumps
 `PseudoConwayLattice` in the way we would like them to be. It seems
 reasonable to me to keep the error on `x == loads(dumps(x))` and document
 it.

 Nevertheless, we can fix it for most use cases by avoiding calling
 loads/dumps on the lattice. More precisely, when the user does not provide
 directly a lattice argument to the algebraic closure, we might cache the
 pseudo conway lattice used. In other words do something along the lines of
 {{{
 @cached_function
 def cached_pseudo_conway_lattice(p, use_database):
     return PseudoConwayLattice(p, use_database)

 def AlgebraicClosureFiniteField(p, implementation='pseudo_conway',
 **kwds):
     if implementation == 'pseudo_conway':
         lattice = kwds.get('lattice')
         use_database = kwds.get('use_database', True)
         if lattice is None:
             lattice = cached_pseudo_conway_lattice(p, use_database)
         ...
 }}}
 And then the pickling must be adapted by calling
 `AlgebraicClosureFiniteField`. I am sure that it can work but I am not
 sure at all it is reasonable.

--
Ticket URL: <http://trac.sagemath.org/ticket/14990#comment:76>
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/d/optout.

Reply via email to