U
    hâËdƒ  ã                   @   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   Zfloat32Úfloat64r
   )Zfunc_32Zfunc_64r5   Ú	dist_nameZnp_dtÚnb_dtZ	next_func© r:   úZ/home/sam/Atlas/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    
ýrA   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
   )rE   Z	type_listZarg_namer:   rD   r;   Úcheck_typesE   s    ÿrI   Z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©ÚinstrJ   rK   r@   r5   rL   Ú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 )NrO   rP   rR   rU   r:   r;   rX   ˜   s    
 ÿ)rI   r   r>   ÚBooleanÚboolÚintr0   r1   r2   r3   r   r4   r5   r6   r   r
   Zbool_r.   Zrandom_bounded_bool_fillZiinfoÚ
ValueErrorÚgetattrÚbitsÚminÚmaxr	   Úint64rA   )
rS   rJ   rK   r@   r5   rL   r9   Z_dtypeZi_inforX   r:   rU   r;   Ú!NumPyRandomGeneratorType_integersV   sd      ÿÿ ÿÿ


ÿ
 ÿ ÿrb   Ú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   rO   z)Axis is out of bounds for the given array)r   .rM   .)ÚndimÚ
IndexErrorr4   ZswapaxesZ
empty_likeÚrangeÚlenr   Zintpr.   Zrandom_intervalrQ   )rS   rd   re   ÚzÚbufÚiÚjr:   r:   r;   rX   ³   s    
ÿz.NumPyRandomGeneratorType_shuffle.<locals>.impl)r   )rI   r   ÚArrayr[   r>   ©rS   rd   re   rX   r:   r:   r;   Ú NumPyRandomGeneratorType_shuffle®   s    
rp   Zpermutationc                    sD   t |tjtjgdƒ t |ttjgdƒ t|tjƒ‰ d‡ fdd„	}|S )Nrd   re   r   c                    s4   ˆ rt  |¡}|  |¡ n| ¡ }| j||d� |S )N)re   )r4   Zarangerc   Úcopy)rS   rd   re   Znew_arr©ZIS_INTr:   r;   rX   Ò   s    
z2NumPyRandomGeneratorType_permutation.<locals>.impl)r   )rI   r   rn   r>   r[   r0   ro   r:   rr   r;   Ú$NumPyRandomGeneratorType_permutationË   s
    
rs   Ú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 )Nrt   c                    s   ˆˆ | j ƒƒS ©N©rQ   ©rS   r@   r5   ©Ú	dist_funcr9   r:   r;   rX   è   s    z-NumPyRandomGeneratorType_random.<locals>.implc                    s6   t j||d�}|j}t|jƒD ]}ˆ | jƒ||< q|S ©N©r5   ©r4   ÚemptyÚflatrh   r@   rQ   ©rS   r@   r5   ÚoutÚout_frl   ©ry   r:   r;   rX   î   s
    )r<   r   r   r0   r   r1   r2   r	   r4   r7   rA   ©rS   r@   r5   rX   r:   rx   r;   ÚNumPyRandomGeneratorType_randomà   s     ÿr„   Z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')rQ   r\   )rS   r@   r5   r†   ©ry   Údist_func_invr9   r:   r;   rX     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~   rh   r@   rQ   r\   )rS   r@   r5   r†   r€   r�   rl   )ry   rŠ   r:   r;   rX     s    )rI   r   ZUnicodeTypeÚstrr<   r   r   r   r   r0   r1   r2   r	   r4   r7   rA   )rS   r@   r5   r†   rX   r:   r‰   r;   Ú-NumPyRandomGeneratorType_standard_exponentialø   s$    ýþrŒ   Z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 ru   rv   rw   rx   r:   r;   rX   /  s    z6NumPyRandomGeneratorType_standard_normal.<locals>.implc                    s6   t j||d�}|j}t|jƒD ]}ˆ | jƒ||< q|S rz   r|   r   r‚   r:   r;   rX   5  s
    )r<   r   r   r0   r   r1   r2   r	   r4   r7   rA   rƒ   r:   rx   r;   Ú(NumPyRandomGeneratorType_standard_normal&  s    þr�   Z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 ru   rv   )rS   rŽ   r@   r5   rx   r:   r;   rX   J  s    z5NumPyRandomGeneratorType_standard_gamma.<locals>.implc                    s8   t j||d�}|j}t|jƒD ]}ˆ | j|ƒ||< q|S rz   r|   )rS   rŽ   r@   r5   r€   r�   rl   r‚   r:   r;   rX   P  s
    )rI   r   ÚFloatr>   r[   Úfloatr<   r   r   r0   r1   r2   r	   r4   r7   rA   )rS   rŽ   r@   r5   rX   r:   rx   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 ru   )r   rQ   ©rS   r•   r–   r@   r:   r:   r;   rX   c  s    z-NumPyRandomGeneratorType_normal.<locals>.implc                 S   s<   t j|t jd�}|j}t|jƒD ]}t| j||ƒ||< q |S rz   )r4   r}   r7   r~   rh   r@   r   rQ   ©rS   r•   r–   r@   r€   r�   rl   r:   r:   r;   rX   i  s
    )r“   r”   N)r“   r”   N©rI   r   r�   r>   r[   r�   r0   r1   r2   r	   rA   ©rS   r•   r–   r@   rX   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 )
NrJ   rK   r“   r”   c                 S   s   t | j||| ƒS ru   )r   rQ   )rS   rJ   rK   r@   r:   r:   r;   rX   |  s    z.NumPyRandomGeneratorType_uniform.<locals>.implc                 S   s@   t j|t jd�}|j}t|jƒD ]}t| j||| ƒ||< q |S rz   )r4   r}   r7   r~   rh   r@   r   rQ   )rS   rJ   rK   r@   r€   r�   rl   r:   r:   r;   rX   ‚  s
    )r“   r”   N)r“   r”   Nr™   )rS   rJ   rK   r@   rX   r:   r:   r;   Ú NumPyRandomGeneratorType_uniforms  s    

r�   Z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 ru   )r   rQ   ©rS   r–   r@   r:   r:   r;   rX   “  s    z2NumPyRandomGeneratorType_exponential.<locals>.implc                 S   s:   t j|t jd�}|j}t|jƒD ]}t| j|ƒ||< q |S rz   )r4   r}   r7   r~   rh   r@   r   rQ   ©rS   r–   r@   r€   r�   rl   r:   r:   r;   rX   ™  s
    )r”   N)r”   Nr™   ©rS   r–   r@   rX   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 ru   )r   rQ   )rS   rŽ   r–   r@   r:   r:   r;   rX   «  s    z,NumPyRandomGeneratorType_gamma.<locals>.implc                 S   s<   t j|t jd�}|j}t|jƒD ]}t| j||ƒ||< q |S rz   )r4   r}   r7   r~   rh   r@   r   rQ   )rS   rŽ   r–   r@   r€   r�   rl   r:   r:   r;   rX   ±  s
    )r”   N)r”   Nr™   )rS   rŽ   r–   r@   rX   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 ru   )r   rQ   )rS   r¥   r¦   r@   r:   r:   r;   rX   Ã  s    z+NumPyRandomGeneratorType_beta.<locals>.implc                 S   s6   t  |¡}|j}t|jƒD ]}t| j||ƒ||< q|S ru   )r4   r}   r~   rh   r@   r   rQ   )rS   r¥   r¦   r@   r€   r�   rl   r:   r:   r;   rX   É  s
    
)N)Nr™   )rS   r¥   r¦   r@   rX   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 ru   )r   rQ   )rS   r©   rª   r@   r:   r:   r;   rX   Û  s    z(NumPyRandomGeneratorType_f.<locals>.implc                 S   s6   t  |¡}|j}t|jƒD ]}t| j||ƒ||< q|S ru   )r4   r}   r~   rh   r@   r   rQ   )rS   r©   rª   r@   r€   r�   rl   r:   r:   r;   rX   á  s
    
)N)Nr™   )rS   r©   rª   r@   rX   r:   r:   r;   ÚNumPyRandomGeneratorType_fÓ  s    

r«   Z	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 ru   )r   rQ   ©rS   r¬   r@   r:   r:   r;   rX   ò  s    z0NumPyRandomGeneratorType_chisquare.<locals>.implc                 S   s4   t  |¡}|j}t|jƒD ]}t| j|ƒ||< q|S ru   )r4   r}   r~   rh   r@   r   rQ   ©rS   r¬   r@   r€   r�   rl   r:   r:   r;   rX   ø  s
    
)N)Nr™   ©rS   r¬   r@   rX   r:   r:   r;   Ú"NumPyRandomGeneratorType_chisquareë  s    

r°   Z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 ru   )r   rQ   )rS   r@   r:   r:   r;   rX     s    z6NumPyRandomGeneratorType_standard_cauchy.<locals>.implc                 S   s2   t  |¡}|j}t|jƒD ]}t| jƒ||< q|S ru   )r4   r}   r~   rh   r@   r   rQ   )rS   r@   r€   r�   rl   r:   r:   r;   rX     s
    
)N)N)r0   r   r1   r2   r	   rA   )rS   r@   rX   r:   r:   r;   Ú(NumPyRandomGeneratorType_standard_cauchy  s    

r±   Z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 ru   )r   rQ   ©rS   r¥   r@   r:   r:   r;   rX     s    z-NumPyRandomGeneratorType_pareto.<locals>.implc                 S   s4   t  |¡}|j}t|jƒD ]}t| j|ƒ||< q|S ru   )r4   r}   r~   rh   r@   r   rQ   ©rS   r¥   r@   r€   r�   rl   r:   r:   r;   rX   $  s
    
)N)Nr™   ©rS   r¥   r@   rX   r:   r:   r;   ÚNumPyRandomGeneratorType_pareto  s    

rµ   Z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 ru   )r   rQ   r²   r:   r:   r;   rX   4  s    z.NumPyRandomGeneratorType_weibull.<locals>.implc                 S   s4   t  |¡}|j}t|jƒD ]}t| j|ƒ||< q|S ru   )r4   r}   r~   rh   r@   r   rQ   r³   r:   r:   r;   rX   :  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 ru   )r   rQ   r²   r:   r:   r;   rX   J  s    z,NumPyRandomGeneratorType_power.<locals>.implc                 S   s4   t  |¡}|j}t|jƒD ]}t| j|ƒ||< q|S ru   )r4   r}   r~   rh   r@   r   rQ   r³   r:   r:   r;   rX   P  s
    
)N)Nr™   r´   r:   r:   r;   ÚNumPyRandomGeneratorType_powerC  s    

r¸   Z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 ru   )r    rQ   r—   r:   r:   r;   rX   a  s    z.NumPyRandomGeneratorType_laplace.<locals>.implc                 S   s6   t  |¡}|j}t|jƒD ]}t| j||ƒ||< q|S ru   )r4   r}   r~   rh   r@   r    rQ   r˜   r:   r:   r;   rX   g  s
    
)r“   r”   N)r“   r”   Nr™   rš   r:   r:   r;   Ú NumPyRandomGeneratorType_laplaceY  s    

r¹   Z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 ru   )r!   rQ   r—   r:   r:   r;   rX   x  s    z/NumPyRandomGeneratorType_logistic.<locals>.implc                 S   s6   t  |¡}|j}t|jƒD ]}t| j||ƒ||< q|S ru   )r4   r}   r~   rh   r@   r!   rQ   r˜   r:   r:   r;   rX   ~  s
    
)r“   r”   N)r“   r”   Nr™   rš   r:   r:   r;   Ú!NumPyRandomGeneratorType_logisticp  s    

rº   Z	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 ru   )r"   rQ   )rS   r»   r¼   r@   r:   r:   r;   rX   �  s    z0NumPyRandomGeneratorType_lognormal.<locals>.implc                 S   s6   t  |¡}|j}t|jƒD ]}t| j||ƒ||< q|S ru   )r4   r}   r~   rh   r@   r"   rQ   )rS   r»   r¼   r@   r€   r�   rl   r:   r:   r;   rX   •  s
    
)r“   r”   N)r“   r”   Nr™   )rS   r»   r¼   r@   rX   r:   r:   r;   Ú"NumPyRandomGeneratorType_lognormal‡  s    

r½   Z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 ru   )r#   rQ   rž   r:   r:   r;   rX   ¥  s    z/NumPyRandomGeneratorType_rayleigh.<locals>.implc                 S   s4   t  |¡}|j}t|jƒD ]}t| j|ƒ||< q|S ru   )r4   r}   r~   rh   r@   r#   rQ   rŸ   r:   r:   r;   rX   «  s
    
)r”   N)r”   Nr™   r    r:   r:   r;   Ú!NumPyRandomGeneratorType_rayleighž  s    

r¾   Z
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 ru   )r$   rQ   r­   r:   r:   r;   rX   »  s    z1NumPyRandomGeneratorType_standard_t.<locals>.implc                 S   s4   t  |¡}|j}t|jƒD ]}t| j|ƒ||< q|S ru   )r4   r}   r~   rh   r@   r$   rQ   r®   r:   r:   r;   rX   Á  s
    
)N)Nr™   r¯   r:   r:   r;   Ú#NumPyRandomGeneratorType_standard_t´  s    

r¿   Z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 ru   )r%   rQ   )rS   r»   r–   r@   r:   r:   r;   rX   Ò  s    z+NumPyRandomGeneratorType_wald.<locals>.implc                 S   s6   t  |¡}|j}t|jƒD ]}t| j||ƒ||< q|S ru   )r4   r}   r~   rh   r@   r%   rQ   )rS   r»   r–   r@   r€   r�   rl   r:   r:   r;   rX   Ø  s
    
)N)Nr™   )rS   r»   r–   r@   rX   r:   r:   r;   ÚNumPyRandomGeneratorType_waldÊ  s    

rÀ   Z	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 ru   )r4   ra   r&   rQ   ©rS   rÁ   r@   r:   r:   r;   rX   è  s    z0NumPyRandomGeneratorType_geometric.<locals>.implc                 S   s:   t j|t jd�}|j}t|jƒD ]}t| j|ƒ||< q |S rz   )r4   r}   ra   r~   rh   r@   r&   rQ   ©rS   rÁ   r@   r€   r�   rl   r:   r:   r;   rX   î  s
    )N)Nr™   ©rS   rÁ   r@   rX   r:   r:   r;   Ú"NumPyRandomGeneratorType_geometricá  s    

rÅ   Z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 ru   )r4   ra   r'   rQ   r²   r:   r:   r;   rX   þ  s    z+NumPyRandomGeneratorType_zipf.<locals>.implc                 S   s:   t j|t jd�}|j}t|jƒD ]}t| j|ƒ||< q |S rz   )r4   r}   ra   r~   rh   r@   r'   rQ   r³   r:   r:   r;   rX     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 ru   )r(   rQ   )rS   rÈ   rÉ   rÊ   r@   r:   r:   r;   rX     s    z1NumPyRandomGeneratorType_triangular.<locals>.implc                 S   s8   t  |¡}|j}t|jƒD ]}t| j|||ƒ||< q|S ru   )r4   r}   r~   rh   r@   r(   rQ   )rS   rÈ   rÉ   rÊ   r@   r€   r�   rl   r:   r:   r;   rX     s    
  ÿ
)N)Nr™   )rS   rÈ   rÉ   rÊ   r@   rX   r:   r:   r;   Ú#NumPyRandomGeneratorType_triangular  s    

rË   Z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 ru   )r4   ra   r)   rQ   )rS   rÌ   r@   r:   r:   r;   rX   -  s    z.NumPyRandomGeneratorType_poisson.<locals>.implc                 S   s:   t j|t jd�}|j}t|jƒD ]}t| j|ƒ||< q |S rz   )r4   r}   ra   r~   rh   r@   r)   rQ   )rS   rÌ   r@   r€   r�   rl   r:   r:   r;   rX   3  s
    )N)Nr™   )rS   rÌ   r@   rX   r:   r:   r;   Ú NumPyRandomGeneratorType_poisson&  s    

rÍ   Z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 ru   )r4   ra   r*   rQ   )rS   rÎ   rÁ   r@   r:   r:   r;   rX   D  s    z8NumPyRandomGeneratorType_negative_binomial.<locals>.implc                 S   s<   t j|t jd�}|j}t|jƒD ]}t| j||ƒ||< q |S rz   )r4   r}   ra   r~   rh   r@   r*   rQ   )rS   rÎ   rÁ   r@   r€   r�   rl   r:   r:   r;   rX   J  s
    )N)Nr™   )rS   rÎ   rÁ   r@   rX   r:   r:   r;   Ú*NumPyRandomGeneratorType_negative_binomial<  s    

rÏ   Z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©r\   )r¬   rÐ   r:   r:   r;   Úcheck_arg_boundsZ  s    zGNumPyRandomGeneratorType_noncentral_chisquare.<locals>.check_arg_boundsc                    s   ˆ ||ƒ t  t| j||ƒ¡S ru   )r4   r7   r,   rQ   )rS   r¬   rÐ   r@   ©rÓ   r:   r;   rX   b  s
    

 ÿz;NumPyRandomGeneratorType_noncentral_chisquare.<locals>.implc                    sF   ˆ ||ƒ t j|t jd�}|j}t|jƒD ]}t| j||ƒ||< q*|S rz   )r4   r}   r7   r~   rh   r@   r,   rQ   )rS   r¬   rÐ   r@   r€   r�   rl   rÔ   r:   r;   rX   j  s    
 ÿ
)N)N©rI   r   r�   r>   r[   r�   r0   r1   r2   r   r	   rA   )rS   r¬   rÐ   r@   rX   r:   rÔ   r;   Ú-NumPyRandomGeneratorType_noncentral_chisquareS  s    
rÖ   Z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 ru   )r4   r7   r-   rQ   )rS   r©   rª   rÐ   r@   rÔ   r:   r;   rX   ‡  s    
  ÿz3NumPyRandomGeneratorType_noncentral_f.<locals>.implc                    sJ   ˆ |||ƒ t j|t jd�}|j}t|jƒD ]}t| j|||ƒ||< q,|S rz   )r4   r}   r7   r~   rh   r@   r-   rQ   )rS   r©   rª   rÐ   r@   r€   r�   rl   rÔ   r:   r;   rX   �  s      ÿ
)N)NrÕ   )rS   r©   rª   rÐ   r@   rX   r:   rÔ   r;   Ú%NumPyRandomGeneratorType_noncentral_fu  s    
r×   Z	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   rO   zp < 0, p >= 1 or p is NaN)r4   Úisnanr\   )rÁ   r:   r:   r;   rÓ      s    z<NumPyRandomGeneratorType_logseries.<locals>.check_arg_boundsc                    s   ˆ |ƒ t  t| j|ƒ¡S ru   )r4   ra   r+   rQ   rÂ   rÔ   r:   r;   rX   ¦  s    z0NumPyRandomGeneratorType_logseries.<locals>.implc                    sB   ˆ |ƒ t j|t jd�}|j}t|jƒD ]}t| j|ƒ||< q(|S rz   )r4   r}   ra   r~   rh   r@   r+   rQ   rÃ   rÔ   r:   r;   rX   ­  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   Z
numba.corer   Znumba.core.extendingr   r   Znumba.np.numpy_supportr   r   Znumba.np.random.generator_corer   r   r	   Z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-   Znumba.np.randomr.   r<   rA   rI   ZNumPyRandomGeneratorTypera   rb   rp   rs   r7   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



þ-

ÿ
  ÿ
  ÿ




















!
$
