Tim Peters <t...@python.org> added the comment:

> 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.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue34751>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to