Hacker News new | ask | show | jobs
by hairtuq 1813 days ago
You don't necessarily need a wider type (which might be slower to work with), you can just calculate (n|1) * ((n+1)/2). Clang does something much more complicated, probably because for it is just a special case of some much more general optimization.
1 comments

That's a neat trick! -- I was trying to figure out how to handle the fact I didn't know which of n and n+1 was even.