This is a feature, bug fix, and code clean-up release. This release adds two new bit generators, Tyche and Squares.
- Fix a small packaging error in 2.1.0 that skipped two files used in tests
- Added the
Tyche
PRNG of Neves and Araujo. Supports two variants. One is the original implementation in the 2012 paper. The second implementation matches the version inOpenRand
. - Added the
Squares
PRNG of Widynski. Supports two variants. The default uses 5 rounds of the middle square algorithm and outputs a 64-bit value. Ifvariant=32
, then 4 rounds are used but only 32 bits returned. - Added the helper function
squares.generate_keys
forSquares
. This function can be used to pre-generate keys for use withSquares
. - Fixed a bug in
LCG128Mix
that resulted ininc
not being correctly set when initialized without a user-providedinc
. - Refactored the broadcasting helper functions out of
randomgen.common
torandomgen.broadcast
. Tests have been added and some edge case bugs have been found and fixed. - Improve test coverage.
- Additional code clean-up.