From: Mark Dickinson Date: Wed, 13 Jan 2010 19:02:37 +0000 (+0000) Subject: Clarify that sulp expects a nonnegative input, but that +0.0 is fine. X-Git-Tag: v2.7a3~164 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5818e0125395b88b5e3c69dacdb50d5562628cd2;p=thirdparty%2FPython%2Fcpython.git Clarify that sulp expects a nonnegative input, but that +0.0 is fine. --- diff --git a/Python/dtoa.c b/Python/dtoa.c index 504ad1f8cfff..e953f09c01e7 100644 --- a/Python/dtoa.c +++ b/Python/dtoa.c @@ -1130,11 +1130,11 @@ quorem(Bigint *b, Bigint *S) return q; } -/* version of ulp(x) that takes bc.scale into account. +/* sulp(x) is a version of ulp(x) that takes bc.scale into account. - Assuming that x is finite and nonzero, and x / 2^bc.scale is exactly - representable as a double, sulp(x) is equivalent to 2^bc.scale * ulp(x / - 2^bc.scale). */ + Assuming that x is finite and nonnegative (positive zero is fine + here) and x / 2^bc.scale is exactly representable as a double, + sulp(x) is equivalent to 2^bc.scale * ulp(x / 2^bc.scale). */ static double sulp(U *x, BCinfo *bc) @@ -1147,8 +1147,10 @@ sulp(U *x, BCinfo *bc) word1(&u) = 0; return u.d; } - else + else { + assert(word0(x) || word1(x)); /* x != 0.0 */ return ulp(x); + } } /* The bigcomp function handles some hard cases for strtod, for inputs