lua-users home
lua-l archive

Re: [ANN] Lua 5.3.0 (work2) now available

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On Mar 26, 2014, at 3:28 PM, Roberto Ierusalimschy <roberto@inf.puc-rio.br> wrote:
>> I’m a bit ashamed to say that i do lol. Signum for example:
>> 
>> static inline int sgn2(int x) { return (x != 0) * (1 | (x >> ((sizeof(x) * 8) - 1))); }
> 
> "Hacker's Delight" suggests this:
> 
> -(x >> K) | (-x >> K), where K = sizeof(x) * 8 - 1.
> 
> No conditionals, no multiplications, two logical shifts and three one-clock
> instructions (2 subs and 1 or).
> 
> -- Roberto
> 
Nice. Wonder why I’ve not stumbled across that one before?
—Tim

AltStyle によって変換されたページ (->オリジナル) /