#13675: multivariate polynomials lack the inverse_mod(...) method
-------------------------------------------+--------------------------------
       Reporter:  Bouillaguet              |         Owner:  malb        
           Type:  enhancement              |        Status:  needs_review
       Priority:  minor                    |     Milestone:  sage-5.5    
      Component:  commutative algebra      |    Resolution:              
       Keywords:  inverse modulo an ideal  |   Work issues:              
Report Upstream:  N/A                      |     Reviewers:  Marco Streng
        Authors:  Charles Bouillaguet      |     Merged in:              
   Dependencies:                           |      Stopgaps:              
-------------------------------------------+--------------------------------
Changes (by Bouillaguet):

  * status:  needs_work => needs_review


Comment:

 > Here's the logic, as far as I understand:
 >
 > * multi_polynomial.pyx contains the base class MPolynomial
 > * multi_polynomial_element.py contains polynomials over arbitrary rings,
 in the form of the class MPolynomial_polydict

 Well, the logic behind this would be more obvious if
 multi_polynomial_element.py was in fact named
 multi_polynomial_polydict.py... But who am I to complain :) ?

 > The lift function, which you use, currently only exists in
 MPolynomial_libsingular and MPolynomial_polydict.

 Well, the latter actually uses the former...

 > The two classes MPolynomial_libsingular and MPolynomial_polydict inherit
 from the first (MPolynomial) and there is no more specific class from
 which they both inherit.
 >
 > So if you put inverse_mod in multi_polynomial.pyx directly, without
 providing a "lift" method there as well, you run the risk of getting
 >
 > {{{
 > AttributeError: '...' object has no attribute 'lift'
 > }}}
 >
 > which isn't very helpful, as the word "lift" can mean dozens of things
 in mathematics.
 >
 > So I think that leaves you with two options: either
 >
 > * implement inverse_mod in both of MPolynomial_libsingular and
 MPolynomial_polydict (or only one of them if you don't care about the
 other and don't mind doing half a job)
 > * implement inverse_mod in MPolynomial, and give Mpolynomial a "lift"
 method with the same documentation as the "lift" method in the other two
 classes, but always raising {{{NotImplementedError}}}
 >
 > The second option looks best to me, and you're already halfway with
 that.

 Done

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/13675#comment:10>
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.

Reply via email to