Class BitMixer



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

      Constructors

      Constructor and Description
      BitMixer()
       
    • Method Summary

      Methods

      Modifier and Type Method and Description
      static int mix(byte key)
       
      static int mix(byte key, int seed)
       
      static int mix(char key)
       
      static int mix(char key, int seed)
       
      static int mix(double key)
       
      static int mix(double key, int seed)
       
      static int mix(float key)
       
      static int mix(float key, int seed)
       
      static int mix(int key)
       
      static int mix(int key, int seed)
       
      static int mix(long key)
       
      static int mix(long key, int seed)
       
      static int mix(Object key)
       
      static int mix(Object key, int seed)
       
      static int mix(short key)
       
      static int mix(short key, int seed)
       
      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(Object k)
       
      static int mixPhi(short k)
       
    • Constructor Detail

      • BitMixer

        public BitMixer()
    • Method Detail

      • mix

        public static int mix(byte key)
      • mix

        public static int mix(byte key,
                              int seed)
      • mix

        public static int mix(short key)
      • mix

        public static int mix(short key,
                              int seed)
      • mix

        public static int mix(char key)
      • mix

        public static int mix(char key,
                              int seed)
      • mix

        public static int mix(int key)
      • mix

        public static int mix(int key,
                              int seed)
      • mix

        public static int mix(float key)
      • mix

        public static int mix(float key,
                              int seed)
      • mix

        public static int mix(double key)
      • mix

        public static int mix(double key,
                              int seed)
      • mix

        public static int mix(long key)
      • mix

        public static int mix(long key,
                              int seed)
      • mix

        public static int mix(Object key)
      • mix

        public static int mix(Object key,
                              int seed)
      • 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)