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