Name aside, integer-length seems very sensible. For JS, I propose that it be extended to the remaining problem cases as follows:
f(-0.0) = f(0.0) = 0 f(-Infinity) = f(Infinity) = Infinity f(NaN) = NaN Why is logcount called "logcount"? As the doc on integer-length makes clear, it has a strong relation to the log-base-2 of the number. logcount does not. What is logcount used for? On Thu, Jan 16, 2014 at 1:41 PM, Kevin Reid <[email protected]> wrote: > On Thu, Jan 16, 2014 at 1:12 PM, Jens Nockert <[email protected]> wrote: > >> On 2014/01/16, at 17:40, Jason Orendorff <[email protected]> >> wrote: >> > Or maybe: flip the function around so that it returns the number of >> > bits in the binary expansion of the value: Math.bitlen(15) === 4. This >> > is just (32 - CLZ), so it effectively computes the same thing as clz. >> > The advantage is that it extends naturally to integers of any size. >> >> What is Math.bitlen(-1) then? Isn’t this just the same problem as before, >> except it happens for negative numbers instead of positive? >> > > FWIW: Common Lisp has rigorously transparent (that is, you cannot observe > the machine word size) bigints and quite a few binary operations defined on > them, so it's where I personally would look for precedent on such > questions. It doesn't have clz or bitlen per se, but it has these two > functions which contain positions on the issue: > > > integer-length > http://www.lispworks.com/documentation/HyperSpec/Body/f_intege.htm > Returns the number of bits needed to represent 'integer' in binary > two's-complement format. > [Comment: This is equivalent to bitlen + 1 in order to count the sign bit, > and is well-defined for negative numbers.] > > logcount > http://www.lispworks.com/documentation/HyperSpec/Body/f_logcou.htm > Computes and returns the number of bits in the two's-complement binary > representation of 'integer' that are `on' or `set'. If 'integer' is > negative, the 0 bits are counted; otherwise, the 1 bits are counted. > > > (If I had guessed without actually reading the docs, though, I would have > had logcount rejecting negative numbers.) > > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss > > -- Cheers, --MarkM
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

