Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
the_othernet
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
7 ms
·
1.
▲
biski64 – Fast C PRNG (.42ns), 2^64 Period, BigCrush/PractRand Pass
(github.com)
3 points
by
the_othernet
1y ago
|
0 comments
2.
▲
by
the_othernet
1y ago
NOTE: I found a counterexample using Z3 Solver in which fast_loop maps to itself (0x5050a1e1d03b6432). A new version will be released with fast_loop and slow_loop as simple Weyl Sequences.
3.
▲
by
the_othernet
1y ago
What a great set of feedback. Thank you! I'll look at it as an acton item list. And you are so right about being just one month in. Every time I think I'm starting to understand what's going on here, I realize the maze just
4.
▲
by
the_othernet
1y ago
Using only 32bit fast_loop and mix (for 64bits of state) passes PractRand with 64bit output up to 256GB with only one unusual. That's about a 100 bit LCG equivalent? I did have to alter the output to be "(GR * mix) + fast_loop&quo
5.
▲
by
the_othernet
1y ago
Added the Romu variants to benchmark.c. Here are the current results: LoopMix128 ns/call: 0.380 ns xoroshiro128++ ns/call: 0.757 ns wyrand ns/call: 0.379 ns PCG64 ns/call: 0.757 ns RomuQuad ns/
6.
▲
by
the_othernet
1y ago
Using only 32bit fast_loop and mix (for 64bits of state) passes PractRand up to 256GB with only one unusual. That's about a 90 bit state LCG equivalent? I did have to alter the output to be "(GR * mix) + fast_loop" and chang
7.
▲
by
the_othernet
1y ago
Super useful link. Thank you!
8.
▲
by
the_othernet
1y ago
I'll have to re-optimize the rotations for the smaller state size, but I will do it and report here.
9.
▲
by
the_othernet
1y ago
I wasn't able to analyze the cyclic behavior of the mix directly, but for the purpose of minimal period only fast_loop and slow_loop are used (as a 128bit counter).
10.
▲
by
the_othernet
1y ago
Hello! Awesome work on your hashing by the way! When iterating I first tried to make fast_loop as random as possible by trying all possible rotational values and then having each option tested in PractRand 1000 times from 256M to 8GB. The
11.
▲
by
the_othernet
1y ago
I have an offline poker app, and a user asked me what the algorithm was to generate the random numbers. That was a month ago. :)
12.
▲
by
the_othernet
1y ago
Just added to benchmark.c in the Github. Performance is comparable to xoroshiro128++.
13.
▲
by
the_othernet
1y ago
I just added PGC64 to benchmark.c in the Github. PCG64 speed looks to be about the same as xoroshiro128++.
14.
▲
Show HN: LoopMix128 – Fast C PRNG (.46ns), 2^128 Period, BigCrush/PractRand Pass
(github.com)
76 points
by
the_othernet
1y ago
|
34 comments
15.
▲
Show HN: DualMix128 – A fast, simple PRNG passing PractRand (32TB) and BigCrush
(github.com)
5 points
by
the_othernet
1y ago
|
1 comments