Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This switches OpenMalaria to the PCG 64 generator (XSL RR 128 64 variant, aka
pcg64
). This generator has less predictable output than previously-used Mersenne Twister algorithm and performs extremely well in all RNG analysis algorithms I have seen. It is also faster and uses much less memory.This change also switches to the
boost::random
distribution algorithms which are easier to work with. (We don't use C++11 distribution algorithms since the standard provides no guarantee of reproducibility of results, and the libstdc++ implementation is slower than Boost.) The disadvantage of this is that a Boost update may adjust random algorithm output (see https://stackoverflow.com/questions/56384275/known-differences-in-boost-random-output-from-1-58-to-1-67).