BitMixer (Lucene 10.5.0 core API)
Description: declaration: package: org.apache.lucene.internal.hppc, class: BitMixer

Package org.apache.lucene.internal.hppc

# Class BitMixer

java.lang.Object
org.apache.lucene.internal.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.10.0

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BitMixer()`

- ## 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`
  `mixPhi(Object k)`

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