diff options
| author | Frank Denis <124872+jedisct1@users.noreply.github.com> | 2021-07-08 23:19:49 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-08 23:19:49 +0200 |
| commit | b4b90af4e0a9b15a940d836d275ac9dc50198217 (patch) | |
| tree | 44cb548fe91d52662d06c5a00f0dd75ebf71dd74 /src/stage1/range_set.cpp | |
| parent | 1f0b77b3b88112ef458f62c23df72003c843e7cc (diff) | |
| download | zig-b4b90af4e0a9b15a940d836d275ac9dc50198217.tar.gz zig-b4b90af4e0a9b15a940d836d275ac9dc50198217.zip | |
Switch rand.DefaultPrng to Xoshiro256++ (#9301)
Xoroshiro128+ is the current default non-cryptographic random
number generator.
This algorithm was designed to generate floating-point numbers, by
only using the top 53 bits. Lower bits have a significant bias, that
contradicts the documented properties for `rand.DefaultPrng`. This
also has implications on everything using `Random.fill()`, including
the way we generate random floating-point numbers.
In addition, Xoroshiro128+ has known issues. See for example:
- https://lemire.me/blog/2017/08/22/cracking-random-number-generators-xoroshiro128/
- https://www.pcg-random.org/posts/xoroshiro-fails-truncated.html
Xoshiro256++ addresses these issues, while remaining very fast.
Diffstat (limited to 'src/stage1/range_set.cpp')
0 files changed, 0 insertions, 0 deletions
