From c01270b0bd43a768ffa5c468e67188544e54ccc4 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Sun, 18 Sep 2022 22:05:30 +0300 Subject: [PATCH] Update Links section --- doc/hash/links.adoc | 97 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 92 insertions(+), 5 deletions(-) diff --git a/doc/hash/links.adoc b/doc/hash/links.adoc index 3ed3d1b..da99ad0 100644 --- a/doc/hash/links.adoc +++ b/doc/hash/links.adoc @@ -1,12 +1,99 @@ +//// +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. +*A Proposal to Add Hash Tables to the Standard Library* + +http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2003/n1456.html -*The C++ 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. +The hash table proposal explains much of the design. The hash function object is discussed in Section D. -*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 http://www.cs.rmit.edu.au/~jz/fulltext/jasist-tch.pdf Contains the hash function that `boost::hash_combine` is based on. +*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_ + +http://www.cs.rmit.edu.au/~jz/fulltext/jasist-tch.pdf + +Contains the hash function that the initial implementation of `boost::hash_combine` was based on. + +--- + +*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. + +--- + +*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* + +_John Maiga_ + +http://jonkagstrom.com/mx3/mx3_rev2.html + +Contains another improvement over MurmurHash3 fmix64 and "variant 13". + +--- + +*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.