U
    ¿|eƒ  ã                   @   s  d Z ddlZddlmZ ddlmZmZ ddlm	Z	m
Z
 ddlmZmZ ddlmZ ddlmZ dd	lmZmZ dd
lmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 ddl6m7Z7 dwdd„Z8dd„ Z9dd„ Z:eej;dƒdej<dfdd„ƒZ=eej;dƒdxdd„ƒZ>eej;dƒdydd„ƒZ?eej;dƒdej@fdd„ƒZAeej;d ƒdej@d!fd"d#„ƒZBeej;d$ƒdej@fd%d&„ƒZCeej;d'ƒdej@fd(d)„ƒZDeej;d*ƒdzd-d.„ƒZEeej;d/ƒd{d0d1„ƒZFeej;d2ƒd|d3d4„ƒZGeej;d5ƒd}d6d7„ƒZHeej;d8ƒd~d9d:„ƒZIeej;d;ƒdd<d=„ƒZJeej;d>ƒd€d?d@„ƒZKeej;dAƒd�dBdC„ƒZLeej;dDƒd‚dEdF„ƒZMeej;dGƒdƒdHdI„ƒZNeej;dJƒd„dKdL„ƒZOeej;dMƒd…dNdO„ƒZPeej;dPƒd†dQdR„ƒZQeej;dSƒd‡dTdU„ƒZReej;dVƒdˆdWdX„ƒZSeej;dYƒd‰dZd[„ƒZTeej;d\ƒdŠd]d^„ƒZUeej;d_ƒd‹d`da„ƒZVeej;dbƒdŒdcdd„ƒZWeej;deƒd�dfdg„ƒZXeej;dhƒdŽdidj„ƒZYeej;dkƒd�dldm„ƒZZeej;dnƒd�dodp„ƒZ[eej;dqƒd‘drds„ƒZ\eej;dtƒd’dudv„ƒZ]dS )“z;
Implementation of method overloads for Generator objects.
é    N)Útypes)Úoverload_methodÚregister_jitable)Úas_dtypeÚ
from_dtype)Ú
next_floatÚnext_double)Úis_nonelike)ÚTypingError)ÚTupleÚUniTuple)!Ú!random_standard_exponential_inv_fÚrandom_standard_exponential_invÚrandom_standard_exponentialÚrandom_standard_normal_fÚrandom_standard_gammaÚrandom_standard_normalÚrandom_uniformÚrandom_standard_exponential_fÚrandom_standard_gamma_fÚrandom_normalÚrandom_exponentialÚrandom_gammaÚrandom_betaÚrandom_powerÚrandom_fÚrandom_chisquareÚrandom_standard_cauchyÚrandom_paretoÚrandom_weibullÚrandom_laplaceÚrandom_logisticÚrandom_lognormalÚrandom_rayleighÚrandom_standard_tÚrandom_waldÚrandom_geometricÚrandom_zipfÚrandom_triangularÚrandom_poissonÚrandom_negative_binomialÚrandom_logseriesÚrandom_noncentral_chisquareÚrandom_noncentral_f)Úrandom_methodsú	the givenc                 C   s|   t |tjƒr|j}|}t |tƒr0tt |¡ƒ}nt |tjƒrH|}t	|ƒ}|tj
tjfkr`tdƒ‚|tj
krp| }n|}||fS )a  
        Most of the standard NumPy distributions that accept dtype argument
        only support either np.float32 or np.float64 as dtypes.

        This is a helper function that helps Numba select the proper underlying
        implementation according to provided dtype.
    zLArgument dtype is not one of the expected type(s):  np.float32 or np.float64)Ú
isinstancer   ÚOmittedÚvalueÚtyper   ÚnpÚdtypeÚNumberClassr   Úfloat32Úfloat64r
   )Zfunc_32Zfunc_64r5   Z	dist_nameÚnp_dtÚnb_dtZ	next_func© r;   ú^/var/www/website-v5/atlas_env/lib/python3.8/site-packages/numba/np/random/generator_methods.pyÚ_get_proper_func   s    

r=   c                 C   sF   t t| tƒot| jtjƒt| tƒo*| jdkt| tjƒgƒsBtdƒ‚d S )Nr   zdArgument size is not one of the expected type(s):  an integer, an empty tuple or a tuple of integers)	Úanyr0   r   r5   r   ÚIntegerr   Úcountr
   )Úsizer;   r;   r<   Ú
check_size;   s    
ýrB   c                    sZ   t ˆ tjƒrˆ j‰ t |ttfƒs&|g}t‡ fdd„|D ƒƒsVtd|› d�d|› � ƒ‚dS )z\
    Check if given object is one of the provided types.
    If not raises an TypeError
    c                    s   g | ]}t ˆ |ƒ‘qS r;   )r0   )Ú.0Ú_type©Úobjr;   r<   Ú
<listcomp>P   s     zcheck_types.<locals>.<listcomp>z	Argument z is not one of thez expected type(s): N)r0   r   r1   r2   ÚlistÚtupler>   r
   )rF   Ú	type_listÚarg_namer;   rE   r<   Úcheck_typesE   s    ÿrL   ÚintegersFc           
         s^  t |tjtjttgdƒ t |tjtjttgdƒ t |tjtgdƒ t|tjƒrT|j}t|tjƒrf|j}t|t	ƒr„t
t |¡ƒ}|}n"t|tjƒrž|}t|ƒ}ntdƒ‚|tjkrÀtj‰ d‰d‰nLzt |¡}W n tk
rê   tdƒ‚Y nX ttd|j› d�ƒ‰ |j‰|j‰t|ƒ�r4d tjd	f‡ ‡‡fd
d„	}	|	S t|ƒ d tjd	f‡ ‡‡fdd„	}	|	S d S )NÚlowÚhighÚendpointz�Argument dtype is not one of the expected type(s): np.int32, np.int64, np.int16, np.int8, np.uint32, np.uint64, np.uint16, np.uint8, np.bool_éÿÿÿÿé   Zrandom_bounded_uintZ_fillFc                    s‚   t  |||ˆˆ¡ |sP||dƒ8 }||ƒ}||ƒ}|| }ˆ | j||d|ƒd S ||ƒ}||ƒ}|| }ˆ | j||d|ƒd S d S )Né   r   ©r.   Z_randint_arg_checkÚbit_generator©ÚinstrN   rO   rA   r5   rP   Úrng©Zint_funcÚlower_boundÚupper_boundr;   r<   Úimpl…   s    
 ÿz/NumPyRandomGeneratorType_integers.<locals>.implc                    sz   t  |||ˆˆ¡ |sL||dƒ8 }||ƒ}||ƒ}|| }ˆ | j||||ƒS ||ƒ}||ƒ}|| }ˆ | j||||ƒS d S )NrS   rT   rV   rY   r;   r<   r\   ˜   s    
 ÿ)rL   r   r?   ÚBooleanÚboolÚintr0   r1   r2   r3   r   r4   r5   r6   r   r
   Úbool_r.   Zrandom_bounded_bool_fillÚiinfoÚ
ValueErrorÚgetattrÚbitsÚminÚmaxr	   Úint64rB   )
rW   rN   rO   rA   r5   rP   r:   Ú_dtypeÚi_infor\   r;   rY   r<   Ú!NumPyRandomGeneratorType_integersV   sd      ÿÿ ÿÿ


ÿ
 ÿ ÿrj   Úshufflec                 C   s0   t |tjgdƒ t |ttjgdƒ ddd„}|S )NÚxÚaxisr   c                 S   s¸   |dk r||j  }||j d ks(|dk r0tdƒ‚t |d|¡}t |d ¡}tt|ƒd ddƒD ]R}t t	 
| j|¡¡}||kr‚q`||df |d< ||df ||df< |||df< q`d S )Nr   rS   z)Axis is out of bounds for the given array)r   .rQ   .)ÚndimÚ
IndexErrorr4   ÚswapaxesÚ
empty_likeÚrangeÚlenr   Úintpr.   Zrandom_intervalrU   )rW   rl   rm   ÚzÚbufÚiÚjr;   r;   r<   r\   ³   s    
ÿz.NumPyRandomGeneratorType_shuffle.<locals>.impl)r   )rL   r   ÚArrayr_   r?   ©rW   rl   rm   r\   r;   r;   r<   Ú NumPyRandomGeneratorType_shuffle®   s    
r{   Úpermutationc                    sD   t |tjtjgdƒ t |ttjgdƒ t|tjƒ‰ d‡ fdd„	}|S )Nrl   rm   r   c                    s4   ˆ rt  |¡}|  |¡ n| ¡ }| j||d� |S )N)rm   )r4   Úarangerk   Úcopy)rW   rl   rm   Únew_arr©ZIS_INTr;   r<   r\   Ò   s    
z2NumPyRandomGeneratorType_permutation.<locals>.impl)r   )rL   r   ry   r?   r_   r0   rz   r;   r€   r<   Ú$NumPyRandomGeneratorType_permutationË   s
    
r�   Úrandomc                    sj   t tt|dƒ\‰ ‰t|tjƒr$|j}t|ƒrFd tj	f‡ ‡fdd„	}|S t
|ƒ d tj	f‡ fdd„	}|S d S )Nr‚   c                    s   ˆˆ | j ƒƒS ©N©rU   ©rW   rA   r5   ©Ú	dist_funcr:   r;   r<   r\   è   s    z-NumPyRandomGeneratorType_random.<locals>.implc                    s6   t j||d�}|j}t|jƒD ]}ˆ | jƒ||< q|S ©N©r5   ©r4   ÚemptyÚflatrr   rA   rU   ©rW   rA   r5   ÚoutÚout_frw   ©r‡   r;   r<   r\   î   s
    )r=   r   r   r0   r   r1   r2   r	   r4   r8   rB   ©rW   rA   r5   r\   r;   r†   r<   ÚNumPyRandomGeneratorType_randomà   s     ÿr’   Ústandard_exponentialÚzigc                    s’   t |tjtgdƒ ttt|ƒ\‰‰ttt|ƒ\‰ ‰t	|tj
ƒrD|j}t|ƒrjd tjdf‡ ‡‡fdd„	}|S t|ƒ d tjdf‡ ‡fdd„	}|S d S )NÚmethodr”   c                    s8   |dkrˆˆ | j ƒƒS |dkr,ˆˆ| j ƒƒS tdƒ‚d S )Nr”   Úinvú$Method must be either 'zig' or 'inv')rU   rb   )rW   rA   r5   r•   ©r‡   Údist_func_invr:   r;   r<   r\     s
    z;NumPyRandomGeneratorType_standard_exponential.<locals>.implc                    sp   t j||d�}|j}|dkr<t|jƒD ]}ˆ | jƒ||< q&n0|dkrdt|jƒD ]}ˆ| jƒ||< qNntdƒ‚|S )Nr‰   r”   r–   r—   )r4   r‹   rŒ   rr   rA   rU   rb   )rW   rA   r5   r•   rŽ   r�   rw   )r‡   r™   r;   r<   r\     s    )rL   r   ÚUnicodeTypeÚstrr=   r   r   r   r   r0   r1   r2   r	   r4   r8   rB   )rW   rA   r5   r•   r\   r;   r˜   r<   Ú-NumPyRandomGeneratorType_standard_exponentialø   s$    ýþrœ   Ústandard_normalc                    sh   t tt|ƒ\‰ ‰t|tjƒr"|j}t|ƒrDd tj	f‡ ‡fdd„	}|S t
|ƒ d tj	f‡ fdd„	}|S d S )Nc                    s   ˆˆ | j ƒƒS rƒ   r„   r…   r†   r;   r<   r\   /  s    z6NumPyRandomGeneratorType_standard_normal.<locals>.implc                    s6   t j||d�}|j}t|jƒD ]}ˆ | jƒ||< q|S rˆ   rŠ   r�   r�   r;   r<   r\   5  s
    )r=   r   r   r0   r   r1   r2   r	   r4   r8   rB   r‘   r;   r†   r<   Ú(NumPyRandomGeneratorType_standard_normal&  s    þrž   Ústandard_gammac                    s€   t |tjtjttgdƒ ttt|ƒ\‰ ‰t	|tj
ƒr:|j}t|ƒr\d tjf‡ ‡fdd„	}|S t|ƒ d tjf‡ fdd„	}|S d S )NÚshapec                    s   ˆˆ | j |ƒƒS rƒ   r„   )rW   r    rA   r5   r†   r;   r<   r\   J  s    z5NumPyRandomGeneratorType_standard_gamma.<locals>.implc                    s8   t j||d�}|j}t|jƒD ]}ˆ | j|ƒ||< q|S rˆ   rŠ   )rW   r    rA   r5   rŽ   r�   rw   r�   r;   r<   r\   P  s
    )rL   r   ÚFloatr?   r_   Úfloatr=   r   r   r0   r1   r2   r	   r4   r8   rB   )rW   r    rA   r5   r\   r;   r†   r<   Ú'NumPyRandomGeneratorType_standard_gamma?  s    þr£   Únormalç        ç      ð?c                 C   sr   t |tjtjttgdƒ t |tjtjttgdƒ t|tjƒrB|j}t	|ƒrXddd„}|S t
|ƒ d	dd„}|S d S )
NÚlocÚscaler¥   r¦   c                 S   s   t | j||ƒS rƒ   )r   rU   ©rW   r§   r¨   rA   r;   r;   r<   r\   c  s    z-NumPyRandomGeneratorType_normal.<locals>.implc                 S   s<   t j|t jd�}|j}t|jƒD ]}t| j||ƒ||< q |S rˆ   )r4   r‹   r8   rŒ   rr   rA   r   rU   ©rW   r§   r¨   rA   rŽ   r�   rw   r;   r;   r<   r\   i  s
    )r¥   r¦   N)r¥   r¦   N©rL   r   r¡   r?   r_   r¢   r0   r1   r2   r	   rB   ©rW   r§   r¨   rA   r\   r;   r;   r<   ÚNumPyRandomGeneratorType_normalZ  s    

r­   Úuniformc                 C   sr   t |tjtjttgdƒ t |tjtjttgdƒ t|tjƒrB|j}t	|ƒrXddd„}|S t
|ƒ d	dd„}|S d S )
NrN   rO   r¥   r¦   c                 S   s   t | j||| ƒS rƒ   )r   rU   )rW   rN   rO   rA   r;   r;   r<   r\   |  s    z.NumPyRandomGeneratorType_uniform.<locals>.implc                 S   s@   t j|t jd�}|j}t|jƒD ]}t| j||| ƒ||< q |S rˆ   )r4   r‹   r8   rŒ   rr   rA   r   rU   )rW   rN   rO   rA   rŽ   r�   rw   r;   r;   r<   r\   ‚  s
    )r¥   r¦   N)r¥   r¦   Nr«   )rW   rN   rO   rA   r\   r;   r;   r<   Ú NumPyRandomGeneratorType_uniforms  s    

r¯   Úexponentialc                 C   sZ   t |tjtjttgdƒ t|tjƒr*|j}t	|ƒr@ddd„}|S t
|ƒ ddd„}|S d S )Nr¨   r¦   c                 S   s   t | j|ƒS rƒ   )r   rU   ©rW   r¨   rA   r;   r;   r<   r\   “  s    z2NumPyRandomGeneratorType_exponential.<locals>.implc                 S   s:   t j|t jd�}|j}t|jƒD ]}t| j|ƒ||< q |S rˆ   )r4   r‹   r8   rŒ   rr   rA   r   rU   ©rW   r¨   rA   rŽ   r�   rw   r;   r;   r<   r\   ™  s
    )r¦   N)r¦   Nr«   ©rW   r¨   rA   r\   r;   r;   r<   Ú$NumPyRandomGeneratorType_exponentialŒ  s    

r´   Úgammac                 C   sr   t |tjtjttgdƒ t |tjtjttgdƒ t|tjƒrB|j}t	|ƒrXddd„}|S t
|ƒ ddd„}|S d S )	Nr    r¨   r¦   c                 S   s   t | j||ƒS rƒ   )r   rU   )rW   r    r¨   rA   r;   r;   r<   r\   «  s    z,NumPyRandomGeneratorType_gamma.<locals>.implc                 S   s<   t j|t jd�}|j}t|jƒD ]}t| j||ƒ||< q |S rˆ   )r4   r‹   r8   rŒ   rr   rA   r   rU   )rW   r    r¨   rA   rŽ   r�   rw   r;   r;   r<   r\   ±  s
    )r¦   N)r¦   Nr«   )rW   r    r¨   rA   r\   r;   r;   r<   ÚNumPyRandomGeneratorType_gamma£  s    

r¶   Úbetac                 C   sr   t |tjtjttgdƒ t |tjtjttgdƒ t|tjƒrB|j}t	|ƒrXddd„}|S t
|ƒ ddd„}|S d S )NÚaÚbc                 S   s   t | j||ƒS rƒ   )r   rU   )rW   r¸   r¹   rA   r;   r;   r<   r\   Ã  s    z+NumPyRandomGeneratorType_beta.<locals>.implc                 S   s6   t  |¡}|j}t|jƒD ]}t| j||ƒ||< q|S rƒ   )r4   r‹   rŒ   rr   rA   r   rU   )rW   r¸   r¹   rA   rŽ   r�   rw   r;   r;   r<   r\   É  s
    
)N)Nr«   )rW   r¸   r¹   rA   r\   r;   r;   r<   ÚNumPyRandomGeneratorType_beta»  s    

rº   Úfc                 C   sr   t |tjtjttgdƒ t |tjtjttgdƒ t|tjƒrB|j}t	|ƒrXddd„}|S t
|ƒ ddd„}|S d S )NÚdfnumÚdfdenc                 S   s   t | j||ƒS rƒ   )r   rU   )rW   r¼   r½   rA   r;   r;   r<   r\   Û  s    z(NumPyRandomGeneratorType_f.<locals>.implc                 S   s6   t  |¡}|j}t|jƒD ]}t| j||ƒ||< q|S rƒ   )r4   r‹   rŒ   rr   rA   r   rU   )rW   r¼   r½   rA   rŽ   r�   rw   r;   r;   r<   r\   á  s
    
)N)Nr«   )rW   r¼   r½   rA   r\   r;   r;   r<   ÚNumPyRandomGeneratorType_fÓ  s    

r¾   Ú	chisquarec                 C   sZ   t |tjtjttgdƒ t|tjƒr*|j}t	|ƒr@ddd„}|S t
|ƒ ddd„}|S d S )NÚdfc                 S   s   t | j|ƒS rƒ   )r   rU   ©rW   rÀ   rA   r;   r;   r<   r\   ò  s    z0NumPyRandomGeneratorType_chisquare.<locals>.implc                 S   s4   t  |¡}|j}t|jƒD ]}t| j|ƒ||< q|S rƒ   )r4   r‹   rŒ   rr   rA   r   rU   ©rW   rÀ   rA   rŽ   r�   rw   r;   r;   r<   r\   ø  s
    
)N)Nr«   ©rW   rÀ   rA   r\   r;   r;   r<   Ú"NumPyRandomGeneratorType_chisquareë  s    

rÄ   Ústandard_cauchyc                 C   sB   t |tjƒr|j}t|ƒr(ddd„}|S t|ƒ ddd„}|S d S )Nc                 S   s
   t | jƒS rƒ   )r   rU   )rW   rA   r;   r;   r<   r\     s    z6NumPyRandomGeneratorType_standard_cauchy.<locals>.implc                 S   s2   t  |¡}|j}t|jƒD ]}t| jƒ||< q|S rƒ   )r4   r‹   rŒ   rr   rA   r   rU   )rW   rA   rŽ   r�   rw   r;   r;   r<   r\     s
    
)N)N)r0   r   r1   r2   r	   rB   )rW   rA   r\   r;   r;   r<   Ú(NumPyRandomGeneratorType_standard_cauchy  s    

rÆ   Úparetoc                 C   sZ   t |tjtjttgdƒ t|tjƒr*|j}t	|ƒr@ddd„}|S t
|ƒ ddd„}|S d S )Nr¸   c                 S   s   t | j|ƒS rƒ   )r   rU   ©rW   r¸   rA   r;   r;   r<   r\     s    z-NumPyRandomGeneratorType_pareto.<locals>.implc                 S   s4   t  |¡}|j}t|jƒD ]}t| j|ƒ||< q|S rƒ   )r4   r‹   rŒ   rr   rA   r   rU   ©rW   r¸   rA   rŽ   r�   rw   r;   r;   r<   r\   $  s
    
)N)Nr«   ©rW   r¸   rA   r\   r;   r;   r<   ÚNumPyRandomGeneratorType_pareto  s    

rË   Úweibullc                 C   sZ   t |tjtjttgdƒ t|tjƒr*|j}t	|ƒr@ddd„}|S t
|ƒ ddd„}|S d S )Nr¸   c                 S   s   t | j|ƒS rƒ   )r   rU   rÈ   r;   r;   r<   r\   4  s    z.NumPyRandomGeneratorType_weibull.<locals>.implc                 S   s4   t  |¡}|j}t|jƒD ]}t| j|ƒ||< q|S rƒ   )r4   r‹   rŒ   rr   rA   r   rU   rÉ   r;   r;   r<   r\   :  s
    
)N)Nr«   rÊ   r;   r;   r<   Ú NumPyRandomGeneratorType_weibull-  s    

rÍ   Úpowerc                 C   sZ   t |tjtjttgdƒ t|tjƒr*|j}t	|ƒr@ddd„}|S t
|ƒ ddd„}|S d S )Nr¸   c                 S   s   t | j|ƒS rƒ   )r   rU   rÈ   r;   r;   r<   r\   J  s    z,NumPyRandomGeneratorType_power.<locals>.implc                 S   s4   t  |¡}|j}t|jƒD ]}t| j|ƒ||< q|S rƒ   )r4   r‹   rŒ   rr   rA   r   rU   rÉ   r;   r;   r<   r\   P  s
    
)N)Nr«   rÊ   r;   r;   r<   ÚNumPyRandomGeneratorType_powerC  s    

rÏ   Úlaplacec                 C   sr   t |tjtjttgdƒ t |tjtjttgdƒ t|tjƒrB|j}t	|ƒrXddd„}|S t
|ƒ d	dd„}|S d S )
Nr§   r¨   r¥   r¦   c                 S   s   t | j||ƒS rƒ   )r    rU   r©   r;   r;   r<   r\   a  s    z.NumPyRandomGeneratorType_laplace.<locals>.implc                 S   s6   t  |¡}|j}t|jƒD ]}t| j||ƒ||< q|S rƒ   )r4   r‹   rŒ   rr   rA   r    rU   rª   r;   r;   r<   r\   g  s
    
)r¥   r¦   N)r¥   r¦   Nr«   r¬   r;   r;   r<   Ú NumPyRandomGeneratorType_laplaceY  s    

rÑ   Úlogisticc                 C   sr   t |tjtjttgdƒ t |tjtjttgdƒ t|tjƒrB|j}t	|ƒrXddd„}|S t
|ƒ d	dd„}|S d S )
Nr§   r¨   r¥   r¦   c                 S   s   t | j||ƒS rƒ   )r!   rU   r©   r;   r;   r<   r\   x  s    z/NumPyRandomGeneratorType_logistic.<locals>.implc                 S   s6   t  |¡}|j}t|jƒD ]}t| j||ƒ||< q|S rƒ   )r4   r‹   rŒ   rr   rA   r!   rU   rª   r;   r;   r<   r\   ~  s
    
)r¥   r¦   N)r¥   r¦   Nr«   r¬   r;   r;   r<   Ú!NumPyRandomGeneratorType_logisticp  s    

rÓ   Ú	lognormalc                 C   sr   t |tjtjttgdƒ t |tjtjttgdƒ t|tjƒrB|j}t	|ƒrXddd„}|S t
|ƒ d	dd„}|S d S )
NÚmeanÚsigmar¥   r¦   c                 S   s   t | j||ƒS rƒ   )r"   rU   )rW   rÕ   rÖ   rA   r;   r;   r<   r\   �  s    z0NumPyRandomGeneratorType_lognormal.<locals>.implc                 S   s6   t  |¡}|j}t|jƒD ]}t| j||ƒ||< q|S rƒ   )r4   r‹   rŒ   rr   rA   r"   rU   )rW   rÕ   rÖ   rA   rŽ   r�   rw   r;   r;   r<   r\   •  s
    
)r¥   r¦   N)r¥   r¦   Nr«   )rW   rÕ   rÖ   rA   r\   r;   r;   r<   Ú"NumPyRandomGeneratorType_lognormal‡  s    

r×   Úrayleighc                 C   sZ   t |tjtjttgdƒ t|tjƒr*|j}t	|ƒr@ddd„}|S t
|ƒ ddd„}|S d S )Nr¨   r¦   c                 S   s   t | j|ƒS rƒ   )r#   rU   r±   r;   r;   r<   r\   ¥  s    z/NumPyRandomGeneratorType_rayleigh.<locals>.implc                 S   s4   t  |¡}|j}t|jƒD ]}t| j|ƒ||< q|S rƒ   )r4   r‹   rŒ   rr   rA   r#   rU   r²   r;   r;   r<   r\   «  s
    
)r¦   N)r¦   Nr«   r³   r;   r;   r<   Ú!NumPyRandomGeneratorType_rayleighž  s    

rÙ   Ú
standard_tc                 C   sZ   t |tjtjttgdƒ t|tjƒr*|j}t	|ƒr@ddd„}|S t
|ƒ ddd„}|S d S )NrÀ   c                 S   s   t | j|ƒS rƒ   )r$   rU   rÁ   r;   r;   r<   r\   »  s    z1NumPyRandomGeneratorType_standard_t.<locals>.implc                 S   s4   t  |¡}|j}t|jƒD ]}t| j|ƒ||< q|S rƒ   )r4   r‹   rŒ   rr   rA   r$   rU   rÂ   r;   r;   r<   r\   Á  s
    
)N)Nr«   rÃ   r;   r;   r<   Ú#NumPyRandomGeneratorType_standard_t´  s    

rÛ   Úwaldc                 C   sr   t |tjtjttgdƒ t |tjtjttgdƒ t|tjƒrB|j}t	|ƒrXddd„}|S t
|ƒ ddd„}|S d S )NrÕ   r¨   c                 S   s   t | j||ƒS rƒ   )r%   rU   )rW   rÕ   r¨   rA   r;   r;   r<   r\   Ò  s    z+NumPyRandomGeneratorType_wald.<locals>.implc                 S   s6   t  |¡}|j}t|jƒD ]}t| j||ƒ||< q|S rƒ   )r4   r‹   rŒ   rr   rA   r%   rU   )rW   rÕ   r¨   rA   rŽ   r�   rw   r;   r;   r<   r\   Ø  s
    
)N)Nr«   )rW   rÕ   r¨   rA   r\   r;   r;   r<   ÚNumPyRandomGeneratorType_waldÊ  s    

rÝ   Ú	geometricc                 C   sZ   t |tjtjttgdƒ t|tjƒr*|j}t	|ƒr@ddd„}|S t
|ƒ ddd„}|S d S )NÚpc                 S   s   t  t| j|ƒ¡S rƒ   )r4   rg   r&   rU   ©rW   rß   rA   r;   r;   r<   r\   è  s    z0NumPyRandomGeneratorType_geometric.<locals>.implc                 S   s:   t j|t jd�}|j}t|jƒD ]}t| j|ƒ||< q |S rˆ   )r4   r‹   rg   rŒ   rr   rA   r&   rU   ©rW   rß   rA   rŽ   r�   rw   r;   r;   r<   r\   î  s
    )N)Nr«   ©rW   rß   rA   r\   r;   r;   r<   Ú"NumPyRandomGeneratorType_geometricá  s    

rã   Úzipfc                 C   sZ   t |tjtjttgdƒ t|tjƒr*|j}t	|ƒr@ddd„}|S t
|ƒ ddd„}|S d S )Nr¸   c                 S   s   t  t| j|ƒ¡S rƒ   )r4   rg   r'   rU   rÈ   r;   r;   r<   r\   þ  s    z+NumPyRandomGeneratorType_zipf.<locals>.implc                 S   s:   t j|t jd�}|j}t|jƒD ]}t| j|ƒ||< q |S rˆ   )r4   r‹   rg   rŒ   rr   rA   r'   rU   rÉ   r;   r;   r<   r\     s
    )N)Nr«   rÊ   r;   r;   r<   ÚNumPyRandomGeneratorType_zipf÷  s    

rå   Ú
triangularc                 C   sŠ   t |tjtjttgdƒ t |tjtjttgdƒ t |tjtjttgdƒ t|tjƒrZ|j}t	|ƒrpddd„}|S t
|ƒ ddd„}|S d S )	NÚleftÚmodeÚrightc                 S   s   t | j|||ƒS rƒ   )r(   rU   )rW   rç   rè   ré   rA   r;   r;   r<   r\     s    z1NumPyRandomGeneratorType_triangular.<locals>.implc                 S   s8   t  |¡}|j}t|jƒD ]}t| j|||ƒ||< q|S rƒ   )r4   r‹   rŒ   rr   rA   r(   rU   )rW   rç   rè   ré   rA   rŽ   r�   rw   r;   r;   r<   r\     s    
  ÿ
)N)Nr«   )rW   rç   rè   ré   rA   r\   r;   r;   r<   Ú#NumPyRandomGeneratorType_triangular  s    

rê   Úpoissonc                 C   sZ   t |tjtjttgdƒ t|tjƒr*|j}t	|ƒr@ddd„}|S t
|ƒ ddd„}|S d S )NÚlamc                 S   s   t  t| j|ƒ¡S rƒ   )r4   rg   r)   rU   )rW   rì   rA   r;   r;   r<   r\   -  s    z.NumPyRandomGeneratorType_poisson.<locals>.implc                 S   s:   t j|t jd�}|j}t|jƒD ]}t| j|ƒ||< q |S rˆ   )r4   r‹   rg   rŒ   rr   rA   r)   rU   )rW   rì   rA   rŽ   r�   rw   r;   r;   r<   r\   3  s
    )N)Nr«   )rW   rì   rA   r\   r;   r;   r<   Ú NumPyRandomGeneratorType_poisson&  s    

rí   Únegative_binomialc                 C   sr   t |tjtjttgdƒ t |tjtjttgdƒ t|tjƒrB|j}t	|ƒrXddd„}|S t
|ƒ ddd„}|S d S )NÚnrß   c                 S   s   t  t| j||ƒ¡S rƒ   )r4   rg   r*   rU   )rW   rï   rß   rA   r;   r;   r<   r\   D  s    z8NumPyRandomGeneratorType_negative_binomial.<locals>.implc                 S   s<   t j|t jd�}|j}t|jƒD ]}t| j||ƒ||< q |S rˆ   )r4   r‹   rg   rŒ   rr   rA   r*   rU   )rW   rï   rß   rA   rŽ   r�   rw   r;   r;   r<   r\   J  s
    )N)Nr«   )rW   rï   rß   rA   r\   r;   r;   r<   Ú*NumPyRandomGeneratorType_negative_binomial<  s    

rð   Únoncentral_chisquarec                    s†   t |tjtjttgdƒ t |tjtjttgdƒ t|tjƒrB|j}t	dd„ ƒ‰ t
|ƒrhd‡ fdd„	}|S t|ƒ d	‡ fdd„	}|S d S )
NrÀ   Únoncc                 S   s$   | dkrt dƒ‚|dk r t dƒ‚d S )Nr   zdf <= 0únonc < 0©rb   )rÀ   rò   r;   r;   r<   Úcheck_arg_boundsZ  s    zGNumPyRandomGeneratorType_noncentral_chisquare.<locals>.check_arg_boundsc                    s   ˆ ||ƒ t  t| j||ƒ¡S rƒ   )r4   r8   r,   rU   )rW   rÀ   rò   rA   ©rõ   r;   r<   r\   b  s
    

 ÿz;NumPyRandomGeneratorType_noncentral_chisquare.<locals>.implc                    sF   ˆ ||ƒ t j|t jd�}|j}t|jƒD ]}t| j||ƒ||< q*|S rˆ   )r4   r‹   r8   rŒ   rr   rA   r,   rU   )rW   rÀ   rò   rA   rŽ   r�   rw   rö   r;   r<   r\   j  s    
 ÿ
)N)N©rL   r   r¡   r?   r_   r¢   r0   r1   r2   r   r	   rB   )rW   rÀ   rò   rA   r\   r;   rö   r<   Ú-NumPyRandomGeneratorType_noncentral_chisquareS  s    
rø   Únoncentral_fc                    sž   t |tjtjttgdƒ t |tjtjttgdƒ t |tjtjttgdƒ t|tjƒrZ|j}t	dd„ ƒ‰ t
|ƒr€d	‡ fdd„	}|S t|ƒ d
‡ fdd„	}|S d S )Nr¼   r½   rò   c                 S   s4   | dkrt dƒ‚|dkr t dƒ‚|dk r0t dƒ‚d S )Nr   z
dfnum <= 0z
dfden <= 0ró   rô   )r¼   r½   rò   r;   r;   r<   rõ   }  s    z?NumPyRandomGeneratorType_noncentral_f.<locals>.check_arg_boundsc                    s"   ˆ |||ƒ t  t| j|||ƒ¡S rƒ   )r4   r8   r-   rU   )rW   r¼   r½   rò   rA   rö   r;   r<   r\   ‡  s    
  ÿz3NumPyRandomGeneratorType_noncentral_f.<locals>.implc                    sJ   ˆ |||ƒ t j|t jd�}|j}t|jƒD ]}t| j|||ƒ||< q,|S rˆ   )r4   r‹   r8   rŒ   rr   rA   r-   rU   )rW   r¼   r½   rò   rA   rŽ   r�   rw   rö   r;   r<   r\   �  s      ÿ
)N)Nr÷   )rW   r¼   r½   rò   rA   r\   r;   rö   r<   Ú%NumPyRandomGeneratorType_noncentral_fu  s    
rú   Ú	logseriesc                    sn   t |tjtjttgdƒ t|tjƒr*|j}t	dd„ ƒ‰ t
|ƒrPd‡ fdd„	}|S t|ƒ d‡ fdd„	}|S d S )	Nrß   c                 S   s&   | dk s| dkst  | ¡r"tdƒ‚d S )Nr   rS   zp < 0, p >= 1 or p is NaN)r4   Úisnanrb   )rß   r;   r;   r<   rõ      s    z<NumPyRandomGeneratorType_logseries.<locals>.check_arg_boundsc                    s   ˆ |ƒ t  t| j|ƒ¡S rƒ   )r4   rg   r+   rU   rà   rö   r;   r<   r\   ¦  s    z0NumPyRandomGeneratorType_logseries.<locals>.implc                    sB   ˆ |ƒ t j|t jd�}|j}t|jƒD ]}t| j|ƒ||< q(|S rˆ   )r4   r‹   rg   rŒ   rr   rA   r+   rU   rá   rö   r;   r<   r\   ­  s    )N)Nr÷   râ   r;   rö   r<   Ú"NumPyRandomGeneratorType_logseriesš  s    
rý   )r/   )r   )r   )r¥   r¦   N)r¥   r¦   N)r¦   N)r¦   N)N)N)N)N)N)N)N)r¥   r¦   N)r¥   r¦   N)r¥   r¦   N)r¦   N)N)N)N)N)N)N)N)N)N)N)^Ú__doc__Únumpyr4   Ú
numba.corer   Únumba.core.extendingr   r   Únumba.np.numpy_supportr   r   Znumba.np.random.generator_corer   r   r	   Únumba.core.errorsr
   Znumba.core.types.containersr   r   Znumba.np.random.distributionsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   Únumba.np.randomr.   r=   rB   rL   ÚNumPyRandomGeneratorTyperg   rj   r{   r�   r8   r’   rœ   rž   r£   r­   r¯   r´   r¶   rº   r¾   rÄ   rÆ   rË   rÍ   rÏ   rÑ   rÓ   r×   rÙ   rÛ   rÝ   rã   rå   rê   rí   rð   rø   rú   rý   r;   r;   r;   r<   Ú<module>   s²   Œ


 ÿW



þ-

ÿ
  ÿ
  ÿ




















!
$
