|
|
- #include <stdlib.h>
-
- /* 2^31 + 2^29 - 2^25 + 2^22 - 2^19 - 2^16 + 1 */
- #define GOLDEN_RATIO_PRIME_32 0x9e370001UL
-
- /* *
- * hash32 - generate a hash value in the range [0, 2^@bits - 1]
- * @val: the input value
- * @bits: the number of bits in a return value
- *
- * High bits are more random, so we use them.
- * */
- uint32_t
- hash32(uint32_t val, unsigned int bits) {
- uint32_t hash = val * GOLDEN_RATIO_PRIME_32;
- return (hash >> (32 - bits));
- }
-
|