115 lines
3.4 KiB
Plaintext
115 lines
3.4 KiB
Plaintext
|
////
|
||
|
Copyright 2005-2008 Daniel James
|
||
|
Copyright 2022 Christian Mazakas
|
||
|
Copyright 2022 Peter Dimov
|
||
|
Distributed under the Boost Software License, Version 1.0.
|
||
|
https://www.boost.org/LICENSE_1_0.txt
|
||
|
////
|
||
|
|
||
|
[#links]
|
||
|
= Links
|
||
|
:idprefix: links_
|
||
|
|
||
|
*A Proposal to Add Hash Tables to the Standard Library* +
|
||
|
http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2003/n1456.html
|
||
|
|
||
|
The hash table proposal explains much of the design. The hash function object is discussed in Section D.
|
||
|
|
||
|
---
|
||
|
|
||
|
*The {cpp} Standard Library Technical Report* +
|
||
|
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf
|
||
|
|
||
|
Contains the hash function specification in section 6.3.2.
|
||
|
|
||
|
---
|
||
|
|
||
|
*Library Extension Technical Report Issues List* +
|
||
|
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1837.pdf
|
||
|
|
||
|
The library implements the extension described in Issue 6.18, pages 63-67.
|
||
|
|
||
|
---
|
||
|
|
||
|
*Methods for Identifying Versioned and Plagiarised Documents* +
|
||
|
_Timothy C. Hoad, Justin Zobel_ +
|
||
|
https://people.eng.unimelb.edu.au/jzobel/fulltext/jasist03thz.pdf
|
||
|
|
||
|
Contains the hash function that the initial implementation of `boost::hash_combine` was based on.
|
||
|
|
||
|
---
|
||
|
|
||
|
*Performance in Practice of String Hashing Functions* +
|
||
|
_M.V. Ramakrishna, J. Zobel_ +
|
||
|
In Proc. Int. Conf. on Database Systems for Advanced Applications, pages 215-223, Melbourne, Australia, April 1997. +
|
||
|
https://www.comp.nus.edu.sg/~lingtw/dasfaa_proceedings/DASFAA97/P215.pdf
|
||
|
|
||
|
Referenced in the above paper as the source of the hash function.
|
||
|
|
||
|
---
|
||
|
|
||
|
*MurmurHash3 hash function source* +
|
||
|
_Austin Appleby_ +
|
||
|
https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash3.cpp#L65-L90
|
||
|
|
||
|
Austin Appleby's 32 and 64 bit finalization mixing functions that
|
||
|
introduced the "xmxmx" general form of a high quality bijective
|
||
|
transformation that approximates a random permutation.
|
||
|
|
||
|
---
|
||
|
|
||
|
*SMHasher hash function test suite* +
|
||
|
_Austin Appleby_ +
|
||
|
https://github.com/aappleby/smhasher
|
||
|
|
||
|
Contains a battery of tests for evaluating hash functions. The current
|
||
|
64 bit implementation of `boost::hash` for strings passes SMHasher.
|
||
|
Previous iterations did not.
|
||
|
|
||
|
---
|
||
|
|
||
|
*Better Bit Mixing - Improving on MurmurHash3's 64-bit Finalizer* +
|
||
|
_David Stafford_ +
|
||
|
https://zimbry.blogspot.com/2011/09/better-bit-mixing-improving-on.html
|
||
|
|
||
|
Describes the so-called "variant 13" mixing function, an improvement
|
||
|
over `fmix64` from MurmurHash3, made famous by its adoption by the
|
||
|
`splitmix64` http://xorshift.di.unimi.it/splitmix64.c[random number generator].
|
||
|
|
||
|
---
|
||
|
|
||
|
*Stronger, better, morer, Moremur; a better Murmur3-type mixer* +
|
||
|
_Pelle Evensen_ +
|
||
|
https://mostlymangling.blogspot.com/2019/12/stronger-better-morer-moremur-better.html
|
||
|
|
||
|
Describes Moremur, an improvement over MurmurHash3 `fmix64` and Stafford
|
||
|
"variant 13".
|
||
|
|
||
|
---
|
||
|
|
||
|
*Improved mx3 and the RRC test* +
|
||
|
_Jon Maiga_ +
|
||
|
http://jonkagstrom.com/mx3/mx3_rev2.html
|
||
|
|
||
|
Contains another improvement over MurmurHash3 `fmix64` and "variant 13". This
|
||
|
is what the current implementation of `boost::hash_combine` uses when
|
||
|
`std::size_t` is 64 bits.
|
||
|
|
||
|
---
|
||
|
|
||
|
*Prospecting for Hash Functions* +
|
||
|
_Chris Wellons_ +
|
||
|
https://nullprogram.com/blog/2018/07/31/
|
||
|
|
||
|
Describes https://github.com/skeeto/hash-prospector[Hash Prospector],
|
||
|
a utility for discovering and evaluating mixing functions.
|
||
|
|
||
|
---
|
||
|
|
||
|
*New best known functions* +
|
||
|
_"TheIronBorn"_ +
|
||
|
https://github.com/skeeto/hash-prospector/issues/19
|
||
|
|
||
|
Describes a good 32 bit mixing function, used by the current implementation
|
||
|
of `boost::hash_combine` when `std::size_t` is 32 bits.
|