Package: randomgen
RandomGenThis package contains additional bit generators for NumPy'sGeneratorand anExtendedGeneratorexposing methods not inGenerator.Continuous IntegrationCoverageLatest ReleaseLicenseThis is a library and generic interface for alternative random
generators in Python and NumPy.New FeaturesThe thedevelopment documentationfor the latest features,
or thestable documentationfor the latest released features.WARNINGSChanges in v1.24GeneratorandRandomStatewereremovedin 1.23.0.Changes from 1.18 to 1.19GeneratorandRandomStatehave been officially deprecated in 1.19, and will
warn with aFutureWarningabout their removal. They will also receive virtually
no maintenance. It is now time to move to NumPy'snp.random.Generatorwhich has
features not inrandomstate.Generatorand is maintained more actively.A few distributions that are not present innp.random.Generatorhave been moved
torandomstate.ExtendedGenerator:multivariate_normal: which supports broadcastinguintegers: fast 32 and 64-bit uniform integerscomplex_normal: scalar complex normalsThere are no plans to remove any of the bit generators, e.g.,AESCounter,ThreeFry, orPCG64.Changes from 1.16 to 1.18There are many changes between v1.16.x and v1.18.x. These reflect API
decision taken in conjunction with NumPy in preparation of the core
ofrandomgenbeing used as the preferred random number generator in
NumPy. These all issueDeprecationWarnings except forBasicRNG.generatorwhich raisesNotImplementedError. The C-API has also changed to reflect
the preferred naming the underlying Pseudo-RNGs, which are now known as
bit generators (orBigGenerators).Future PlansAdd some distributions that are not supported in NumPy.OngoingAdd any interesting bit generators I come across.Recent additions include the DXSM and CM-DXSM variants of PCG64 and the LXM generator.Included Pseudo Random Number GeneratorsThis module includes a number of alternative random
number generators in addition to the MT19937 that is included in NumPy.
The RNGs include:Cryptographic cipher-based random number generator based on AES, ChaCha20, HC128 and Speck128.MT19937,
the NumPy rngdSFMTa
SSE2-aware version of the MT19937 generator that is especially fast at
generating doublesxoroshiro128+,xorshift1024*φ,xoshiro256**,
andxoshiro512**PCG64ThreeFry and Philox fromRandom123Other cryptographic-based generators:AESCounter,SPECK128,ChaCha, andHC128.Hardware (non-reproducible) random number generator on AMD64 usingRDRAND.Chaotic PRNGS: Small-Fast Chaotic (SFC64) and Jenkin's Small-Fast (JSF).StatusBuilds and passes all tests on:Linux 32/64 bit, Python 3.7, 3.8, 3.9, 3.10Linux (ARM/ARM64), Python 3.8OSX 64-bit, Python 3.9Windows 32/64 bit, Python 3.7, 3.8, 3.9, 3.10FreeBSD 64-bitVersionThe package version matches the latest version of NumPy when the package
is released.DocumentationDocumentation for the latest release is available onmy GitHub pages. Documentation for
the latest commit (unreleased) is available underdevel.RequirementsBuilding requires:Python (3.6, 3.7, 3.8, 3.9, 3.10)NumPy (1.17+)Cython (0.29+)tempita (0.5+), if not provided by CythonTesting requires pytest (6+).Note:it might work with other versions but only tested with these
versions.Development and TestingAll development has been on 64-bit Linux, and it is regularly tested on
Azure (Linux-AMD64, Window, and OSX) and Cirrus (FreeBSD and Linux-ARM).Tests are in place for all RNGs. The MT19937 is tested against
NumPy's implementation for identical results. It also passes NumPy's
test suite where still relevant.InstallingEither install from PyPi usingpython-mpipinstallrandomgenor, if you want the latest version,python-mpipinstallgit+https://github.com/bashtage/randomgen.gitor from a cloned repo,python-mpipinstall.If you use conda, you can install using conda forgecondainstall-cconda-forgerandomgenSSE2dSFTMmakes use of SSE2 by default.  If you have a very old computer
or are building on non-x86, you can install using:exportRANDOMGEN_NO_SSE2=1python-mpipinstall.WindowsEither use a binary installer, or if building from scratch, use
Python 3.6/3.7 with Visual Studio 2015 Build Toolx.LicenseDual: BSD 3-Clause and NCSA, plus sub licenses for components.