On 9/18/14, 2:12 PM, Kevin Reid wrote:
for all x < 2^k, log2(x) < k
for all x > 2^k, log2(x) > k

I'm not sure this is viable.

Consider, for example k == 960, x = 2^960 + 2^908.

The exact value of log2(x) would be

  960 + log2(1 + 2^-52) = 960 + ln(1+2^-52)/ln(2)
                        < 960 + 1/ln(2) * 2^-52
                        < 960 + 2^-51

where the two inequalities follow from ln(1+x) < x for small x and ln(2) > 0.5.

But 960 + 2^-51, represented as an IEEE double, is 960, because we only have about 43-44 digits of mantissa precision left for the non-integral part of this number...

In fact, the smallest representable double larger than 960 is 960 + 2^-43, as far as I can tell. So to get the property you want, we'd need to have log2(x) equal to that for 2^960 < x < 2^960 + 2^917 at the very least, which is quite a bunch of doubles, for many of which the exact log2 value is definitely closer to 960 than to 960+2^-43.

(This probably conflicts with generally desirable rounding
properties, however.)

If by that you mean the argument above, I clearly agree.  ;)

-Boris

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to