122:
The current version is MurmurHash3, which yields a 32-bit or 128-bit hash value. When using 128-bits, the x86 and x64 versions do not produce the same values, as the algorithms are optimized for their respective platforms. MurmurHash3 was released alongside SMHasher, a hash function test suite.
43:
along with its test suite named SMHasher. It also exists in a number of variants, all of which have been released into the public domain. The name comes from two basic operations, multiply (MU) and rotate (R), used in its inner loop.
68:. Although successful, it had not been tested thoroughly and was not capable of providing 64-bit hashes as in Lookup3. Its design would be later built upon in MurmurHash2, combining a multiplicative hash (similar to the
397:
remainingBytes ← remainingBytes × c1 remainingBytes ← remainingBytes ROL r1 remainingBytes ← remainingBytes × c2 hash ← hash XOR remainingBytes hash ← hash XOR
401:
hash ← hash XOR (hash >> 16) hash ← hash × 0x85ebca6b hash ← hash XOR (hash >> 13) hash ← hash × 0xc2b2ae35 hash ← hash XOR (hash >> 16)
2242:
367:
k ← fourByteChunk k ← k × c1 k ← k ROL r1 k ← k × c2 hash ← hash XOR k hash ← hash ROL r2 hash ← (hash × m) + n
1216:
2208:
283:
84:
MurmurHash2 yields a 32- or 64-bit value. It comes in multiple variants, including some that allow incremental hashing and aligned or neutral versions.
110:
MurmurHash64B (64-bit, x86)—A 64-bit version optimized for 32-bit platforms. It is not a true 64-bit hash due to insufficient mixing of the stripes.
1302:
1435:
2305:
114:
The person who originally found the flaw in MurmurHash2 created an unofficial 160-bit version of MurmurHash2 called MurmurHash2_160.
2174:
1843:
51:, it is not specifically designed to be difficult to reverse by an adversary, making it unsuitable for cryptographic purposes.
1824:
310:, they were able to generate inputs that would lead to a hash collision. The authors of the attack recommend using their own
2222:
298:, where a user can choose input data in such a way so as to intentionally cause hash collisions. Jean-Philippe Aumasson and
2070:
69:
1220:
39:
suitable for general hash-based lookup. It was created by Austin
Appleby in 2008 and, as of 8 January 2016, is hosted on
2274:
2018:
92:
1802:
1194:
1584:
1508:
36:
1856:
180:
148:
302:
were able to show that even implementations of MurmurHash using a randomized seed are vulnerable to so-called
212:
200:
136:
2188:
204:
192:
196:
168:
164:
48:
1484:
1388:
1241:
307:
184:
144:
88:
MurmurHash2 (32-bit, x86)—The original version; contains a flaw that weakens collision in some cases.
65:
353:
c1 ← 0xcc9e2d51 c2 ← 0x1b873593 r1 ← 15 r2 ← 13 m ← 5 n ← 0xe6546b64 hash ←
239:
152:
140:
17:
1780:
2157:"Introduction to Apache Cassandra™ + What's New in 4.0 by Patrick McFadin. DataStax Presents"
1983:
1462:
104:
MurmurHashAligned2 (32-bit, x86)—Slower, but does aligned reads (safer on some platforms).
8:
2090:
1339:
299:
107:
MurmurHash64A (64-bit, x64)—The original 64-bit version. Optimized for 64-bit arithmetic.
1254:
386:// in the subsequent multiplication. Consider that locating the meaningful digits
383:// so that these digits have the greatest potential to affect the low range digits
380:// The purpose is to place the meaningful digits towards the low end of the value,
1408:
1937:
1737:
1606:
392:// multiplication, and notably, that such high digits are likely to be discarded
1296:
389:// in the high range would produce a greater effect upon the high digits of the
330:// Note: In this version, all arithmetic is performed with unsigned 32-bit integers.
1904:
1361:
295:
259:
2134:
1758:
64:
The original MurmurHash was created as an attempt to make a faster function than
1631:
247:
156:
2156:
1701:
135:, but there are efficient ports for a variety of popular languages, including
2299:
1723:
1280:
271:
267:
208:
2112:
2045:
1654:
1925:
279:
275:
101:
MurmurHashNeutral2 (32-bit, x86)—Slower, but endian- and alignment-neutral.
859:// places the low bytes in the low places according to whatever endianness
1278:
263:
227:
176:
1878:
1522:
226:
It has been adopted into a number of open-source projects, most notably
2290:
1563:
1317:
216:
1676:
395:// by the modulo arithmetic under overflow. We don't want that.
243:
1543:
856:// A swap is *not* necessary here because the preceding loop already
235:
73:
377:// Note: Endian swapping is only necessary on big-endian machines.
98:
CMurmurHash2A (32-bit, x86)—MurmurHash2A, but works incrementally.
2262:
1960:
862:// we use. Swaps only apply when the memory is copied in a chunk.
375:
remainingBytes ← SwapToLittleEndian(remainingBytesInKey)
311:
303:
251:
188:
1926:
GitHub - Xor-el/HashLib4Pascal: Hashing for Modern Object Pascal
2247:
2227:
2193:
2075:
2023:
1829:
1568:
1548:
1489:
1440:
1413:
1393:
1366:
333:// In the case of overflow, the result is reduced modulo
255:
40:
1997:
628:// Here is a source of differing results across endiannesses.
231:
220:
132:
404:
A sample C implementation follows (for little-endian CPUs):
160:
1509:"MurMurHash3, an ultra fast hash algorithm for C# / .NET"
172:
631:// A swap here has no effects on hash properties though.
91:MurmurHash2A (32-bit, x86)—A fixed variant using
2297:
1607:"std.digest.murmurhash - D Programming Language"
1219:. Hbase.apache.org. 24 July 2011. Archived from
1803:"Murmur3.java in Clojure source code on Github"
1279:Tanjent (tanjent) wrote,3 March 2008 13:31:00.
2209:"Elasticsearch 2.0 - CRUD and routing changes"
1958:
1857:"Murmur3A and Murmur3F Java classes on Github"
1436:"MurmurHash3 (see note on MurmurHash2_x86_64)"
2275:"Breaking Murmur: Hash-flooding DoS Reloaded"
1652:
1544:"C implementation in qLibc by Seungyoung Kim"
1702:"PHP userland implementation of MurmurHash3"
1167:The quick brown fox jumps over the lazy dog
1147:The quick brown fox jumps over the lazy dog
1301:: CS1 maint: numeric names: authors list (
1502:
1500:
1342:. Simonhf.wordpress.com. 25 September 2010
1315:
1961:"Javascript implementation by Ray Morgan"
1902:
1332:
1211:
1209:
1825:"Scala standard library implementation"
1506:
1497:
14:
2298:
2189:"hash.cc in vowpalwabbit source code"
1206:
294:Hash functions can be vulnerable to
1582:
284:RedHat Virtual Data Optimizer (VDO)
131:The canonical implementation is in
24:
1938:"goncalossilva/kotlinx-murmurhash"
1724:"PHP 8.1 with MurmurHash3 support"
289:
126:
25:
2317:
2306:Hash function (non-cryptographic)
2284:
1981:
1738:"tarballs_are_good / murmurhash3"
1653:Yuki Kurihara (16 October 2014).
1507:Horvath, Adam (10 August 2012).
1195:Non-cryptographic hash functions
2267:
2255:
2243:"Kafka DefaultPartitioner.java"
2235:
2215:
2201:
2181:
2167:
2149:
2127:
2105:
2083:
2063:
2038:
2011:
1990:
1975:
1952:
1930:
1919:
1896:
1871:
1849:
1837:
1817:
1795:
1773:
1751:
1730:
1716:
1694:
1669:
1646:
1624:
1599:
1576:
1556:
1536:
1515:
1477:
1455:
1428:
1281:"MurmurHash first announcement"
37:non-cryptographic hash function
2137:. apache.org. 15 November 2013
1940:. GitHub.com. 10 December 2021
1401:
1381:
1354:
1309:
1272:
1247:
1235:
117:
79:
59:
13:
1:
2113:"Kyoto Cabinet specification"
1903:Daisuke T (7 February 2019).
1200:
317:
70:Fowler–Noll–Vo hash function
49:cryptographic hash functions
7:
2115:. Fallabs.com. 4 March 2011
2071:"switch from MD5 to murmur"
1587:. Landman-code.blogspot.com
1260:(in Portuguese). p. 14
1188:
93:Merkle–Damgård construction
54:
10:
2322:
2175:"Solr MurmurHash2 Javadoc"
580:/* Read in groups of 4. */
308:differential cryptanalysis
250:(nodejs package manager),
1283:. Tanjent.livejournal.com
1002:Hash value (hexadecimal)
306:attacks. With the use of
406:
2261:Virtual Data Optimizer
1485:"MurmurHash3 on Github"
1389:"MurmurHash2 on Github"
2291:Official SMHasher site
1783:. package.elm-lang.org
1632:"Toru Maesaka in Perl"
1523:"pyfasthash in Python"
1761:. Hackage.haskell.org
1005:Hash value (decimal)
2223:"Guava Hashing.java"
1959:raycmorgan (owner).
1879:"bipthelin/murmerl3"
1833:. 26 September 2014.
1655:"Digest::MurmurHash"
1585:"Davy Landman in C#"
769:/* Read the rest. */
371:remainingBytesInKey
238:, libmemcached (the
1465:. 25 September 2010
992:
300:Daniel J. Bernstein
1905:"MurmurHash-Swift"
1677:"stusmall/murmur3"
1223:on 12 January 2012
990:
871:murmur_32_scramble
691:murmur_32_scramble
418:murmur_32_scramble
95:. Slightly slower.
2177:. 31 August 2022.
1963:. Gist.github.com
1463:"MurmurHash2_160"
1409:"MurmurHash2Flaw"
1340:"MurmurHash2-160"
1186:
1185:
360:fourByteChunk of
296:collision attacks
258:, Kyoto Cabinet,
27:Computer function
16:(Redirected from
2313:
2279:
2278:
2271:
2265:
2259:
2253:
2252:
2239:
2233:
2232:
2219:
2213:
2212:
2205:
2199:
2198:
2185:
2179:
2178:
2171:
2165:
2164:
2163:. 10 April 2019.
2153:
2147:
2146:
2144:
2142:
2131:
2125:
2124:
2122:
2120:
2109:
2103:
2102:
2100:
2098:
2087:
2081:
2080:
2067:
2061:
2060:
2058:
2056:
2050:libmemcached.org
2042:
2036:
2035:
2033:
2031:
2015:
2009:
2008:
2006:
2004:
1994:
1988:
1987:
1979:
1973:
1972:
1970:
1968:
1956:
1950:
1949:
1947:
1945:
1934:
1928:
1923:
1917:
1916:
1914:
1912:
1900:
1894:
1893:
1891:
1889:
1875:
1869:
1868:
1866:
1864:
1853:
1847:
1841:
1835:
1834:
1821:
1815:
1814:
1812:
1810:
1799:
1793:
1792:
1790:
1788:
1777:
1771:
1770:
1768:
1766:
1755:
1749:
1748:
1746:
1744:
1734:
1728:
1727:
1720:
1714:
1713:
1711:
1709:
1698:
1692:
1691:
1689:
1687:
1673:
1667:
1666:
1664:
1662:
1650:
1644:
1643:
1641:
1639:
1628:
1622:
1621:
1619:
1617:
1603:
1597:
1596:
1594:
1592:
1580:
1574:
1573:
1560:
1554:
1553:
1540:
1534:
1533:
1531:
1529:
1519:
1513:
1512:
1504:
1495:
1494:
1481:
1475:
1474:
1472:
1470:
1459:
1453:
1452:
1450:
1448:
1432:
1426:
1425:
1423:
1421:
1405:
1399:
1398:
1385:
1379:
1378:
1376:
1374:
1358:
1352:
1351:
1349:
1347:
1336:
1330:
1329:
1327:
1325:
1316:Austin Appleby.
1313:
1307:
1306:
1300:
1292:
1290:
1288:
1276:
1270:
1269:
1267:
1265:
1259:
1255:"Couceiro et al"
1251:
1245:
1239:
1233:
1232:
1230:
1228:
1217:"Hadoop in Java"
1213:
1182:
1177:
1172:
1162:
1157:
1152:
1142:
1137:
1132:
1122:
1117:
1112:
1102:
1097:
1092:
1082:
1077:
1072:
1062:
1057:
1052:
1043:
1038:
1033:
1024:
1019:
1014:
993:
989:
986:
983:
980:
977:
974:
971:
968:
965:
962:
959:
956:
953:
950:
947:
944:
941:
938:
935:
932:
929:
926:
923:
920:
917:
914:
911:
908:
905:
902:
899:
896:
893:
890:
887:
884:
881:
878:
875:
872:
869:
866:
863:
860:
857:
854:
851:
848:
845:
842:
839:
836:
833:
830:
827:
824:
821:
818:
815:
812:
809:
806:
803:
800:
797:
794:
791:
788:
785:
782:
779:
776:
773:
770:
767:
764:
761:
758:
755:
752:
749:
746:
743:
740:
737:
734:
731:
728:
725:
722:
719:
716:
713:
710:
707:
704:
701:
698:
695:
692:
689:
686:
683:
680:
677:
674:
671:
668:
665:
662:
659:
656:
653:
650:
647:
644:
641:
638:
635:
632:
629:
626:
623:
620:
617:
614:
611:
608:
605:
602:
599:
596:
593:
590:
587:
584:
581:
578:
575:
572:
569:
566:
563:
560:
557:
554:
551:
548:
545:
542:
539:
536:
533:
530:
527:
524:
521:
518:
515:
512:
509:
506:
503:
500:
497:
494:
491:
488:
485:
482:
479:
476:
473:
470:
467:
464:
461:
458:
455:
452:
449:
446:
443:
440:
437:
434:
431:
428:
425:
422:
419:
416:
413:
410:
336:
21:
2321:
2320:
2316:
2315:
2314:
2312:
2311:
2310:
2296:
2295:
2287:
2282:
2273:
2272:
2268:
2260:
2256:
2241:
2240:
2236:
2221:
2220:
2216:
2207:
2206:
2202:
2187:
2186:
2182:
2173:
2172:
2168:
2155:
2154:
2150:
2140:
2138:
2133:
2132:
2128:
2118:
2116:
2111:
2110:
2106:
2096:
2094:
2093:. 24 March 2009
2089:
2088:
2084:
2069:
2068:
2064:
2054:
2052:
2044:
2043:
2039:
2029:
2027:
2017:
2016:
2012:
2002:
2000:
1996:
1995:
1991:
1980:
1976:
1966:
1964:
1957:
1953:
1943:
1941:
1936:
1935:
1931:
1924:
1920:
1910:
1908:
1901:
1897:
1887:
1885:
1877:
1876:
1872:
1862:
1860:
1855:
1854:
1850:
1846:, part of Guava
1842:
1838:
1823:
1822:
1818:
1808:
1806:
1801:
1800:
1796:
1786:
1784:
1779:
1778:
1774:
1764:
1762:
1757:
1756:
1752:
1742:
1740:
1736:
1735:
1731:
1722:
1721:
1717:
1707:
1705:
1700:
1699:
1695:
1685:
1683:
1675:
1674:
1670:
1660:
1658:
1651:
1647:
1637:
1635:
1630:
1629:
1625:
1615:
1613:
1605:
1604:
1600:
1590:
1588:
1583:Landman, Davy.
1581:
1577:
1564:"murmur3 in Go"
1562:
1561:
1557:
1542:
1541:
1537:
1527:
1525:
1521:
1520:
1516:
1505:
1498:
1483:
1482:
1478:
1468:
1466:
1461:
1460:
1456:
1446:
1444:
1434:
1433:
1429:
1419:
1417:
1407:
1406:
1402:
1387:
1386:
1382:
1372:
1370:
1360:
1359:
1355:
1345:
1343:
1338:
1337:
1333:
1323:
1321:
1314:
1310:
1294:
1293:
1286:
1284:
1277:
1273:
1263:
1261:
1257:
1253:
1252:
1248:
1240:
1236:
1226:
1224:
1215:
1214:
1207:
1203:
1191:
1180:
1175:
1170:
1160:
1155:
1150:
1140:
1135:
1130:
1120:
1115:
1110:
1100:
1095:
1090:
1080:
1075:
1070:
1060:
1055:
1050:
1041:
1036:
1031:
1022:
1017:
1012:
988:
987:
984:
981:
978:
975:
972:
969:
966:
963:
960:
957:
954:
951:
948:
945:
942:
939:
936:
933:
930:
927:
924:
921:
918:
915:
912:
909:
906:
903:
900:
897:
894:
891:
888:
885:
883:/* Finalize. */
882:
879:
876:
873:
870:
867:
864:
861:
858:
855:
852:
849:
846:
843:
840:
837:
834:
831:
828:
825:
822:
819:
816:
813:
810:
807:
804:
801:
798:
795:
792:
789:
786:
783:
780:
777:
774:
771:
768:
765:
762:
759:
756:
753:
750:
747:
744:
741:
738:
735:
732:
729:
726:
723:
720:
717:
714:
711:
708:
705:
702:
699:
696:
693:
690:
687:
684:
681:
678:
675:
672:
669:
666:
663:
660:
657:
654:
651:
648:
645:
642:
639:
636:
633:
630:
627:
624:
621:
618:
615:
612:
609:
606:
603:
600:
597:
594:
591:
588:
585:
582:
579:
576:
573:
570:
567:
564:
561:
558:
555:
552:
549:
546:
543:
540:
537:
534:
531:
528:
525:
522:
519:
516:
513:
510:
507:
504:
501:
498:
495:
492:
489:
486:
483:
480:
477:
474:
471:
468:
465:
462:
459:
456:
453:
450:
447:
444:
441:
438:
435:
432:
429:
426:
423:
420:
417:
414:
411:
408:
402:
334:
320:
292:
290:Vulnerabilities
129:
127:Implementations
120:
82:
62:
57:
28:
23:
22:
15:
12:
11:
5:
2319:
2309:
2308:
2294:
2293:
2286:
2285:External links
2283:
2281:
2280:
2266:
2254:
2234:
2214:
2200:
2180:
2166:
2148:
2135:"Partitioners"
2126:
2104:
2082:
2062:
2046:"libMemcached"
2037:
2010:
1989:
1984:"OCaml Source"
1974:
1951:
1929:
1918:
1895:
1870:
1848:
1836:
1816:
1794:
1772:
1750:
1729:
1715:
1693:
1668:
1645:
1634:. metacpan.org
1623:
1598:
1575:
1555:
1535:
1514:
1496:
1476:
1454:
1427:
1400:
1380:
1353:
1331:
1308:
1271:
1246:
1234:
1204:
1202:
1199:
1198:
1197:
1190:
1187:
1184:
1183:
1178:
1173:
1168:
1164:
1163:
1158:
1153:
1148:
1144:
1143:
1138:
1133:
1128:
1127:Hello, world!
1124:
1123:
1118:
1113:
1108:
1107:Hello, world!
1104:
1103:
1098:
1093:
1088:
1084:
1083:
1078:
1073:
1068:
1064:
1063:
1058:
1053:
1048:
1045:
1044:
1039:
1034:
1029:
1026:
1025:
1020:
1015:
1010:
1007:
1006:
1003:
1000:
997:
407:
321:
319:
316:
291:
288:
128:
125:
119:
116:
112:
111:
108:
105:
102:
99:
96:
89:
81:
78:
61:
58:
56:
53:
26:
9:
6:
4:
3:
2:
2318:
2307:
2304:
2303:
2301:
2292:
2289:
2288:
2276:
2270:
2264:
2258:
2250:
2249:
2244:
2238:
2230:
2229:
2224:
2218:
2210:
2204:
2196:
2195:
2190:
2184:
2176:
2170:
2162:
2158:
2152:
2136:
2130:
2114:
2108:
2092:
2086:
2078:
2077:
2072:
2066:
2051:
2047:
2041:
2026:
2025:
2020:
2014:
1999:
1993:
1986:. GitHub.com.
1985:
1978:
1962:
1955:
1939:
1933:
1927:
1922:
1906:
1899:
1884:
1880:
1874:
1858:
1852:
1845:
1840:
1832:
1831:
1826:
1820:
1805:. clojure.org
1804:
1798:
1782:
1776:
1760:
1754:
1739:
1733:
1725:
1719:
1703:
1697:
1682:
1678:
1672:
1656:
1649:
1633:
1627:
1612:
1608:
1602:
1586:
1579:
1571:
1570:
1565:
1559:
1551:
1550:
1545:
1539:
1524:
1518:
1510:
1503:
1501:
1492:
1491:
1486:
1480:
1464:
1458:
1443:
1442:
1437:
1431:
1416:
1415:
1410:
1404:
1396:
1395:
1390:
1384:
1369:
1368:
1363:
1362:"MurmurHash1"
1357:
1341:
1335:
1319:
1312:
1304:
1298:
1282:
1275:
1256:
1250:
1243:
1238:
1222:
1218:
1212:
1210:
1205:
1196:
1193:
1192:
1179:
1174:
1169:
1166:
1165:
1159:
1154:
1149:
1146:
1145:
1139:
1134:
1129:
1126:
1125:
1121:3,224,780,355
1119:
1114:
1109:
1106:
1105:
1101:1,883,996,636
1099:
1094:
1089:
1086:
1085:
1081:3,127,628,307
1079:
1074:
1069:
1066:
1065:
1061:2,180,083,513
1059:
1054:
1049:
1047:
1046:
1042:1,364,076,727
1040:
1035:
1030:
1028:
1027:
1021:
1016:
1011:
1009:
1008:
1004:
1001:
998:
995:
994:
405:
400:
396:
393:
390:
387:
384:
381:
378:
374:
370:
366:
363:
359:
356:
352:
348:
344:
341:
338:
331:
328:
324:
315:
313:
309:
305:
301:
297:
287:
285:
281:
277:
273:
272:Elasticsearch
269:
268:vowpal wabbit
265:
261:
257:
253:
249:
245:
241:
237:
234:(ver 1.0.1),
233:
229:
224:
222:
218:
214:
210:
209:Object Pascal
206:
202:
198:
194:
190:
186:
182:
178:
174:
170:
166:
162:
158:
154:
150:
146:
142:
138:
134:
124:
115:
109:
106:
103:
100:
97:
94:
90:
87:
86:
85:
77:
75:
71:
67:
52:
50:
45:
42:
38:
34:
30:
19:
2269:
2257:
2246:
2237:
2226:
2217:
2203:
2192:
2183:
2169:
2160:
2151:
2139:. Retrieved
2129:
2117:. Retrieved
2107:
2095:. Retrieved
2085:
2074:
2065:
2053:. Retrieved
2049:
2040:
2028:. Retrieved
2022:
2013:
2001:. Retrieved
1992:
1977:
1965:. Retrieved
1954:
1942:. Retrieved
1932:
1921:
1909:. Retrieved
1907:. GitHub.com
1898:
1886:. Retrieved
1882:
1873:
1861:. Retrieved
1859:. greenrobot
1851:
1839:
1828:
1819:
1807:. Retrieved
1797:
1785:. Retrieved
1775:
1763:. Retrieved
1753:
1741:. Retrieved
1732:
1718:
1706:. Retrieved
1704:. github.com
1696:
1684:. Retrieved
1680:
1671:
1659:. Retrieved
1657:. GitHub.com
1648:
1636:. Retrieved
1626:
1614:. Retrieved
1610:
1601:
1589:. Retrieved
1578:
1567:
1558:
1547:
1538:
1526:. Retrieved
1517:
1488:
1479:
1467:. Retrieved
1457:
1445:. Retrieved
1439:
1430:
1418:. Retrieved
1412:
1403:
1392:
1383:
1371:. Retrieved
1365:
1356:
1344:. Retrieved
1334:
1324:23 September
1322:. Retrieved
1320:. Github.com
1311:
1285:. Retrieved
1274:
1262:. Retrieved
1249:
1242:Chouza et al
1237:
1225:. Retrieved
1221:the original
996:Test string
403:
398:
394:
391:
388:
385:
382:
379:
376:
372:
368:
364:
361:
357:
354:
350:
346:
342:
339:
332:
329:
326:
322:
293:
225:
130:
121:
113:
83:
63:
46:
32:
31:
29:
2263:source code
2141:19 December
2030:29 February
1944:14 December
1911:10 February
1708:18 December
1686:29 November
1181:799,549,133
1161:776,992,547
1141:612,912,314
999:Seed value
325:Murmur3_32
242:driver for
230:(ver 4.6),
177:Common Lisp
118:MurmurHash3
80:MurmurHash2
60:MurmurHash1
2119:13 January
2097:13 January
2055:21 October
2019:"Rubinius"
2003:13 January
1967:13 January
1888:21 October
1863:5 November
1765:13 January
1743:7 February
1638:13 January
1616:5 November
1591:13 January
1528:13 January
1469:12 January
1447:15 January
1420:15 January
1373:12 January
1346:13 January
1318:"SMHasher"
1287:13 January
1264:13 January
1227:13 January
1201:References
1176:0x2FA826CD
1171:0x9747b28c
1156:0x2e4ff723
1151:0x00000000
1136:0x24884CBA
1131:0x9747b28c
1116:0xc0363e43
1111:0x00000000
1096:0x704b81dc
1091:0x9747b28c
1076:0xba6bd213
1071:0x00000000
1056:0x81F16F39
1051:0xffffffff
1037:0x514E28B7
1032:0x00000001
1018:0x00000000
1013:0x00000000
952:0xc2b2ae35
922:0x85ebca6b
760:0xe6546b64
514:murmur3_32
493:0x1b873593
442:0xcc9e2d51
217:JavaScript
72:) with an
33:MurmurHash
2091:"maatkit"
1759:"Haskell"
1611:dlang.org
832:<<=
323:algorithm
318:Algorithm
314:instead.
260:Cassandra
244:Memcached
228:libstdc++
2300:Category
1809:11 March
1661:18 March
1297:cite web
1189:See also
967:>>
937:>>
907:>>
733:>>
715:<<
679:uint32_t
661:uint32_t
601:>>
571:uint32_t
556:uint32_t
544:uint32_t
511:uint32_t
478:>>
460:<<
424:uint32_t
415:uint32_t
369:with any
358:for each
236:Rubinius
74:Xorshift
55:Variants
2161:YouTube
1998:"nginx"
1982:INRIA.
1844:Murmur3
1787:12 June
523:uint8_t
312:SipHash
304:HashDoS
252:maatkit
189:Clojure
181:Haskell
66:Lookup3
47:Unlike
18:Murmur3
2248:GitHub
2228:GitHub
2194:GitHub
2076:GitHub
2024:GitHub
1883:GitHub
1830:GitHub
1681:GitHub
1569:GitHub
1549:GitHub
1490:GitHub
1441:GitHub
1414:GitHub
1394:GitHub
1367:GitHub
991:Tests
976:return
790:size_t
673:sizeof
655:sizeof
634:memcpy
589:size_t
535:size_t
499:return
412:inline
409:static
340:input:
282:, and
256:Hadoop
219:, and
213:Kotlin
201:Erlang
137:Python
41:GitHub
1781:"Elm"
1258:(PDF)
1087:test
1067:test
802:&
640:&
520:const
280:Kafka
276:Guava
232:nginx
221:OCaml
205:Swift
193:Scala
35:is a
2143:2013
2121:2012
2099:2012
2057:2015
2032:2012
2005:2012
1969:2012
1946:2021
1913:2019
1890:2015
1865:2014
1811:2014
1789:2019
1767:2012
1745:2015
1710:2017
1688:2015
1663:2015
1640:2012
1618:2016
1593:2012
1530:2012
1471:2019
1449:2019
1422:2019
1375:2019
1348:2012
1326:2024
1303:link
1289:2012
1266:2012
1229:2012
565:seed
547:seed
355:seed
351:seed
264:Solr
197:Java
169:Rust
165:Ruby
161:Perl
892:len
847:key
799:len
784:for
667:key
664:));
649:key
598:len
583:for
538:len
529:key
399:len
362:key
347:len
343:key
248:npm
246:),
185:Elm
173:PHP
157:Lua
133:C++
2302::
2245:.
2225:.
2191:.
2159:.
2073:.
2048:.
2021:.
1881:.
1827:.
1679:.
1609:.
1566:.
1546:.
1499:^
1487:.
1438:.
1411:.
1391:.
1364:.
1299:}}
1295:{{
1208:^
970:16
961:^=
949:*=
940:13
931:^=
919:*=
910:16
901:^=
889:^=
880:);
868:^=
844:|=
820:--
739:);
736:19
718:13
700:);
688:^=
682:);
670:+=
619:--
490:*=
484:);
481:17
463:15
439:*=
373:do
365:do
349:,
345:,
327:is
286:.
278:,
274:,
270:,
266:,
262:,
254:,
223:.
215:,
211:,
207:,
203:,
199:,
195:,
191:,
187:,
183:,
179:,
175:,
171:,
167:,
163:,
159:,
155:,
151:,
149:C#
147:,
145:Go
143:,
139:,
76:.
2277:.
2251:.
2231:.
2211:.
2197:.
2145:.
2123:.
2101:.
2079:.
2059:.
2034:.
2007:.
1971:.
1948:.
1915:.
1892:.
1867:.
1813:.
1791:.
1769:.
1747:.
1726:.
1712:.
1690:.
1665:.
1642:.
1620:.
1595:.
1572:.
1552:.
1532:.
1511:.
1493:.
1473:.
1451:.
1424:.
1397:.
1377:.
1350:.
1328:.
1305:)
1291:.
1268:.
1244:.
1231:.
1023:0
985:}
982:;
979:h
973:;
964:h
958:h
955:;
946:h
943:;
934:h
928:h
925:;
916:h
913:;
904:h
898:h
895:;
886:h
877:k
874:(
865:h
853:}
850:;
841:k
838:;
835:8
829:k
826:{
823:)
817:i
814:;
811:i
808:;
805:3
796:=
793:i
787:(
781:;
778:0
775:=
772:k
766:}
763:;
757:+
754:5
751:*
748:h
745:=
742:h
730:h
727:(
724:|
721:)
712:h
709:(
706:=
703:h
697:k
694:(
685:h
676:(
658:(
652:,
646:,
643:k
637:(
625:{
622:)
616:i
613:;
610:i
607:;
604:2
595:=
592:i
586:(
577:;
574:k
568:;
562:=
559:h
553:{
550:)
541:,
532:,
526:*
517:(
508:}
505:;
502:k
496:;
487:k
475:k
472:(
469:|
466:)
457:k
454:(
451:=
448:k
445:;
436:k
433:{
430:)
427:k
421:(
337:.
335:2
240:C
153:D
141:C
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.