You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					81 lines
				
				2.3 KiB
			
		
		
			
		
	
	
					81 lines
				
				2.3 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								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))
							 |