From: Roland Dreier <redacted>
Date: Fri, 8 Jul 2011 16:11:00 -0700
Maybe * of hash key with a random odd value is good enough?
Yes, from what I've read over the past few days it should
be. More precisely:
(key * hash_rnd) >> (32 - hash_table_size_log2)
where "hash_rnd" is odd.
The reason we want the top bits is because multiplies intrinsically
work such that bits in the inputs can only effect the same or higher
bits in the result.