fp64
fp64
> Not very precise Some more context on accuracy of Monte Carlo. Show data Let's take 32-bit function above (so we can actually do exhaustive measurement): Method | N |...
Speaking of measuring things exactly, some optimal in their class `uint8_t->uint8_t` hash functions look like this: Type | Constants | Linf | RMS | Notes -----------------------|----------------------|------|-----------|--------------------------------------------------------------------------- xorr,mul,xorr,mul,xorr | [ 1,0x0F,...
The function ```c++ uint32_t hash(uint32_t x) { x ^= x >> 23; x = (x | 1u) ^ (x * x); x ^= x >> 13; x = (x |...
@tommyettinger, I just noticed something curious. As mentioned before, 32-bit rng ```c++ uint32_t rng32() { uint64_t state=0ull; state=-(state^(state*state|5ull)); return (uint32_t)(state>>32); } ``` performs very smoothly in PractRand, up until it...
Perhaps [MicroOAAT](https://github.com/rurban/smhasher/blob/master/Hashes.cpp#L613) (of `len=4`) interacts badly with this particular constant? Here are values of `h1` for inputs 0x00..0xFF (for seed=0): ``` 00510030 1051004A 205104E4 305104FE 40510498 50510932 6051094C 70510966 80510D80...
> I don't really know any C, so I couldn't give you the C equivalent here For modern GCC/clang (and icc/icx), I think, it [translates](https://godbolt.org/z/nqroc7z31) rather straightforwardly: ```c++ typedef uint32_t...
Note that `bjhash128(uvec4(counter,0,0,0)).y` is *much* better - it fails at 16GB (*any* uint32->whatever hash must fail at 32GB or earlier, due to input repeating). And `bjhash128(uvec4(0,counter,0,0)).y` fails at 8GB, so...
Constants being so similar ``` D30332D3 050C2D35 0D0C2D35 E8F649A9 6AF649A9 AAF649A9 EAF649A9 21F0AAAD ``` looks a bit suspicious. Edit: just realized constants are from https://github.com/skeeto/hash-prospector/issues/19.
It just how the constants interact, e.g. ```c++ p *= uvec4(0xEAF649A9U, 0x6AF649A9U, 0x050C2D35U, 0xAAF649A9U); p ^= p.yzwx ^ p.zwxy; ``` is the same as ```c++ p = uvec4(p.x * 0xEAF649A9U,...
This question probably belongs to earlier commit, but still. How robust is this in face of non-monotonic wall clock? E.g. on my machine the clock is out of whack, and...