#13675: multivariate polynomials lack the inverse_mod(...) method
-------------------------------------------+--------------------------------
       Reporter:  Bouillaguet              |         Owner:  malb        
           Type:  enhancement              |        Status:  needs_work  
       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 mstreng):

  * status:  needs_review => needs_work


Comment:

 The word OUTPUT is indented too much. You can also see what the
 documentation looks like with {{{./sage -docbuild reference html}}} and
 looking at {{{SAGEROOT/devel/sage-
 
main/doc/output/html/en/reference/sage/rings/polynomial/multi_polynomial.html}}}.
 Fix this, and this patch can get a positive review.

 Note though that the check with "in" is very inefficient (so I'm sorry for
 suggesting it):
 {{{
 sage: R.<x1,x2> = QQ[]
 sage: I = R.ideal(x2**2 + x1 - 2, x1**2 - 1)
 sage: f = x1 + 3*x2^2
 sage: self = f
 sage: P=R
 sage: B = I.groebner_basis()
 sage: timeit('(P.one() in P.ideal([self]+B))')
 625 loops, best of 3: 1.23 ms per loop
 sage: timeit('P.one().lift((self,)+tuple(B))')
 625 loops, best of 3: 161 µs per loop
 }}}
 I haven't tried bigger examples, so I don't know what happens with them.
 Do you? Even if it were efficient, then it looks like, after computing the
 Groebner basis B, I assume some (Groebner basis?) precomputation involving
 [self]+B is done computed twice. For both these reasons, it would seem
 faster to do skip the check with "in", and put the line with "lift" inside
 a "try". But that would require #13671 to be fixed first. Alternatively:
 in which package is "lift" implemented? Doesn't that package have an
 "inverse_mod" method ready to wrap?

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