Message326217
> stuff like "t += t >> 16" is a many-to-one function, not a permutation
Yes, I am aware of that. However, the number of collisions here is really quite small. It's very unlikely to hit one by accident.
I also chose >> over << for two reasons:
1. It brings the high-order in play: https://bugs.python.org/msg326117
2. It avoids collisions on the low-order bits: when you do t ^= t << 7, then you are not changing the lower 7 bits at all. So applications using hash(x) % 128 will still see all the problems that we are trying to fix. |
|
Date |
User |
Action |
Args |
2018-09-24 10:01:11 | jdemeyer | set | recipients:
+ jdemeyer, tim.peters, rhettinger, mark.dickinson, eric.smith, sir-sigurd |
2018-09-24 10:01:11 | jdemeyer | set | messageid: <1537783271.67.0.956365154283.issue34751@psf.upfronthosting.co.za> |
2018-09-24 10:01:11 | jdemeyer | link | issue34751 messages |
2018-09-24 10:01:11 | jdemeyer | create | |
|