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

Reply via email to