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

com.carrotsearch.sizeof.MurmurHash3 Maven / Gradle / Ivy

There is a newer version: 0.0.5
Show newest version
package com.carrotsearch.sizeof;

/**
 * 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/"
 */
final class MurmurHash3 {
  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 - 2024 Weber Informatics LLC | Privacy Policy