terminal
terminal copied to clipboard
Use wyhash for <til/hash.h>
wyhash was chosen based on the results found in smhasher, were it proved
itself as an algorithm with little flaws and fairly high output quality.
While I have a personal preference for xxhash (XXH3 specifically), wyhash is a
better fit for this project as its source code is multiple magnitudes smaller,
simplifying the review and integration into the header-only hash.h file.
For use with hashmaps the hash quality doesn't actually matter much for optimal performance and instead the binary size usually matters more. But even in that scenario wyhash is fairly close to FNV1a (aka "FNV64").
The result is that this new hash algorithm will only have little impact on hashmap performance if used over the standard FNV1a as used in the STL, while simultaneously offering a vastly better hash quality.
This partially solves #13124.
Validation Steps Performed
- Added test cases ✅
Hello @lhecker!
Because this pull request has the AutoMerge label, I will be glad to assist with helping to merge this pull request once all check-in policies pass.