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)