Numpy-compatible bit generators and add some random variate distributions missing from NumPy.
This is a bug-fix release with one fixed issue:
RDRAND
to retry on failures with pause between retries. Add a parameter retry
which allows the number of retries to be set. It defaults to the Intel recommended value of 10. Also sets an exception when the number of retries has been exhausted (very unlikely). See the RDRAND
docstring with unique considerations when using RDRAND
that do not occur with deterministic PRNGs.This is a minor release with two new features:
Romu
which is among the fastest available bit generators.SFC64.weyl_increments
to simplify generating increments for use in parallel applications of SFC64
.This is a feature and bug-fix release. The key new features are:
Generator
and RandomState
since these are both available in NumPy.ExtendedGenerator
which contains features not in numpy.random.Generator
.UserBitGenerator
which allows bit generators to be written in Python or numba.PCG64DXSM
which is is the 2.0 version of PCG64 and will likely become the default bit generator in NumPy in the near future.EFIIX64
(a.k.a. efiix64x48
) which is both fast and high-quality.SFC64
which supports generating streams using distinct Weyl constants.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.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.dxsm
and dxsm-128
variants of PCG64
. The dxsm
variant is the official PCG 2.0 generator.ExtendedGenerator.multivariate_normal
.++
variant of Xoroshiro128
.randomgen.mt19937.MT19937.jumped
.Generator
that were fixed in numpy.random.Generator
.This release brings many breaking changes. Most of these have been implemented using DeprecationWarnings. This has been done to bring randomgen in-line with the API changes of the version going into NumPy.
Change in 1.18.1:
Changes in 1.18:
This release brings many breaking changes. Most of these have been implemented using DeprecationWarnings. This has been done to bring randomgen in-line with the API changes of the version going into NumPy.
This is a bug fix and performance fix:
PCG32
and PCG64
.PCG64
on Windows.DSFMT.jump
and DSFMT.jumped
.RandomState
nan
values in rare circumstances (about 1 in 10E53)closed
to randint
which changes sampling from the half-open interval [low, high)
to the closed interval [low, high]
.random_integers
that could lead to valid values being treated as invalid.This is a feature release that is closely synchronized with the copy in NEP-19:
New features include:
RandomGenerator.randint
when using uint64
or int64
.RandomGenerator.brng
to access the basic RNG.RandomGenerator.choice
.RandomGenerator.choice
when not replacing. The gains can be very large (1000x or more) when the input array is large but the sample size is small.RandomGenerator.multinomial
.RandomGenerator.zipf
.RandomGenerator.hypergeometric
.RandomGenerator.multinomial
.This is a release that restores Python 2.7 compatibility.
Updated Xoroshiro120 to use AUthor's latest parameterization
Closely synchronized with the version of randomgen being integrated into NumPy, including removing:
random_raw
, which have been moved to the individual basic RNGsrandom_uintegers
, which can be replaced with randint
.Added RandomState
as a clone of NumPy's RandomState.
Removed LegacyGenerator
since this is nolonger needed
Fixed many small bugs, including in cffi and ctype interfaces