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