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 in `OpenRand`.
- 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. If `variant=32`, then 4 rounds are used but only 32 bits returned.
- Added the helper function `squares.generate_keys` for `Squares`. This function can be used to pre-generate keys for use with `Squares`.
- Fixed a bug in `LCG128Mix` that resulted in `inc` not being correctly set when initialized without a user-provided `inc`.
- Refactored the broadcasting helper functions out of `randomgen.common` to `randomgen.broadcast`. Tests have been added and some edge case bugs have been found and fixed.
- Improve test coverage.
- Additional code clean-up.