#8327: Implement the universal cyclotomic field, using Zumbroich basis
-----------------------------------------------------+----------------------
Reporter: nthiery | Owner:
Type: enhancement | Status:
needs_review
Priority: major | Milestone: sage-5.6
Component: number fields | Resolution:
Keywords: Cyclotomic field, Zumbroich basis | Work issues:
Report Upstream: N/A | Reviewers:
Authors: Christian Stump, Simon King | Merged in:
Dependencies: #13765 | Stopgaps:
-----------------------------------------------------+----------------------
Comment (by stumpc5):
Thanks for your comments!
Replying to [comment:150 nbruin]:
> (but really, unless you can argue the argument set here is going to be
very limited, I don't think you can afford to build this cache)
I removed this cache (and also some of the others)
Replying to [comment:151 robertwb]:
> Lots of good code here!
some positive words are always appreciated, thanks!
> * Why is get_parent_of_embedding in the pyx file when it's only used in
the py file?
done
> * No need to lazily import universal_cyclotomic_field_c, it's already
behind another lazy import.
done
> * CyclotomicField._coerce_map_from_ # TODO: use the embedding of other
properly: you could use the method introduced in #13765, but if you don't
want to do that then at least check it has the "standard" embedding
sending the generator to the primitive root of unity CC or return None
rather than silently producing wrong answers.
What I now do is to take embeddings of CyclotomicFields into account, but
do not coerce if the UCF doesn't have the standard embedding. Please
recheck that it does what it properly...
> * Shouldn't _coerce_map_from_ accept QQ?
This is captured in {{{_from_base_ring}}}.
> * Does "endowed with the Zumbroich basis" need to be part of the printed
name?
removed.
> Also, what about a nice _latex_ representation?
still open.
> * Using {{{<>}}} for != is deprecated, and I think goes away in python
3.
done.
> * Any reason not to inherit from Field?
I now do inherit from Field and from FieldElement. This way, I got rid of
several almost empty methods. If Nicolas prefers to have it again the
other way round, we can as well undo that.
> * The {{{if bracket == ...}}} list might be better done with a
dictionary mapping left to right, with a good exception on KeyError. Even
better, IMHO, is to accept any even-character string (so one would pass ""
or "[]" or "<<>>" or whatever one wanted).
done.
> * {{{_gap_init = _repr_}}} Not now that we've allowed different
printing options.
done.
> * {{{__hash__}}} will fail on a 32-bit machine. Instead, test making a
dict with UCF items then retrieving one.
still open.
> * is ZumbroichBasisIndices really a Parent?
I am not the specialist here, so feel free to modify this. Now, ZBI is a
parent, and the tuples {{{(n,k)}}} are indeed elements thereof.
> * I agree with nbruin, there's a lot of caching going on that never gets
freed. I would suggest having capped size caches, if you determine that
you really need them. (Also, for CyclotomicFieldCached, better to fix this
to make CyclotomicField faster, possibly using a weakref cache or one of
the unique parent factories.)
done.
Best, Christian
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/8327#comment:156>
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.