Class BitMixer

java.lang.Object
org.apache.lucene.util.hppc.BitMixer

public final class BitMixer extends Object
Bit mixing utilities. The purpose of these methods is to evenly distribute key space over int32 range.

Forked from com.carrotsearch.hppc.BitMixer

github: https://github.com/carrotsearch/hppc release: 0.9.0

  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static int
    mix(byte key)
     
    static int
    mix(char key)
     
    static int
    mix(double key)
     
    static int
    mix(float key)
     
    static int
    mix(int key)
     
    static int
    mix(long key)
     
    static int
    mix(short key)
     
    static int
    mix(Object key)
     
    static int
    mix32(int k)
    MH3's plain finalization step.
    static long
    mix64(long z)
    Computes David Stafford variant 9 of 64bit mix function (MH3 finalization step, with different shifts and constants).
    static int
    mixPhi(byte k)
     
    static int
    mixPhi(char k)
     
    static int
    mixPhi(double k)
     
    static int
    mixPhi(float k)
     
    static int
    mixPhi(int k)
     
    static int
    mixPhi(long k)
     
    static int
    mixPhi(short k)
     
    static int
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • BitMixer

      public BitMixer()
  • Method Details

    • mix

      public static int mix(byte key)
    • mix

      public static int mix(short key)
    • mix

      public static int mix(char key)
    • mix

      public static int mix(int key)
    • mix

      public static int mix(float key)
    • mix

      public static int mix(double key)
    • mix

      public static int mix(long key)
    • mix

      public static int mix(Object key)
    • mix32

      public static int mix32(int k)
      MH3's plain finalization step.
    • mix64

      public static long mix64(long z)
      Computes David Stafford variant 9 of 64bit mix function (MH3 finalization step, with different shifts and constants).

      Variant 9 is picked because it contains two 32-bit shifts which could be possibly optimized into better machine code.

      See Also:
      • "http://zimbry.blogspot.com/2011/09/better-bit-mixing-improving-on.html"
    • mixPhi

      public static int mixPhi(byte k)
    • mixPhi

      public static int mixPhi(char k)
    • mixPhi

      public static int mixPhi(short k)
    • mixPhi

      public static int mixPhi(int k)
    • mixPhi

      public static int mixPhi(float k)
    • mixPhi

      public static int mixPhi(double k)
    • mixPhi

      public static int mixPhi(long k)
    • mixPhi

      public static int mixPhi(Object k)