On Oct 15, 2:02 pm, Burcin Erocal <bur...@erocal.org> wrote: > Hi Karl-Dieter, > > On Fri, 15 Oct 2010 10:09:50 -0700 (PDT) > > > > > > kcrisman <kcris...@gmail.com> wrote: > > ---------------------------------------------------------------------- > > | Sage Version 4.6.alpha3, Release Date: 2010-10-08 | > > | Type notebook() for the GUI, and license() for information. | > > ---------------------------------------------------------------------- > > ********************************************************************** > > * * > > * Warning: this is a prerelease version, and it may be unstable. * > > * * > > ********************************************************************** > > sage: type(log(1)) > > <type 'int'> > > sage: log(1).n() > > --------------------------------------------------------------------------- > > AttributeError: 'int' object has no attribute 'n' > > sage: Integer(log(1)).n() > > 0.000000000000000 > > sage: a = Integer(1) > > sage: a.log() > > 0 > > sage: type(a.log()) > > <type 'int'> > > sage: from sage.functions.log import function_log > > sage: function_log(Integer(1)) > > 0 > > sage: type(function_log(Integer(1))) > > <type 'int'> > > > Is there any way to get around this in the code, or are we pretty much > > stuck with this because of how GinacFunctions work? I'm not 100% sure > > this is a bug in log; maybe instead we should extend int so that > > This is a bug in the log() function, and any other function which > returns exact values like 0 or 1. We already work around most cases, > see lines 720-722 and 736-761 of sage/symbolic/function.pyx. > > The correct fix is to change the corresponding pynac functions to > coerce the exact value to the parent of the argument before returning > it. For example, all the lines "return _ex1;" or "return _ex0;" in > > http://pynac.sagemath.org/hg/file/b233d9dadcfa/ginac/inifcns_trans.cpp > > has to be changed this way. >
Yup, I see what you are talking about - e.g. if (x.is_equal(_ex1)) // log(1) -> 0 return _ex0; Although it might be nice to stay relatively close to Ginac and fix such things on the Sage level if that's not really bad. Anyway, thanks for the feedback; this is all now http://trac.sagemath.org/sage_trac/ticket/10133 - kcrisman -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org