| from .mtrand import RandomState |
| from ._philox import Philox |
| from ._pcg64 import PCG64, PCG64DXSM |
| from ._sfc64 import SFC64 |
| |
| from ._generator import Generator |
| from ._mt19937 import MT19937 |
| |
| BitGenerators = {'MT19937': MT19937, |
| 'PCG64': PCG64, |
| 'PCG64DXSM': PCG64DXSM, |
| 'Philox': Philox, |
| 'SFC64': SFC64, |
| } |
| |
| |
| def __bit_generator_ctor(bit_generator_name='MT19937'): |
| """ |
| Pickling helper function that returns a bit generator object |
| |
| Parameters |
| ---------- |
| bit_generator_name : str |
| String containing the name of the BitGenerator |
| |
| Returns |
| ------- |
| bit_generator : BitGenerator |
| BitGenerator instance |
| """ |
| if bit_generator_name in BitGenerators: |
| bit_generator = BitGenerators[bit_generator_name] |
| else: |
| raise ValueError(str(bit_generator_name) + ' is not a known ' |
| 'BitGenerator module.') |
| |
| return bit_generator() |
| |
| |
| def __generator_ctor(bit_generator_name="MT19937", |
| bit_generator_ctor=__bit_generator_ctor): |
| """ |
| Pickling helper function that returns a Generator object |
| |
| Parameters |
| ---------- |
| bit_generator_name : str |
| String containing the core BitGenerator's name |
| bit_generator_ctor : callable, optional |
| Callable function that takes bit_generator_name as its only argument |
| and returns an instantized bit generator. |
| |
| Returns |
| ------- |
| rg : Generator |
| Generator using the named core BitGenerator |
| """ |
| return Generator(bit_generator_ctor(bit_generator_name)) |
| |
| |
| def __randomstate_ctor(bit_generator_name="MT19937", |
| bit_generator_ctor=__bit_generator_ctor): |
| """ |
| Pickling helper function that returns a legacy RandomState-like object |
| |
| Parameters |
| ---------- |
| bit_generator_name : str |
| String containing the core BitGenerator's name |
| bit_generator_ctor : callable, optional |
| Callable function that takes bit_generator_name as its only argument |
| and returns an instantized bit generator. |
| |
| Returns |
| ------- |
| rs : RandomState |
| Legacy RandomState using the named core BitGenerator |
| """ |
| |
| return RandomState(bit_generator_ctor(bit_generator_name)) |