27 #include <spot/misc/hashfunc.hh> 28 #include <spot/misc/_config.h> 30 #include <unordered_map> 31 #include <unordered_set> 40 public std::unary_function<const T*, size_t>
49 size_t operator()(
const T* p)
const 52 - static_cast<const char*>(
nullptr));
64 public std::unary_function<const T&, size_t>
72 size_t operator()(
const T& s)
const 81 template<
typename T,
typename U>
82 std::size_t operator()(
const std::pair<T, U> &p)
const 87 return wang32_hash(static_cast<size_t>(th(p.first)) ^
88 static_cast<size_t>(uh(p.second)));
94 static const unsigned primes[144] =
96 295075531, 334214857, 314607103, 314607191, 334214891, 334214779,
97 295075421, 472882073, 256203329, 275604599, 314606953, 256203397,
98 275604547, 256203631, 275604617, 472882141, 472882297, 472882219,
99 256203229, 256203469, 275604643, 472882169, 275604803, 472882283,
100 295075463, 334214593, 295075213, 256203373, 314607019, 314607193,
101 295075399, 256203523, 314607001, 295075289, 256203293, 256203641,
102 256203307, 314607047, 295075373, 314607053, 314606977, 334214681,
103 275604691, 275604577, 472882447, 314607031, 275605019, 472882477,
104 472882499, 314607173, 295075241, 295075471, 295075367, 256203559,
105 314607233, 275604881, 334214941, 472882103, 275604821, 472882511,
106 295075357, 472882517, 314607023, 256203317, 295075337, 275605007,
107 472882391, 256203223, 334214723, 295075381, 295075423, 275604733,
108 314607113, 256203257, 472882453, 256203359, 295075283, 314607043,
109 256203403, 472882259, 314606891, 472882253, 314606917, 256203349,
110 256203457, 295075457, 472882171, 314607229, 295075513, 472882429,
111 334214953, 275604841, 295075309, 472882099, 334214467, 334214939,
112 275604869, 314607077, 314607089, 275604947, 275605027, 295075379,
113 334214861, 314606909, 334214911, 314607199, 275604983, 314606969,
114 256203221, 334214899, 256203611, 256203679, 472882337, 275604767,
115 472882199, 295075523, 472882049, 275604817, 334214561, 334214581,
116 334214663, 295075489, 295075163, 334214869, 334214521, 295075499,
117 275604913, 334214753, 334214687, 256203491, 295075153, 334214893,
118 472882411, 472882117, 275604793, 334214833, 334214591, 314607091,
119 256203419, 275604727, 256203659, 275604961, 334214557, 275604677
size_t wang32_hash(size_t key)
Thomas Wang's 32 bit hash function.
Definition: hashfunc.hh:40
A hash function for pointers.
Definition: hash.hh:39
std::hash< std::string > string_hash
A hash function for strings.
Definition: hash.hh:58
size_t knuth32_hash(size_t key)
Knuth's Multiplicative hash function.
Definition: hashfunc.hh:59
A hash function that returns identity.
Definition: hash.hh:63