/// <summary> /// Hash function for a given set of discrete indices /// http://cybertron.cg.tu-berlin.de/eitz/pdf/2007_hsh.pdf /// </summary> private int IndexAt(int i, int j) { const int p0 = 73856093; const int p1 = 19349663; return(SlurMath.Mod2(i * p0 ^ j * p1, BinCount)); }
/// <summary> /// http://cybertron.cg.tu-berlin.de/eitz/pdf/2007_hsh.pdf /// </summary> private int IndexAt(int i, int j, int k) { const int p0 = 73856093; const int p1 = 19349663; const int p2 = 83492791; return(SlurMath.Mod2(i * p0 ^ j * p1 ^ k * p2, BinCount)); }