libmurmurhash - non-cryptographic hash functions
Contents
Bugs
The old API is problematic in that a negative length remains unchecked and the output parameter has very
specific alignment requirements. Furthermore, the order of bytes in the hash may differ across
architectures.
ReportingBugs
Please file a bug on GitHub <github.com/kloetzl/libmurmurhash> or send me a mail <fabian-
libmurmurhash@kloetzl.info>.
1 2019-02-04 LIBMURMURHASH(3)
Description
LibMurmurHash provides the three variants of MurmurHash3 from the original source. The first parameter
addr specifies the beginning of the data to be hashed in memory. The second parameter len gives the
number of bytes to be hashed. The third parameter seed can be used to compute an alternative hash on the
same data. Pass the location of the hash via the out parameter.
Example
Compute the hash of length bytes starting from data and print the 32-bit sized hash value.
uint32_t hash;
lmmh_x86_32(data, length, 0, &hash);
printf("%" PRIx32 "", hash);
Do the same, but with a wider hash.
uint64_t widehash[2];
lmmh_x64_128(data, length, 0, widehash);
printf("%" PRIx64 "%" PRIx64 "", widehash[0], widehash[1]);
Name
libmurmurhash - non-cryptographic hash functions
Synopsis
#include<murmurhash.h>voidlmmh_x86_32(constvoid*addr,unsignedintlen,uint32_tseed,uint32_tout[1]);voidlmmh_x86_128(constvoid*addr,unsignedintlen,uint32_tseed,uint32_tout[4]);voidlmmh_x64_128(constvoid*addr,unsignedintlen,uint32_tseed,uint64_tout[2]);DeprecatedAPIvoidMurmurHash3_x86_32(constvoid*data,intlen,uint32_tseed,void*out);voidMurmurHash3_x86_128(constvoid*data,intlen,uint32_tseed,void*out);voidMurmurHash3_x64_128(constvoid*data,intlen,uint32_tseed,void*out);
