#12968: round of symbolic expression (precision issue due to RR)
-------------------------+--------------------------------------------------
Reporter: dkrenn | Owner: burcin
Type: defect | Status: new
Priority: major | Milestone: sage-5.1
Component: symbolics | Keywords: round symbolic precision RR
beginner
Work issues: | Report Upstream: N/A
Reviewers: | Authors:
Merged in: | Dependencies:
Stopgaps: |
-------------------------+--------------------------------------------------
We have
{{{
sage: u = sqrt(43203735824841025516773866131535024) #add one digit
sage: floor(u)
207855083711803944
sage: round(u) # ?? smaller than floor(u)! No warning message...
207855083711803936
sage: r = round(u)
sage: ceil(u)
207855083711803945
}}}
Numbers with one digit less work
{{{
sage: t=sqrt(4320373582484102551677386613153502)
sage: floor(t)
65729548777426599
sage: round(t) #everything as expected, floor ≤ round ≤ ceil
65729548777426600
sage: ceil(t)
65729548777426600
}}}
The docstring/source code of the symbolic round mentions that behavior
{{{
Definition: u.round(self)
Source:
def round(self):
"""
Round this expression to the nearest integer.
This method evaluates an expression in ``RR`` first and rounds
the result. This may lead to misleading results.
EXAMPLES::
sage: t = sqrt(Integer('1'*1000)).round(); t
3333333333333333056287287783757109595393...
This is off by a huge margin::
sage: (Integer('1'*1000) - t^2).ndigits()
984
"""
#FIXME: can we do better?
}}}
This was reported on [https://groups.google.com/d/topic/sage-
support/s-A22yzFnbY/discussion sage-support] by Lorenzo. I created a
ticket here, since I didn't find one for that behavior (but maybe I missed
it...).
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12968>
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.