All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.carrotsearch.hppcrt.hash.MurmurHash3 Maven / Gradle / Ivy

package com.carrotsearch.hppcrt.hash;

/**
 * Hash routines for primitive types. The implementation is based on the finalization step
 * from Austin Appleby's MurmurHash3.
 * 
 * @see "http://sites.google.com/site/murmurhash/"
 */
public final class MurmurHash3
{

    public static final int BOOLEAN_FALSE_HASH = 0;
    public static final int BOOLEAN_TRUE_HASH = 1364076727;

    private MurmurHash3()
    {
        // no instances.
    }

    /**
     * Hashes a 4-byte sequence (Java int).
     */
    public static int hash(int k)
    {
        k ^= k >>> 16;
        k *= 0x85ebca6b;
        k ^= k >>> 13;
        k *= 0xc2b2ae35;
        k ^= k >>> 16;
        return k;
    }

    /**
     * Hashes an 8-byte sequence (Java long).
     */
    public static long hash(long k)
    {
        k ^= k >>> 33;
        k *= 0xff51afd7ed558ccdL;
        k ^= k >>> 33;
        k *= 0xc4ceb9fe1a85ec53L;
        k ^= k >>> 33;

        return k;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy