David Roe wrote :
I posted a patch there that should fix it; I have to work on other stuff, but if someone else wants to take over and write some doctests, make sure it works in lots of cases...
David

On Mon, Oct 25, 2010 at 17:14, Burcin Erocal <bur...@erocal.org <mailto:bur...@erocal.org>> wrote:

    On Mon, 25 Oct 2010 17:00:39 -0400
    David Roe <r...@math.harvard.edu <mailto:r...@math.harvard.edu>>
    wrote:

    > This is a good workaround, but the original problem can be traced to
    > the function sage.symbolic.expression.Expression.__int__
    >
    > def __int__(self):
    >     #FIXME: can we do better?
    >     return int(self.n(prec=100))
    >
    > Presumably you could adaptively estimate to higher precision until
    > your error interval included only one integer...

    This is #9953 on trac:

    http://trac.sagemath.org/sage_trac/ticket/9953

I prefer

return(self.n(prec=ceil(log(abs(self.n()),10)+10)))

But this answer isn't right around XXXXXXXXXXXX.999999999999 or XXXXXXXXXXX.000000001.

And I don't see where floor(10^1234*sqrt(2)) is wrong. I test :

vt=floor(10^1234*sqrt(2)) ; sign(vt^2-2*10^2468) ; sgn((vt+1)^2-2*10^2468)
# answer =-1 and 1 for sage 4.5.3

With int the result is false (I get 1 and 1 in the both cases).
I ignore how to trace these 2 calculus.

F.

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