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.

    Forked from com.carrotsearch.hppc.BitMixer

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

    • Constructor Detail

      • BitMixer

        public BitMixer()
    • Method Detail

      • 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)