Unfortunately bug 450392 and bug 384244 imply our copy is heavily modified so we can't just update from upstream, which has in fact been fixing things for years: http://www.netlib.org/fp/changes The relevant code upstream (http://www.netlib.org/fp/dtoa.c) reads: dval(&u) += dval(&u); #ifdef ROUND_BIASED if (dval(&u) >= ds) #else if (dval(&u) > ds || (dval(&u) == ds && L & 1)) #endif Which suggests that the patch here could lose the second half of the condition, but perhaps also that there's a bunch more ROUND_BIASED fixes that would need to be applied.
Bug 944846 Comment 8 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
Unfortunately bug 450392 and bug 384244 imply our copy is heavily modified so we can't just update from upstream, which has in fact been fixing things for years: http://www.netlib.org/fp/changes The relevant code upstream (http://www.netlib.org/fp/dtoa.c) reads: ``` dval(&u) += dval(&u); #ifdef ROUND_BIASED if (dval(&u) >= ds) #else if (dval(&u) > ds || (dval(&u) == ds && L & 1)) #endif ``` Which suggests that the patch here could lose the second half of the condition, but perhaps also that there's a bunch more ROUND_BIASED fixes that would need to be applied.