Mark Dickinson
8cd0a66a0f
dtoa.c fix from upstream that fixes incorrectly rounded results for certain subnormals that are also halfway cases.
2010-01-23 21:25:53 +00:00
Mark Dickinson
fc5290458d
Issue #7743 : Add checks for zero inputs to the lshift and mult functions;
...
this fixes the first bug described in issue #7743 .
2010-01-23 20:48:56 +00:00
Mark Dickinson
adcda3400f
Issue #7743 : Fix a potential incorrect rounding bug in dtoa.c (2nd bug
...
in issue 7743).
2010-01-22 17:04:07 +00:00
Mark Dickinson
ca6ea56718
Additional explanatory comments for _Py_dg_strtod.
2010-01-20 21:23:25 +00:00
Mark Dickinson
1942806013
Don't try to put a value into a NULL pointer.
2010-01-20 18:02:41 +00:00
Mark Dickinson
4141d65fb7
Various dtoa.c cleanups. 1. Despagghetify _Py_dg_strtod parsing code
...
and exit points. 2. Simplify bigcomp comparison loop. 3. Don't set
ERANGE on _Py_dg_strtod underflow (it was set inconsistently anyway).
4. Remove unused dsign field from BCinfo struct.
2010-01-20 17:36:31 +00:00
Mark Dickinson
9481c576cd
Issue #7632 : When Py_USING_MEMORY_DEBUGGER is defined, disable the
...
private memory allocation scheme in dtoa.c, along with a piece of code
that caches powers of 5 for future use. This makes it easier to
detect dtoa.c memory leaks with Valgrind or similar tools.
Patch by Stefan Krah.
2010-01-17 20:57:56 +00:00
Mark Dickinson
23df3d270d
Issue #7632 : Fix a memory leak in _Py_dg_strtod.
2010-01-17 13:37:57 +00:00
Mark Dickinson
18a818bc63
Fix multiple uses of variable 'L' in _Py_dg_strtod, where one use requires an unsigned long and the other a signed long. See also r77421.
2010-01-16 18:06:17 +00:00
Mark Dickinson
811ff822f8
Issue #7632 : Fix one more case of incorrect rounding for str -> float
...
conversion (see bug 5 in the issue tracker).
2010-01-16 17:57:49 +00:00
Mark Dickinson
476279f18b
Issue #7632 : Fix a serious wrong output bug for string -> float conversion.
...
Also remove some now unused variables, and add comments clarifying the
possible outputs of the parsing section of _Py_dg_strtod. Thanks
Eric Smith for reviewing.
2010-01-16 10:44:00 +00:00
Mark Dickinson
f8747c1f12
Issue 7632: fix incorrect rounding for long input strings with values very close to a power of 2. (See Bug 4 in the tracker discussion.)
2010-01-14 14:40:20 +00:00
Mark Dickinson
50b60c612e
Issue 7632: fix a dtoa.c bug (bug 6) causing incorrect rounding. Tests to follow.
2010-01-14 13:14:49 +00:00
Mark Dickinson
03774fac62
Fix off-by-one error introduced in r77483. I have a test for this, but it currently fails due to a different dtoa.c bug; I'll add the test once that bug is fixed.
2010-01-14 13:02:36 +00:00
Mark Dickinson
d2a9940acb
More dtoa.c cleanup; remove the need for bc.dplen, bc.dp0 and bc.dp1.
2010-01-13 22:20:10 +00:00
Mark Dickinson
02139d74ba
Fix buggy comparison: LHS of comparison was being treated as unsigned.
2010-01-13 22:15:53 +00:00
Mark Dickinson
6e0d3d67fb
Simplify and annotate the bigcomp function, removing unused special cases.
2010-01-13 20:55:03 +00:00
Mark Dickinson
5818e01253
Clarify that sulp expects a nonnegative input, but that +0.0 is fine.
2010-01-13 19:02:37 +00:00
Mark Dickinson
b26d56ac18
Add comments explaining the role of the bigcomp function in dtoa.c.
2010-01-13 18:21:53 +00:00
Mark Dickinson
5ff4f279e6
Issue #7632 : Fix a bug in dtoa.c that could lead to incorrectly-rounded results.
2010-01-12 22:55:51 +00:00
Mark Dickinson
8efef5ce9f
Issue #7632 : Fix a problem with _Py_dg_strtod that could lead to
...
crashes in debug builds, for certain long numeric strings
corresponding to subnormal values.
2010-01-12 22:23:56 +00:00
Mark Dickinson
0ca7452794
Change a variable type to avoid signed overflow; replace repeated '19999' constant by a define.
2010-01-11 17:15:13 +00:00
Mark Dickinson
5a0b399aa9
Remove unused BCinfo fields and an unused macro.
2010-01-10 13:06:31 +00:00
Mark Dickinson
2bcd177270
Fix typo in comment.
2010-01-04 21:32:02 +00:00
Mark Dickinson
52462c3185
Remove temporary define from r75653
2009-10-24 13:31:41 +00:00
Mark Dickinson
fd42f30991
Temporary define to avoid build failure
2009-10-24 12:17:24 +00:00
Mark Dickinson
bb28285ea2
Issue #7117 : Prepare for backport of py3k float repr.
...
Add the Python/dtoa.c file containing the main algorithms;
add corresponding include file and include in Python.h;
include license information for Python/dtoa.c;
add dtoa.c and dtoa.h to Makefile.
2009-10-24 12:13:30 +00:00