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

Reply via email to