This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author tim.peters
Recipients eric.smith, jdemeyer, mark.dickinson, rhettinger, sir-sigurd, tim.peters
Date 2018-10-04.16:02:22
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
> Note that I'm always considering parametrized
> versions of the hash functions that I'm testing.
> I'm replacing the fixed multiplier (all algorithms
> mentioned here have such a thing) by a random
> multiplier which is 3 mod 8.

I've explained before in some detail that this makes NO SENSE for SeaHash:  its multiplier was specially constructed to guarantee certain dispersion properties, to maximize the effectiveness of its "propagate right" step.

You already have my explanation about that, and a link to the original Reddit thread in which it was proposed (and eagerly accepted by SeaHash's primary author).  Also already explained that its multiplier appears to fail its design criteria at two specific bit positions.  Which I can repair, but I would do so not by changing Python's version, but by bringing it to SeaHash's author's attention.

OTOH, I haven't been able to find anything explaining why the xxHash authors picked what they picked.  But they certainly didn't have "random" in mind - nobody does.  You discovered for yourself by trying things that various properties make for bad multipliers, and people who work on these things "for real" knew that a long time ago.  They almost certainly know a great deal more that we haven't thought of at all.
Date User Action Args
2018-10-04 16:02:22tim.peterssetrecipients: + tim.peters, rhettinger, mark.dickinson, eric.smith, jdemeyer, sir-sigurd
2018-10-04 16:02:22tim.peterssetmessageid: <>
2018-10-04 16:02:22tim.peterslinkissue34751 messages
2018-10-04 16:02:22tim.peterscreate