Improve set of candidate multipliers for perfect hash function generation
authorMichael Paquier <michael@paquier.xyz>
Thu, 8 Oct 2020 04:16:43 +0000 (13:16 +0900)
committerMichael Paquier <michael@paquier.xyz>
Thu, 8 Oct 2020 04:16:43 +0000 (13:16 +0900)
commit2a7316458164369436e252e5e60a5957b17103c3
treefa8d6146827c6e1777a0a44861080780e3c7e162
parent98681675002d852d926a49d7bc4d4b4856b2fc4a
Improve set of candidate multipliers for perfect hash function generation

The previous set of multipliers was not adapted for large sets of short
keys, and this new set of multipliers allows to generate perfect hash
functions for larger sets without having an impact for existing callers
of those functions, as experimentation has showed.  A future commit will
make use of that to improve the performance of unicode normalization.

All multipliers compile to shift-and-add instructions on most platforms.
This has been tested as far back as gcc 4.1 and clang 3.8.

Author: John Naylor
Reviewed-by: Mark Dilger, Michael Paquier
Discussion: https://postgr.es/m/CACPNZCt4fbJ0_bGrN5QPt34N4whv=mszM0LMVQdoa2rC9UMRXA@mail.gmail.com
src/tools/PerfectHash.pm