News for hackers. Stuff that matters.
Re:Why does x and -x equal to the largest power of 2 that di... by rokicki on Sunday May 26, 2024 @02:24PM (#40484248)
To take this to the next level: what does [(a^b) & (-(a^b)) & a] compute? (Assume unsigned arithmetic.)

And then after that: what use can this be put to?

Re:Why does x and -x equal to the largest power of 2 that di... by wruza on Sunday May 26, 2024 @03:12PM (#40484588)
Iow, we flip some bits in `a`, then do subj, then mask it back to `a`. It’s unclear what it computes in general, but if `b` disturbs the 2-powerness of `a` then I guess we learn that fact by seeing zero. Not sure where to use it.
Re:Why does x and -x equal to the largest power of 2 that di... by rokicki on Sunday May 26, 2024 @07:35PM (#40486311)
There's a nice elegant description of what it does, mathematically, and a significant use in Computer Science.
Re:Why does x and -x equal to the largest power of 2 that di... by rokicki on Tuesday May 28, 2024 @12:29AM (#40497322)
This expression is nonzero iff reverse(a) > reverse(b) (where reverse is the bitreversal of an unsigned number).

It (using the address of the nodes as arguments) can serve as a tiebreaker in a Cartesian tree (such as one implementing a first-fit memory allocator) or even to replace the random priority value in a treap (meaning you need neither storage nor computation for the priority node of the treap).