Top Description Fields Constructors Methods
com.carrotsearch.hppc

public final Class BitMixer

extends Object
Class Inheritance

Bit mixing utilities. The purpose of these methods is to evenly distribute key space over int32 range.

Field Summary

Modifier and TypeField and Description
private static final int
private static final long

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public static int
mix(byte key)

public static int
mix(short key)

public static int
mix(char key)

public static int
mix(int key)

public static int
mix(float key)

public static int
mix(double key)

public static int
mix(long key)

public static int
mix(Object key)

public static int
mix32(int k)

MH3's plain finalization step.

public static long
mix64(long z)

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

public static int
mixPhi(byte k)

public static int
mixPhi(char k)

public static int
mixPhi(short k)

public static int
mixPhi(int k)

public static int
mixPhi(float k)

public static int
mixPhi(double k)

public static int
mixPhi(long k)

public static int
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

PHI_C32back to summary
private static final int PHI_C32
PHI_C64back to summary
private static final long PHI_C64

Constructor Detail

BitMixerback to summary
public BitMixer()

Method Detail

mixback to summary
public static int mix(byte key)
mixback to summary
public static int mix(short key)
mixback to summary
public static int mix(char key)
mixback to summary
public static int mix(int key)
mixback to summary
public static int mix(float key)
mixback to summary
public static int mix(double key)
mixback to summary
public static int mix(long key)
mixback to summary
public static int mix(Object key)
mix32back to summary
public static int mix32(int k)

MH3's plain finalization step.

mix64back to summary
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
mixPhiback to summary
public static int mixPhi(byte k)
mixPhiback to summary
public static int mixPhi(char k)
mixPhiback to summary
public static int mixPhi(short k)
mixPhiback to summary
public static int mixPhi(int k)
mixPhiback to summary
public static int mixPhi(float k)
mixPhiback to summary
public static int mixPhi(double k)
mixPhiback to summary
public static int mixPhi(long k)
mixPhiback to summary
public static int mixPhi(Object k)