Skip to content

About

QuarkBurst is the fast constrained 64-bit PRNG.

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

QuarkBurst

QuarkBurst

QuarkBurst (as a proprietary, source-available product of Eightomic) is the fast constrained 64-bit PRNG (non-cryptographic) that has a period of at least 2⁶⁴ (from a Weyl sequence), excellent statistical randomness quality test results (single-instance bitstreams passed Dieharder 3.31.1 dieharder -Y 1 -a -g 200 -k 2, NIST STS 2.1.2 assess 1000000 with 100 bitstreams, PractRand 0.96 RNG_test stdin -tlmin 1KB -tlmax 32TB -te 0 -tf 1, SmokeRand 0.47 smokerand full stdin64 and TestU01 1.2.3 BigCrush), low-footprint implementation (efficient memory usage and small code size), no auxiliary array allocations, no comparison/division/modulus/multiplication operators, reversibility (state rewinding), ultra-fast speed (relative to the aforementioned constraints) and up to 2⁶⁴ distinct parallel bitstreams (each with possible subtle cross-bitstream statistical correlations) that each have non-probabilistic full-state overlap avoidance with each other for a period of at least 2⁶⁴ (when each a state variable is seeded with a thread ID integer and the remaining state variables are seeded with 0).

QuarkBurst is implemented in C (requiring the stdint.h header to define an unsigned integral type for a 64-bit uint64_t).

quarkburst.c

The quarkburst function modifies the state in a struct quarkburst_state instance to generate a deterministic pseudorandom uint64_t integer (assigned to the c state variable).

Each state variable (a, b and c) in a struct quarkburst_state instance must be seeded before generating a deterministic quarkburst bitstream (that must discard the first 3 quarkburst results as a state warmup).

Each of the following results log the fastest process execution speed (in milliseconds) among several repetitions of a speed benchmark (with gcc -O0 from an AMD A4-9120C) that generates 100 million pseudorandom uint64_t integers in a blocking #pragma GCC unroll 0 loop.

                       Elapsed   Mixing/Output/State Bits

quarkburst             799ms     192
biski64                944ms     384
sfc64                  1052ms    384

About

QuarkBurst is the fast constrained 64-bit PRNG.

Resources

Stars

1 star

Watchers

1 watching

Forks

Contributors

Languages