#10268: adding GiNaC method to simplify_rational
----------------------------+-----------------------------------------------
Reporter: bgoodri | Owner: burcin
Type: enhancement | Status: needs_work
Priority: minor | Milestone: sage-4.6.2
Component: symbolics | Keywords:
Author: Ben Goodrich | Upstream: N/A
Reviewer: | Merged:
Work_issues: |
----------------------------+-----------------------------------------------
Changes (by newvalueoldvalue):
* status: new => needs_work
* author: => Ben Goodrich
Comment:
I'm really happy to see some effort to use pynac/ginac to replace
functionality we normally use maxima for. Unfortunately this is a really
busy period for me so I can't help much. Thanks a lot for your effort Ben.
Replying to [comment:4 bgoodri]:
> Why would it fall into the gcd function from
/media/disk30/sage-4.6/local/lib/python2.6/site-
packages/sage/rings/arith.pyc? The patch does not call it directly, and it
is a waste because normal in GiNaC already cancels the greatest common
factor from the numerator and the denominator. And then a related question
is why does gcd seem to hang?
The `numeric::gcd()` method calls `sage.symbolic.pynac.py_gcd()`. See
here:
http://pynac.sagemath.org/hg/file/b233d9dadcfa/ginac/numeric.cpp#l2526
It could be that our gcd() function doesn't work exactly like CLN's
`gcd()` function which is used originally by ginac. This would effect the
termination criteria used in the multivariate gcd code in ginac/pynac.
I haven't looked into the functionality in `normal.cpp` much, but one of
William's goals was to make it call Singular (or the Factory library) to
factor multivariate polynomials instead of the code in ginac. This library
generally performs much better and it is actively being developed.
----
BTW, kcrisman was right about his comment on the use of `sig_on/sig_off`.
These functions are used to override the signal handlers so we can catch
`CTRL-C` in long running library code. You don't need them around the
declaration of `GEX`, but you should use them in the call to `normal()`.
AFAIR, Jeroen Demeyer recently wrote a section on this in the developers
guide, but I don't have a link handy right now. The new call signature for
these might be `sig_on()`, like a function call.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10268#comment:5>
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.