o
    g
                     @   s   d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZ d dlmZ eeeee
dZdd
eee B fddZd	efddZd	efddZdS )   )BitGenerator)RandomState)Philox)PCG64	PCG64DXSM)SFC64)	Generator)MT19937)r	   r   r   r   r   r	   bit_generatorc                 C   s:   t | tr
| }| S | tv rt|  }| S tt| d )a(  
    Pickling helper function that returns a bit generator object

    Parameters
    ----------
    bit_generator : type[BitGenerator] or str
        BitGenerator class or string containing the name of the BitGenerator

    Returns
    -------
    BitGenerator
        BitGenerator instance
    z$ is not a known BitGenerator module.)
isinstancetypeBitGenerators
ValueErrorstr)r
   bit_gen_class r   K/var/www/visachat/venv/lib/python3.10/site-packages/numpy/random/_pickle.py__bit_generator_ctor   s   

r   c                 C      t | tr	t| S t|| S )a  
    Pickling helper function that returns a Generator object

    Parameters
    ----------
    bit_generator_name : str or BitGenerator
        String containing the core BitGenerator's name or a
        BitGenerator instance
    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
    )r   r   r   bit_generator_namebit_generator_ctorr   r   r   __generator_ctor,   s   
r   c                 C   r   )a  
    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
    )r   r   r   r   r   r   r   __randomstate_ctorE   s   
r   N)r
   r   mtrandr   _philoxr   _pcg64r   r   _sfc64r   
_generatorr   _mt19937r	   r   r   r   r   r   r   r   r   r   r   <module>   s(    
