So the advantage, to me is that we dont have everything from Float.MAX/16843009 upwards hash to zero (similar for negative ones in the other direction). I admit that its maybe not too bad in practice, but I can imagine that it happens to people.
As for regressions, I think that something using all bits and mod prime should not perform worse. In particular, it should be harder to produce collisions by accident.
The situation for int64 is maybe more clear. Right now the upper 32bits are not used at all in the hash and I suspect that its more likly to actually happen (when using bitmasks or something like that).
On Wed, 30 Mar 2011, Peter Bortas @ Pike developers forum wrote:
Backport to 7.8 you say... I sort of skimmed the float hash discussion, could someone rerun the advantage with it for me real quick?
And please also give me your best estimation for chances of regression. :)