Package org.elasticsearch.common.hash
Enum Class MurmurHash3
- All Implemented Interfaces:
Serializable
,Comparable<MurmurHash3>
,Constable
MurmurHash3 hashing functions.
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>
-
Method Summary
Modifier and TypeMethodDescriptionprotected static long
fmix(long k)
protected static long
getblock(byte[] key, int offset, int index)
static MurmurHash3.Hash128
hash128(byte[] key, int offset, int length, long seed, MurmurHash3.Hash128 hash)
Compute the hash of the MurmurHash3_x64_128 hashing function.static long
murmur64(long h)
A 64-bit variant which accepts a long to hash, and returns the 64bit long hash.static MurmurHash3
Returns the enum constant of this class with the specified name.static MurmurHash3[]
values()
Returns an array containing the constants of this enum class, in the order they are declared.
-
Method Details
-
values
Returns an array containing the constants of this enum class, in the order they are declared.- Returns:
- an array containing the constants of this enum class, in the order they are declared
-
valueOf
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException
- if this enum class has no constant with the specified nameNullPointerException
- if the argument is null
-
getblock
protected static long getblock(byte[] key, int offset, int index) -
fmix
protected static long fmix(long k) -
hash128
public static MurmurHash3.Hash128 hash128(byte[] key, int offset, int length, long seed, MurmurHash3.Hash128 hash)Compute the hash of the MurmurHash3_x64_128 hashing function. Note, this hashing function might be used to persist hashes, so if the way hashes are computed changes for some reason, it needs to be addressed (like in BloomFilter and MurmurHashField). -
murmur64
public static long murmur64(long h)A 64-bit variant which accepts a long to hash, and returns the 64bit long hash. This is useful if the input is already in long (or smaller) format and you don't need the full 128b width and flexibility ofhash128(byte[], int, int, long, Hash128)
Given the limited nature of this variant, it should be faster than the 128b version when you only need 128b (many fewer instructions)
-