This is a feature and bug-fix release. The key new features are:
- **Deprecated** `Generator` and `RandomState` since these are both available in NumPy.
- Added `ExtendedGenerator` which contains features not in `numpy.random.Generator`.
- Added `UserBitGenerator` which allows bit generators to be written in Python or numba.
- New bit generators:
- Added `PCG64DXSM` which is is the 2.0 version of PCG64 and will likely become the default bit generator in NumPy in the near future.
- Added `EFIIX64` (a.k.a. `efiix64x48`) which is both fast and high-quality.
- Added `SFC64` which supports generating streams using distinct Weyl constants.
- Added `LCG128Mix` which supports setting the LCG multiplier, changing the output function (including support for user-defined output functions) and pre- or post-state update generation.
- Added `LXM` which generates variates using a mix of two simple, but flawed generators: a Xorshift and a 64-bit LCG. This has been proposed for including in Java.
- Tested all bit generators using at least 1TB in PractRand in different configurations. This is WIP and all generators will be tested to at least 4TB.
- Additional features and fixes:
- Added support for the `dxsm` and `dxsm-128` variants of `PCG64`. The `dxsm` variant is the official PCG 2.0 generator.
- Added support for broadcasting inputs in `ExtendedGenerator.multivariate_normal`.
- Added support for the `++` variant of `Xoroshiro128`.
- Fixed a bug the produced incorrect results in `randomgen.mt19937.MT19937.jumped`.
- Fixed multiple bugs in `Generator` that were fixed in `numpy.random.Generator`.