http://codereview.chromium.org/1032007/diff/9001/10010 File src/fast-dtoa.cc (right):
http://codereview.chromium.org/1032007/diff/9001/10010#newcode40 src/fast-dtoa.cc:40: // the result of multiplying the input number with the cached powers-of-ten. On 2010/03/18 10:00:11, William Hesse wrote:
the range (2^32, 2^60) or 2^32 ... 2^60
multiplying the input by a cached power of ten.
A different range might be chosen on a different platform, to optimize
digit
generation, but a smaller range requires more powers of ten to be cached.
Done. http://codereview.chromium.org/1032007/diff/9001/10010#newcode50 src/fast-dtoa.cc:50: // representation. On 2010/03/18 10:00:11, William Hesse wrote:
Adjusts the last digit of the generated number, and screens out
generated
solutions that may be inaccurate. A solution may be inaccurate if it
is outside
the safe interval, or if we cannot prove that it is closer to the
input than a
neighboring representable number.
Done. http://codereview.chromium.org/1032007/diff/9001/10010#newcode58 src/fast-dtoa.cc:58: // Output: returns true on success. On 2010/03/18 10:00:11, William Hesse wrote:
returns true if the buffer is guaranteed to contain the closest
representable
number to the input.
Done. http://codereview.chromium.org/1032007/diff/9001/10010#newcode74 src/fast-dtoa.cc:74: // ]w-; w+[ (often written as "(w-; w+)") On 2010/03/18 10:00:11, William Hesse wrote:
I would write (w-, w+) (sometimes written "]w-, w+[") Maybe w_low and w_high would be better names?
Done. http://codereview.chromium.org/1032007/diff/9001/10010#newcode79 src/fast-dtoa.cc:79: // By generating the digits of too_high we got the biggest last digit. On 2010/03/18 10:00:11, William Hesse wrote:
Could you document this by saying "There are three nested intervals,
represented
in our internal floating-point format that is more accurate than
64-bit double
format.
Unsafe interval, between xxxx and xxxx. A number outside this
interval cannot
be the closest representable number to the input.
Safe interval, between xxxxx and xxxxx. A number inside this interval
is
guaranteed to be ? Do we even use this interval?
Input interval, between w_low=xxxx and w_high=xxxx The input number is guaranteed to be between these two values.
These intervals are approximately equal to input +/- 1/2 double ULP
and input
+/- internal representation ULP.
Done. http://codereview.chromium.org/1032007/diff/9001/10010#newcode110 src/fast-dtoa.cc:110: // Since too_low = too_high - unsafe_interval this is equivalent too On 2010/03/18 10:00:11, William Hesse wrote:
equivalent to
What is the safe interval used for?
Done. http://codereview.chromium.org/1032007/diff/9001/10010#newcode229 src/fast-dtoa.cc:229: // Same comments as for DigitGen (see below) but with additional precondition: On 2010/03/18 10:00:11, William Hesse wrote:
DigitGen does (approximately) nothing now, and could easily be
recreated if
someone wanted a general max_exponent and min_exponent for the range.
I think
DigitGen should just be deleted from the file, and its comments put
here. This
could be renamed DigitGen.
Done. http://codereview.chromium.org/1032007/diff/9001/10010#newcode375 src/fast-dtoa.cc:375: bool DigitGen(DiyFp low, On 2010/03/18 10:00:11, William Hesse wrote:
This function does nothing, and doesn't really help anyone except a
hypothetical
library extender, and doesn't even really help them much.
Done. http://codereview.chromium.org/1032007/diff/9001/10010#newcode404 src/fast-dtoa.cc:404: // Returns true if it succeeds, otherwise the result can not be trusted. On 2010/03/18 10:00:11, William Hesse wrote:
cannot
Done. http://codereview.chromium.org/1032007/diff/9001/10010#newcode409 src/fast-dtoa.cc:409: // 0.099999999999 instead of 0.1. On 2010/03/18 10:00:11, William Hesse wrote:
This is inaccurate - if 0.099999999999 is closer than 0.1, then
0.09999999999 is
returned. You mean no 0.10000 instead of 0.1.
Comment was correct. But I clarified. http://codereview.chromium.org/1032007/diff/9001/10010#newcode415 src/fast-dtoa.cc:415: // boundary_minus and boundary_plus are the boundaries between v and its On 2010/03/18 10:00:11, William Hesse wrote:
its closest representable neighbors
its closest floating-point neighbors. http://codereview.chromium.org/1032007/diff/9001/10010#newcode417 src/fast-dtoa.cc:417: // will round to v when read as double. On 2010/03/18 10:00:11, William Hesse wrote:
when converted to double?
Done. http://codereview.chromium.org/1032007/diff/9001/10006 File src/grisu3.cc (left): http://codereview.chromium.org/1032007/diff/9001/10006#oldcode39 src/grisu3.cc:39: template <int alpha = -60, int gamma = -32> On 2010/03/18 10:00:11, William Hesse wrote:
I thought you were getting rid of the template?
inside deleted file. http://codereview.chromium.org/1032007/diff/9001/10004 File src/grisu3.h (left): http://codereview.chromium.org/1032007/diff/9001/10004#oldcode39 src/grisu3.h:39: // v must satisfy v != 0 and it must not be Infinity or NaN. On 2010/03/18 10:00:11, William Hesse wrote:
v must not be (positive or negative) zero, Infinity, or NaN.
Done. http://codereview.chromium.org/1032007 -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
