#13215: Skew polynomials
-------------------------------------+-------------------------------------
Reporter: caruso | Owner: tbd
Type: enhancement | Status: needs_work
Priority: major | Milestone: sage-7.3
Component: algebra | Resolution:
Keywords: skew polynomials | Merged in:
Authors: Xavier Caruso | Reviewers: Burcin Erocal
Report Upstream: N/A | Work issues:
Branch: | Commit:
u/arpitdm/skew_polynomials | e189fec13d005a7fba39a429876c501fe95c05da
Dependencies: #13214, #13303, | Stopgaps:
#13640, #13641, #13642 |
-------------------------------------+-------------------------------------
Comment (by jsrn):
Hi Travis,
You seem to understand these things quite well, and we had quite some
problems
with getting this code to work, so could you please elaborate on the
following
things:
Replying to [comment:75 tscrim]:
> - You seem to be using the exact same format of polynomials, which
contains a lot of old code. For example, don't implement a `_repr_()` that
just calls (a ''Python'' function) `_repr()`. This is useless (even in the
usual polynomial ring code it seems); instead just implement `_repr_()`.
Similarly, there are a number of methods you could simply `cpdef`.
That would be great. Can you give us the full list of the methods for
which we can do this, or point us to how we can figure it out?
> - You can use
> {{{
> self._no_generic_basering_coercion = True
> }}}
> to avoid constructing the coercion from the base ring when
initializing the skew polynomial ring.
To be precise, do you mean that can insert the above line in
`SkewPolynomialRing_general.__init__` just before the call to
`Algebra.__init__`, and then remove the call to
`self._unset_coercions_used()`? Or is there more to it?
> - `_cmp_` is planned to be removed. Use `_richcmp_` instead.
Are you talking about `SkewPolynomial._cmp_`? We spent many hours
debugging the comparison code because it threw strange errors and
segfaults. To avoid me spending many more hours, could I ask you to tell
us exactly how to write the correct comparison code then?
Simon King's tutorial on implementing algebraic structures should be
updated to be more informative on this, I think.
> - You should lazy import the ring constructor.
Do you mean `sage.rings.ring` in `skew_polynomial_ring.py`? Why is exactly
that one important to lazily import?
Thanks for the help!
Best,
Johan
--
Ticket URL: <https://trac.sagemath.org/ticket/13215#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 https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.