Ë
    èÿæis> ã                   ó”  — d Z ddlZddlZddlZddlmZ ddlmZm	Z	 ddl
mZ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 dd
lmZ  ed«      Zej4                  Z ej6                  d«      Z ej6                  d«      Zd„ Z ej>                  «       Z dZ! ejD                  ee!«      Z# ejH                  e ejJ                  ee!«      ee eg«      Z& ejN                  e&«      Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0d„ Z1d„ Z2d„ Z3d„ Z4 eejj                  «      d„ «       Z6 eej                  jj                  «      d„ «       Z6d„ Z7 eej                  «      d„ «       Z8 eej                  j                  «       eej                  jr                  «       eej                  jt                  «       eej                  jv                  «      d „ «       «       «       «       Z< eej                  j                  «       eej                  jr                  «       eej                  jt                  «       eej                  jv                  «      d–d!„«       «       «       «       Z= eej|                  «       eej~                  «      d"„ «       «       Z@ eej                  j‚                  «       eej                  j„                  «      d#„ «       «       ZC eej                  j„                  «      d$„ «       ZD eej                  j„                  «      d%„ «       ZE eej                  j‚                  «      d&„ «       ZF eej                  j„                  «      d'„ «       ZGd(„ ZHd)„ ZId*„ ZJ eej–                  «      d+„ «       ZLd,„ ZM eejœ                  «      d-„ «       ZO eejœ                  «      d.„ «       ZPd/„ ZQ eejœ                  «      d0„ «       ZR eej¦                  «      d1„ «       ZT eej                  j¦                  «      d2„ «       ZU eej                  j¦                  «      d3„ «       ZV eej                  j¦                  «      d4„ «       ZW eej                  j°                  «      d5„ «       ZY eej°                  «      d6„ «       ZZ eej                  j°                  «      d7„ «       Z[d8„ Z\ eej                  j°                  «      d9„ «       Z] eej¼                  «      d:„ «       Z_ eej¼                  «      d;„ «       Z` eej                  j¼                  «      d<„ «       Z` eej                  j¼                  «      d–d=„«       Za eejÄ                  «      d>„ «       Zc eej                  jÈ                  «       eej                  jÊ                  «      d?„ «       «       Zf eej                  jÊ                  «      d@„ «       ZgdA„ Zh eej                  jÊ                  «      dB„ «       Zi eej                  jÈ                  «      dC„ «       Zj eejÖ                  «      dD„ «       Zl eej                  jÚ                  «      dE„ «       ZndF„ Zo eej                  jÚ                  «      dG„ «       Zp eejâ                  «      dH„ «       Zr eej                  jæ                  «      dI„ «       Zt eej                  jæ                  «      dJ„ «       Zt eej                  jê                  «       eej                  jæ                  «      dK„ «       «       Zt eej                  jê                  «      dL„ «       Zv eej                  jî                  «      dM„ «       Zx eej                  jî                  «      dN„ «       Zy eej                  jî                  «      dO„ «       Zz eej                  jî                  «      dP„ «       Z{ eejø                  «      dQ„ «       Z}dR„ Z~ eejþ                  «      dS„ «       Z€ eej                  �j                  «      dT„ «       Z‚ eej                  �j                  «      dU„ «       Z‚ ee�j                  «      dV„ «       Z„ eej                  �j
                  «      dW„ «       Z† eej                  �j
                  «      dX„ «       Z‡ ee�j                  «      dY„ «       Z‰ eej                  �j                  «      dZ„ «       Z‰d[„ Z‹ eej                  �j                  «      d\„ «       ZŒ eej                  �j                  «      d]„ «       ZŽ eej                  �j                  «      d^„ «       ZŽ eej                  �j                  «      d_„ «       Z� eej                  �j                  «      d`„ «       Z‘ eej                  �j$                  «      da„ «       Z“ eej                  �j$                  «      db„ «       Z“ eej                  �j(                  «      dc„ «       Z• eej                  �j(                  «      dd„ «       Z• eej                  �j,                  «      de„ «       Z— eej                  �j,                  «      df„ «       Z˜ eej                  �j2                  «      dg„ «       Zš eej                  �j2                  «      dh„ «       Zš eej                  �j6                  «      di„ «       Zœ eej                  �j6                  «      dj„ «       Z� eej                  �j6                  «      dk„ «       Zž eej                  �j6                  «      dl„ «       ZŸdm„ Z  eej                  �jB                  «      dn„ «       Z¢ eej                  �jB                  «      do„ «       Z£ eej                  �jB                  «      dp„ «       Z¤ eej                  �jB                  «      dq„ «       Z¥dr„ Z¦ds„ Z§ eej                  �jP                  «      dt„ «       Z© eej                  �jP                  «      du„ «       Z© eej                  �jT                  «      dv„ «       Z« eej                  �jX                  «      dw„ «       Z­ eej                  �jX                  «      dx„ «       Z® eej                  �jX                  «      dy„ «       Z¯ eej                  �j`                  «      dz„ «       Z± eej                  �j`                  «      d{„ «       Z± eej                  �jd                  «      d|„ «       Z³ eej                  �jd                  «      d}„ «       Z´ eej                  �jd                  «      d~„ «       Zµ eej                  �jl                  «      d„ «       Z· eej                  �jl                  «      d€„ «       Z¸ eej                  �jr                  «      d�„ «       Zº eej                  �jr                  «      d‚„ «       Z» eej                  �jx                  «      dƒ„ «       Z½ eej                  �jx                  «      d„„ «       Z¾ eej                  �j~                  «      d…„ «       ZÀ eej                  �j~                  «      d†„ «       ZÀd‡„ ZÁ ee�j„                  «      dˆ„ «       ZÃ eej                  �j„                  «      d‰„ «       ZÃ eej                  �jˆ                  «      dŠ„ «       ZÅ eej                  �jŒ                  «      d‹„ «       ZÆ eej                  �jŽ                  «      dŒ„ «       ZÇ eej                  �j�                  «      d—d�„«       ZÈ eej                  �j’                  «      d–dŽ„«       ZÉ eej                  �j”                  «      d�„ «       ZÊ eej                  �j”                  «      d–d�„«       ZÊed‘„ «       ZË eej                  �j˜                  «      d’„ «       ZÌ eej                  �j˜                  «      d–d“„«       ZÌed”„ «       ZÍed•„ «       ZÎy)˜z6
Implement the random and np.random module functions.
é    N)Úir)Úis_nonelikeÚis_empty_tuple)Ú	intrinsicÚoverloadÚregister_jitable)ÚRegistry©Ú	signature)ÚtypesÚcgutils)ÚNumbaTypeError)ÚLONG_MAXÚ
randomimplé    é@   c                 ó6   — t        j                  t        | «      S ©N)r   ÚConstantÚint32_t©Úxs    úm/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/cpython/randomimpl.pyÚ	const_intr      s   € Ü�;‰;”w Ó"Ð"ó    ip  c                 ó  — |dv sJ ‚d|z  }t        j                  t        d«      }t        j                  |j
                  ||«      }|j                  j                  d«       |j                  j                  d«       |j                  |d«      S )z½
    Get a pointer to the given thread-local random state
    (depending on *name*: "py" or "np").
    If the state isn't initialized, it is lazily initialized with
    system entropy.
    )ÚpyÚnpÚinternalznumba_get_%s_random_state© ÚreadnoneÚnounwind)	r   ÚFunctionTypeÚrnd_state_ptr_tr   Úget_or_insert_functionÚmoduleÚ
attributesÚaddÚcall)ÚcontextÚbuilderÚnameÚ	func_nameÚfntyÚfns         r   Úget_state_ptrr0   2   s|   € ð Ð+Ñ+Ð+Ð+Ø+¨dÑ2€IÜ�?‰?œ?¨BÓ/€DÜ	×	'Ñ	'¨¯©¸¸iÓ	H€Bð ‡M�M×Ñ�jÔ!Ø‡M�M×Ñ�jÔ!Ø�<‰<˜˜BÓÐr   c                 ó   — t        | |d«      S )z@
    Get a pointer to the thread-local Python random state.
    r   ©r0   ©r*   r+   s     r   Úget_py_state_ptrr4   C   ó   € ô ˜ '¨4Ó0Ð0r   c                 ó   — t        | |d«      S )z?
    Get a pointer to the thread-local Numpy random state.
    r   r2   r3   s     r   Úget_np_state_ptrr7   I   r5   r   c                 ó   — t        | |d«      S )zB
    Get a pointer to the thread-local internal random state.
    r   r2   r3   s     r   Úget_internal_state_ptrr9   O   s   € ô ˜ '¨:Ó6Ð6r   c                 ó2   — t        j                  | |dd«      S ©Nr   ©r   Úgep_inbounds©r+   Ú	state_ptrs     r   Úget_index_ptrr@   V   ó   € Ü×Ñ ¨°A°qÓ9Ð9r   c                 ó2   — t        j                  | |dd«      S ©Nr   é   r<   r>   s     r   Úget_array_ptrrE   Y   rA   r   c                 ó2   — t        j                  | |dd«      S )Nr   é   r<   r>   s     r   Úget_has_gauss_ptrrH   \   rA   r   c                 ó2   — t        j                  | |dd«      S )Nr   é   r<   r>   s     r   Úget_gauss_ptrrK   _   rA   r   c                 óò   — t        j                  t        j                  «       t        f«      }t	        j
                  | j                  j                  |d«      }|j                  d   j                  d«       |S )z<
    Get the internal function to shuffle the MT taste.
    Únumba_rnd_shuffler   Ú	nocapture)
r   r#   ÚVoidTyper$   r   r%   Úfunctionr&   ÚargsÚadd_attribute)r+   r.   r/   s      r   Úget_rnd_shufflerS   b   s[   € ô �?‰?œ2Ÿ;™;›=¬?Ð*<Ó=€DÜ	×	'Ñ	'¨×(8Ñ(8×(?Ñ(?ÀØ(;ó
=€Bà‡G�GˆA�J×Ñ˜[Ô)Ø€Ir   c                 óÖ  — t        ||«      }|j                  |«      }|j                  d|t        «      }t	        j
                  ||«      5  t        |«      }|j                  ||f«       |j                  t        d«      |«       ddd«       |j                  |«      }t        ||«      }|j                  t	        j                  ||d|«      «      }|j                  |t        d«      «      }|j                  ||«       |j                  ||j                  |t        d«      «      «      }|j                  ||j                  |j!                  |t        d«      «      t        d«      «      «      }|j                  ||j                  |j!                  |t        d«      «      t        d	«      «      «      }|j                  ||j                  |t        d
«      «      «      }|S # 1 sw Y   �Œ[xY w)zB
    Get the next int32 generated by the PRNG at *state_ptr*.
    ú>=r   NrD   é   é   l   €VX: é   l     Œ_ é   )r@   ÚloadÚicmp_unsignedÚN_constr   Úif_unlikelyrS   r)   Ústorer   rE   r=   r(   ÚxorÚlshrÚand_Úshl)	r*   r+   r?   ÚidxptrÚidxÚneed_reshuffler/   Ú	array_ptrÚys	            r   Úget_next_int32rh   m   s„  € ô ˜7 IÓ.€FØ
�,‰,�vÓ
€CØ×*Ñ*¨4°´gÓ>€NÜ	×	Ñ	˜W nÕ	5Ü˜WÓ%ˆØ�‰�R˜)˜Ô&Ø�‰”i “l FÔ+÷ 
6ð �,‰,�vÓ
€CÜ˜g yÓ1€IØ�‰”W×)Ñ)¨'°9¸aÀÓEÓF€AØ
�+‰+�cœ9 Q›<Ó
(€CØ‡M�M�#�vÔà�‰�A�w—|‘| A¤y°£}Ó5Ó6€AØ�‰�A�w—|‘| G§K¡K°´9¸Q³<Ó$@Ü$-¨jÓ$9ó;ó 	<€Aà�‰�A�w—|‘| G§K¡K°´9¸R³=Ó$AÜ$-¨jÓ$9ó;ó 	<€Aà�‰�A�w—|‘| A¤y°£}Ó5Ó6€AØ€H÷! 
6Ñ	5ús   Á:GÇG(c                 ó¶  — |j                  t        | ||«      t        d«      «      }|j                  t        | ||«      t        d«      «      }|j                  |t        «      }|j                  |t        «      }|j                  |j                  ||j                  |t        j                  t        d«      «      «      t        j                  t        d«      «      S )zC
    Get the next double generated by the PRNG at *state_ptr*.
    é   é   g      �Ag      @C)
r`   rh   r   ÚuitofpÚdoubleÚfdivÚfaddÚfmulr   r   )r*   r+   r?   ÚaÚbs        r   Úget_next_doublers   †   s¤   € ð
 	�‰”^ G¨W°iÓ@Ä)ÈAÃ,ÓO€AØ�‰”^ G¨W°iÓ@Ä)ÈAÃ,ÓO€Að 	�‰�qœ&Ó!€AØ�‰�qœ&Ó!€AØ�<‰<Ø�‰�Q˜Ÿ™ Q¬¯©´F¸JÓ(GÓHÓIÜ
�‰”FÐ.Ó/ó1ð 1r   c                 óv  ‡ ‡‡‡‡— t        j                  |j                  d«      Šˆˆˆ ˆˆfd„}t        j                  ‰t        j                  t
        d«      «      }‰j                  d|‰«      }‰j                  |«      5 \  }}	|5   ||«      }
‰j                  ‰j                  |
t
        «      |«       ddd«       |	5  ‰r |‰j                  |‰«      «      }t        ‰ ‰‰«      }
‰s |‰j                  |‰«      «      }‰j                  ‰j                  |
t
        «      ‰j                  ‰j                  t
        «      t        j                  t
        d«      «      «      }‰j                  ||«       ddd«       ddd«       ‰j                  |«      S # 1 sw Y   ŒâxY w# 1 sw Y   Œ.xY w# 1 sw Y   Œ2xY w)z2
    Get the next integer with width *nbits*.
    r   c                 ó6  •— ‰j                  ‰| «      }t        ‰‰‰«      }| j                  j                  |j                  j                  k  r‰j	                  ||j                  «      }nI| j                  j                  |j                  j                  kD  r‰j                  ||j                  «      }‰rS‰j                  t        j                  |j                  d«      «      }‰j                  ||«      }‰j                  ||«      S ‰j                  ||«      S r;   )Úsubrh   ÚtypeÚwidthÚzextÚtruncÚnot_r   r   r`   ra   )	ÚnbitsÚshiftrg   Úmaskr+   Úc32r*   Úis_numpyr?   s	       €€€€€r   Úget_shifted_intz%get_next_int.<locals>.get_shifted_intš   sÓ   ø€ Ø—‘˜C Ó'ˆÜ˜7 G¨YÓ7ˆð �:‰:×Ñ˜aŸf™fŸl™lÒ*Ø—L‘L ¨¯©Ó/‰EØ�Z‰Z×Ñ §¡§¡Ò,Ø—M‘M %¨¯©Ó0ˆEáà—<‘<¤§¡¨A¯F©F°AÓ 6Ó7ˆDØ—<‘<  eÓ,ˆDØ—<‘<  4Ó(Ð(ð —<‘<  5Ó)Ð)r   r   ú<=N)r   r   rw   r   Úalloca_once_valueÚint64_tr[   Úif_elser^   ry   rv   rh   r(   rb   rZ   )r*   r+   r?   r|   r€   r�   ÚretÚis_32bÚifsmallÚiflargeÚlowÚhighÚtotalr   s   ``` `        @r   Úget_next_intr�   •   s^  ü€ ô �+‰+�e—j‘j "Ó
%€C÷*ð *ô& ×
#Ñ
# G¬R¯[©[¼À!Ó-DÓ
E€Cà×"Ñ" 4¨°Ó4€FØ	�‰˜Ô	 Ñ$6 W¨gÚÙ! %Ó(ˆCØ�M‰M˜'Ÿ,™, s¬GÓ4°cÔ:÷ ò áá& w§{¡{°5¸#Ó'>Ó?�Ü  ¨'°9Ó=ˆCÙá& w§{¡{°5¸#Ó'>Ó?�Ø—K‘KØ—‘˜S¤'Ó*Ø—‘˜GŸL™L¨¬wÓ7ÜŸK™K¬°Ó4ó6ó7ˆEð �M‰M˜% Ô%÷ ÷	 
!ð& �<‰<˜ÓÐ÷% ˆWú÷ ˆWú÷	 
!Ð	 ús=   ÂF/Â/FÂ6
F/Ã B6F#Å6F/ÆF 	ÆF/Æ#F,	Æ(F/Æ/F8c                 óp   ‡— t        | t        j                  «      rt        t	        d«      «      Šˆfd„}|S y )Nr   c                 ó   •—  ‰| «      S r   r    )rq   r/   s    €r   Úimplzseed_impl.<locals>.implÊ   s   ø€ Ù�a“5ˆLr   )Ú
isinstancer   ÚIntegerr   Ú
_seed_impl)rq   r�   r/   s     @r   Ú	seed_implr”   Æ   s/   ø€ ä�!”U—]‘]Ô#Üœj¨Ó.Ó/ˆô	àˆð	 $r   c                 óN   — t        | t        j                  «      rt        d«      S y ©Nr   )r‘   r   r’   r“   )Úseeds    r   r”   r”   Ï   s    € ä�$œŸ™Ô&Ü˜$ÓÐð 'r   c                 ó,   ‡ ‡— t         ˆ fd„«       Šˆfd„S )Nc                 ób   •— ˆfd„}t        t        j                  t        j                  «      |fS )Nc                 óD  •— |\  }t        j                  t        j                  «       t        t        f«      }t        j                  |j                  j                  |d«      }|j                  |t        | |‰«      |f«       | j                  t        j                  d «      S )NÚnumba_rnd_init)r   r#   rO   r$   r   r   r%   rP   r&   r)   r0   Úget_constantr   Únone)r*   r+   ÚsigrQ   Ú
seed_valuer.   r/   Ú
state_types          €r   Úcodegenz*_seed_impl.<locals>._impl.<locals>.codegenØ   s�   ø€ Ø‰KˆJÜ—?‘?¤2§;¡;£=´?ÄGÐ2LÓMˆDÜ×/Ñ/°×0@Ñ0@×0GÑ0GÈØ0@óBˆBà�L‰L˜œm¨G°W¸jÓIØ(ð*ô +à×'Ñ'¬¯
©
°DÓ9Ð9r   )r   r   ÚvoidÚuint32)Útypingcontextr—   r¡   r    s      €r   Ú_implz_seed_impl.<locals>._implÖ   s$   ø€ ô	:ô œŸ™¤U§\¡\Ó2°GÐ;Ð;r   c                 ó   •—  ‰| «      S r   r    )r—   r¥   s    €r   Ú<lambda>z_seed_impl.<locals>.<lambda>á   s	   ø€ ™˜dœr   ©r   )r    r¥   s   `@r   r“   r“   Õ   s   ù€ Üó	<ó ð	<ó $Ð#r   c                  ó&   ‡ — t         d„ «       Š ˆ fd„S )Nc                 ó>   — d„ }t        t        j                  «      |fS )Nc                 ó6   — t        | |d«      }t        | ||«      S ©Nr   ©r0   rs   ©r*   r+   rž   rQ   r?   s        r   r¡   z+random_impl.<locals>._impl.<locals>.codegenè   ó   € Ü% g¨w¸Ó=ˆIÜ" 7¨G°YÓ?Ð?r   )r   r   rm   ©r¤   r¡   s     r   r¥   zrandom_impl.<locals>._implæ   s   € ò	@ô œŸ™Ó&¨Ð/Ð/r   c                  ó   •—  ‰ «       S r   r    ©r¥   s   €r   r§   zrandom_impl.<locals>.<lambda>ì   ó   ø€ ‘5”7r   r¨   r²   s   @r   Úrandom_implr´   ä   s   ø€ äñ0ó ð0ó
 Ðr   c                  ó&   ‡ — t         d„ «       Š ˆ fd„S )Nc                 ó>   — d„ }t        t        j                  «      |fS )Nc                 ó6   — t        | |d«      }t        | ||«      S r–   r­   r®   s        r   r¡   z,random_impl0.<locals>._impl.<locals>.codegenö   r¯   r   )r   r   Úfloat64r°   s     r   r¥   zrandom_impl0.<locals>._implô   s   € ò	@ô œŸ™Ó'¨Ð0Ð0r   c                  ó   •—  ‰ «       S r   r    r²   s   €r   r§   zrandom_impl0.<locals>.<lambda>ú   r³   r   r¨   r²   s   @r   Úrandom_impl0rº   ï   s   ø€ ô
 ñ1ó ð1ó
 Ðr   c                 óþ   — t        | «      rdd„S t        | «      rdd„S t        | t        j                  «      s>t        | t        j
                  «      r+t        | j                  t        j                  «      rdd„}|S y y )Nc                 ó>   — t         j                  j                  «       S r   ©r   Úrandom©Úsizes    r   r§   zrandom_impl1.<locals>.<lambda>  s   € ¤§¡×!1Ñ!1Ô!3r   c                 ód   — t        j                  t         j                  j                  «       «      S r   )r   Úarrayr¾   r¿   s    r   r§   zrandom_impl1.<locals>.<lambda>  s   € ¤§¡¬"¯)©)×*:Ñ*:Ó*<Ô!=r   c                 ó¾   — t        j                  | «      }|j                  }t        |j                  «      D ]#  }t         j
                  j                  «       ||<   Œ% |S r   )r   ÚemptyÚflatÚrangerÀ   r¾   ©rÀ   ÚoutÚout_flatrd   s       r   r¥   zrandom_impl1.<locals>._impl
  sE   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 0Ñ 0Ó 2�˜’ð 'àˆJr   r   ©r   r   r‘   r   r’   ÚUniTupleÚdtype©rÀ   r¥   s     r   Úrandom_impl1rÎ   ý   si   € ô
 �4ÔÚ3Ð3Ü�dÔâ=Ð=Ü�$œŸ™Ô&¬:°d¼E¿N¹NÔ+KÜ/9¸$¿*¹*Ü:?¿-¹-ô0Ió	ð ˆð0Ið ,Lr   c                 óÒ   ‡— t        | t        j                  t        j                  f«      r<t        |t        j                  t        j                  f«      rt        d„ «       Šˆfd„S y y )Nc                 ó~   — t        |«      }t        |«      }t        t        j                  ||«      t	        d||«      fS r¬   ©Ú_double_preprocessorr   r   r¸   Ú_gauss_impl)r¤   ÚmuÚsigmaÚloc_preprocessorÚscale_preprocessors        r   r¥   zgauss_impl.<locals>._impl  sB   € ä3°BÓ7ÐÜ!5°eÓ!<ÐÜœUŸ]™]¨B°Ó6Ü˜tÐ%5Ð7IÓJðKð Kr   c                 ó   •—  ‰| |«      S r   r    ©rÔ   rÕ   r¥   s     €r   r§   zgauss_impl.<locals>.<lambda>  s   ø€ ¡ r¨5Ô!1r   ©r‘   r   ÚFloatr’   r   rÙ   s     @r   Ú
gauss_implrÜ     sY   ø€ ô �"”u—{‘{¤E§M¡MÐ2Ô3¼
Ø”E—K‘K¤§¡Ð/ô91ä	ñ	Kó 
ð	Kó
 2Ð1ð91Ð3r   c                  ó   — d„ S )Nc                  óB   — t         j                  j                  dd«      S ©Nç        ç      ð?©r   r¾   Únormalr    r   r   r§   z np_gauss_impl0.<locals>.<lambda>$  s   € ”2—9‘9×#Ñ# C¨Ô-r   r    r    r   r   Únp_gauss_impl0rä   !  s
   € ñ .Ð-r   c                 ó^   — t        | t        j                  t        j                  f«      rd„ S y )Nc                 óB   — t         j                  j                  | d«      S ©Nrá   râ   ©Úlocs    r   r§   z np_gauss_impl1.<locals>.<lambda>*  s   € œ2Ÿ9™9×+Ñ+¨C°Ô5r   ©r‘   r   rÛ   r’   rè   s    r   Únp_gauss_impl1rë   '  s$   € ä�#œŸ™¤U§]¡]Ð3Ô4Ù5Ð5ð 5r   c                 óÒ   ‡— t        | t        j                  t        j                  f«      r<t        |t        j                  t        j                  f«      rt        d„ «       Šˆfd„S y y )Nc                 ó~   — t        |«      }t        |«      }t        t        j                  ||«      t	        d||«      fS r–   rÑ   )r¤   ré   ÚscalerÖ   r×   s        r   r¥   znp_gauss_impl2.<locals>._impl1  sB   € ä3°CÓ8ÐÜ!5°eÓ!<ÐÜœUŸ]™]¨C°Ó7Ü˜tÐ%5Ð7IÓJðKð Kr   c                 ó   •—  ‰| |«      S r   r    ©ré   rî   r¥   s     €r   r§   z np_gauss_impl2.<locals>.<lambda>7  s   ø€ ¡%¨¨UÔ"3r   rÚ   rð   s     @r   Únp_gauss_impl2rñ   -  sW   ø€ ä�#œŸ™¤U§]¡]Ð3Ô4¼Ø”E—K‘K¤§¡Ð/ô:1ä	ñ	Kó 
ð	Kó
 4Ð3ð:1Ð4r   c                 óø   — t        | «      rd„ S t        | «      rd„ S t        | t        j                  «      s>t        | t        j
                  «      r*t        | j                  t        j                  «      rd„ }|S y y )Nc                 ó>   — t         j                  j                  «       S r   ©r   r¾   Ústandard_normalr¿   s    r   r§   z'standard_normal_impl1.<locals>.<lambda>=  ó   € œBŸI™I×5Ñ5Ô7r   c                 ód   — t        j                  t         j                  j                  «       «      S r   )r   rÂ   r¾   rõ   r¿   s    r   r§   z'standard_normal_impl1.<locals>.<lambda>@  ó   € œBŸH™H¤R§Y¡Y×%>Ñ%>Ó%@ÔAr   c                 ó¾   — t        j                  | «      }|j                  }t        |j                  «      D ]#  }t         j
                  j                  «       ||<   Œ% |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   rõ   rÇ   s       r   r¥   z$standard_normal_impl1.<locals>._implD  óE   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 9Ñ 9Ó ;�˜’ð 'àˆJr   rÊ   rÍ   s     r   Ústandard_normal_impl1rû   :  sg   € ä�4ÔÙ7Ð7Ü�dÔáAÐAÜ�$œŸ™Ô&¬:°d¼E¿N¹NÔ+KÜ+5°d·j±jÜ6;·m±mô,Eò	ð ˆð,Eð ,Lr   c                 óô  — t        | t        j                  t        j                  f«      r8t        |t        j                  t        j                  f«      rt	        |«      rd„ S t        | t        j                  t        j                  f«      r8t        |t        j                  t        j                  f«      rt        |«      rd„ S t        | t        j                  t        j                  f«      rŠt        |t        j                  t        j                  f«      r_t        |t        j                  «      s>t        |t        j                  «      r*t        |j                  t        j                  «      rd„ }|S y y y y )Nc                 óB   — t         j                  j                  | |«      S r   râ   ©ré   rî   rÀ   s      r   r§   z np_gauss_impl3.<locals>.<lambda>R  ó   € ¬¯	©	×(8Ñ(8¸¸eÔ(Dr   c                 óh   — t        j                  t         j                  j                  | |«      «      S r   )r   rÂ   r¾   rã   rþ   s      r   r§   z np_gauss_impl3.<locals>.<lambda>W  ó   € ¬¯©´·±×1AÑ1AÀ#ÀuÓ1MÔ(Nr   c                 óÂ   — t        j                  |«      }|j                  }t        |j                  «      D ]%  }t         j
                  j                  | |«      ||<   Œ' |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   rã   ©ré   rî   rÀ   rÈ   rÉ   rd   s         r   r¥   znp_gauss_impl3.<locals>._impl]  óI   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 0Ñ 0°°eÓ <�˜’ð 'àˆJr   ©r‘   r   rÛ   r’   r   r   rË   rÌ   ©ré   rî   rÀ   r¥   s       r   Únp_gauss_impl3r  M  sÿ   € ä�3œŸ™¤e§m¡mÐ4Ô5¼*Ø”E—K‘K¤§¡Ð/ô;1ä�4ÔÙDÐDÜ�3œŸ™¤e§m¡mÐ4Ô5¼*Ø”E—K‘K¤§¡Ð/ô;1ä�dÔáNÐNÜ�3œŸ™¤e§m¡mÐ4Ô5¼*Ø”E—K‘K¤§¡Ð/ô;1ä�4œŸ™Ô'¬J°t¼U¿^¹^Ô,LÜ0:¸4¿:¹:Ü;@¿=¹=ô1Jò	ð ˆð1Jð -Mð;1Ð5r   c                 ó   ‡ — ˆ fd„}|S )Nc                  óØ   •— 	 d ‰«       z  dz
  } d ‰«       z  dz
  }| | z  ||z  z   }|dk  r|dk7  rnŒ1t        j                  dt        j                  |«      z  |z  «      }|| z  ||z  fS )zG
        Compute a pair of numbers on the normal distribution.
        ç       @rá   rà   ç       À)ÚmathÚsqrtÚlog)Úx1Úx2Úr2ÚfÚ_randoms       €r   Úcompute_gauss_pairz,_gauss_pair_impl.<locals>.compute_gauss_pairg  s‚   ø€ ð Ø‘w“y‘ 3Ñ&ˆBØ‘w“y‘ 3Ñ&ˆBØ�B‘˜˜B™‘ˆBØ�CŠx˜B #šIØð ô �I‰I�dœTŸX™X b›\Ñ)¨BÑ.Ó/ˆØ�2‰v�q˜2‘vˆ~Ðr   r    )r  r  s   ` r   Ú_gauss_pair_implr  f  s   ø€ ôð Ðr   c                 ó   ‡ ‡‡— ˆˆˆ fd„}|S )Nc                 ó2  •— |j                   }| j                  |«      }t        j                  t        j                  j                  dœ‰   }t	        | |‰«      }t        j                  ||d¬«      }t        ||«      }	t        ||«      }
t        j                  ||j                  |
«      «      }|j                  |«      5 \  }}|5  |j                  |j                  |	«      |«       |j                  t        d«      |
«       d d d «       |5  | j                  |t        |«      t!        t#        j$                  |d«      «      d«      }t        j&                  ||d«      \  }}|j                  ||	«       |j                  ||«       |j                  t        d«      |
«       d d d «       d d d «       |\  }}|j)                   ‰||«      |j+                   ‰||«      |j                  |«      «      «      S # 1 sw Y   ŒóxY w# 1 sw Y   ŒaxY w# 1 sw Y   ŒexY w)N)r   r   Úresult©r,   r   rG   r    rD   )Úreturn_typeÚget_data_typer¾   r   r0   r   Úalloca_oncerK   rH   Úis_truerZ   r…   r^   r   Úcompile_internalr  r   r   rË   Úunpack_tuplero   rp   )r*   r+   rž   rQ   ÚtyÚlltyr  r?   r†   Ú	gauss_ptrÚhas_gauss_ptrÚ	has_gaussÚthenÚ	otherwiseÚpairÚfirstÚsecondrÔ   rÕ   rÖ   r×   Ústates                      €€€r   r¥   z_gauss_impl.<locals>._imply  sÂ  ø€ à�_‰_ˆØ×$Ñ$ RÓ(ˆÜŸ™ÜŸ™×)Ñ)ñ+Ø+0ñ2ˆô " '¨7°EÓ:ˆ	ä×!Ñ! '¨4°hÔ?ˆä! '¨9Ó5ˆ	Ü)¨'°9Ó=ˆÜ—O‘O G¨W¯\©\¸-Ó-HÓIˆ	Ø�_‰_˜YÔ'Ñ+<¨D°)Úà—‘˜gŸl™l¨9Ó5°sÔ;Ø—‘œi¨›l¨MÔ:÷ ò ð ×/Ñ/°Ü0@ÀÓ0IÜ09¼%¿.¹.ÈÈQÓ:OÓ0PØ02ó4�ô
 !(× 4Ñ 4°W¸dÀAÓ F‘��vØ—‘˜e YÔ/Ø—‘˜f cÔ*Ø—‘œi¨›l¨MÔ:÷ ÷ (ð$ ‰	ˆˆEØ�|‰|Ñ,¨W°bÓ9Ø#ŸL™LÑ);¸GÀUÓ)KØ)0¯©°cÓ):ó<ó=ð 	=÷% �ú÷ �ú÷ (Ð'ús=   Ã HÃ=G5Ä
HÄBHÆ!HÇ5G>	Ç:HÈH
	ÈHÈHr    )r*  rÖ   r×   r¥   s   ``` r   rÓ   rÓ   x  s   ú€ ö#=ðH €Lr   c                 ó  ‡— t         j                  j                  «       Št        | t        j                  «      r| j
                  rˆfd„S ˆfd„S t        | t        j                  «      r| j                  dk7  rˆfd„S d„ S t        d| z  «      ‚)Nc                 ó(   •— | j                  |‰«      S r   )Úsitofp©r+   Úvr   s     €r   r§   z&_double_preprocessor.<locals>.<lambda>¥  ó   ø€  g§n¡n°Q¸Ô&;r   c                 ó(   •— | j                  |‰«      S r   )rl   r.  s     €r   r§   z&_double_preprocessor.<locals>.<lambda>§  r0  r   r   c                 ó(   •— | j                  |‰«      S r   )Úfpextr.  s     €r   r§   z&_double_preprocessor.<locals>.<lambda>ª  s   ø€  g§m¡m°A°rÔ&:r   c                 ó   — |S r   r    )Ú_builderr/  s     r   r§   z&_double_preprocessor.<locals>.<lambda>¬  s   € ¡qr   z(Cannot convert {} to floating point type)	r   r   Ú
DoubleTyper‘   r’   ÚsignedrÛ   Úbitwidthr   )Úvaluer   s    @r   rÒ   rÒ      sm   ø€ Ü	�‰×	Ñ	Ó	€Bä�%œŸ™Ô'Ø�<Š<Û;Ð;ã;Ð;Ü	�Eœ5Ÿ;™;Ô	'Ø�>‰>˜RÒÛ:Ð:á(Ð(äÐGÈ%ÑOÓPÐPr   c                 ó\   ‡— t        | t        j                  «      rt        d„ «       Šˆfd„S y )Nc                 ó@   — d„ }t        t        j                  |«      |fS )Nc                 óp  — |\  }|j                  d|t        d«      «      }|j                  d|t        d«      «      }t        j                  ||j	                  ||«      «      5  d}| j
                  j                  |t        |f«       d d d «       t        | |d«      }t        | |||d«      S # 1 sw Y   Œ%xY w)NrU   éA   ú==r   z getrandbits() limited to 64 bitsr   F)
r[   r   r   r]   Úor_Ú	call_convÚreturn_user_excÚOverflowErrorr0   r�   )	r*   r+   rž   rQ   r|   Ú	too_largeÚ	too_smallÚmsgr?   s	            r   r¡   z0getrandbits_impl.<locals>._impl.<locals>.codegen¶  s³   € Ø‘�à#×1Ñ1°$¸¼yÈ»}ÓM�	Ø#×1Ñ1°$¸¼yÈ»|ÓL�	Ü×(Ñ(¨°'·+±+¸iØ>Gó3Iõ Jà<�CØ×%Ñ%×5Ñ5°g¼}Ø7:°fô>÷Jô
 *¨'°7¸DÓA�	Ü# G¨W°iÀÈÓNÐN÷Jð Jús   Á#%B,Â,B5)r   r   Úuint64)r¤   Úkr¡   s      r   r¥   zgetrandbits_impl.<locals>._impl´  s    € òOô œUŸ\™\¨1Ó-¨wÐ6Ð6r   c                 ó   •—  ‰| «      S r   r    ©rG  r¥   s    €r   r§   z"getrandbits_impl.<locals>.<lambda>Ã  s	   ø€ ™˜qœr   )r‘   r   r’   r   rI  s    @r   Úgetrandbits_implrJ  ±  s0   ø€ ä�!”U—]‘]Ô#Ü	ñ	7ó 
ð	7ó "Ð!ð! $r   c                 ó˜  ‡ ‡‡‡‡‡‡‡— t        ‰ ‰‰«      Št        j                  ‰d«      }t        j                  ‰d«      }	t        j                  ‰‰d¬«      }
‰j                  ‰j                  ||«      |
«       ‰j                  ‰j                  d||«      «      5  ‰j                  ‰j                  ‰j                  |
«      |«      |	«      }‰j                  ||«      Š‰j                  ‰|
«       d d d «       ‰j                  ‰j                  d||	«      «      5  ‰j                  ‰j                  ‰j                  |
«      |«      |	«      }‰j                  ||«      Š‰j                  ‰|
«       d d d «       ‰j                  |
«      Št        j                  ‰‰j                  d‰|«      «      5  d}‰ j                  j                  ‰t        |f«       d d d «       t        j                   ‰‰t        j"                  j$                  g«      }t        j&                  ‰j(                  j*                  |d	‰z  «      }‰d
k(  r‰j                  ‰|	«      n‰}‰j-                  ‰j/                  ||t        j"                  g«      t0        «      Š‰j                  t        j                  t0        ‰j2                  «      ‰«      Št        j                  ‰‰d¬«      Šˆˆ ˆˆˆˆˆˆfd„}‰d
k(  r^‰j5                  ‰j                  d‰|	«      «      5 \  }}|5  ‰j                  |‰«       d d d «       |5   |«        d d d «       d d d «       n |«        ‰j                  |‰j7                  ‰j                  ‰«      |«      «      S # 1 sw Y   �Œ�xY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒÄxY w# 1 sw Y   ŒƒxY w# 1 sw Y   Œ}xY w# 1 sw Y   ŒyxY w)Nr   rD   Únr  Ú<Ú>r‚   zempty range for randrange()zllvm.ctlz.%sr   Úrc                  óh  •— ‰j                  d«      } ‰j                  d«      }‰j                  | «       ‰j                  | «       t        ‰‰‰
‰‰	dk(  «      }‰j	                  |‰«      }‰j                  d|‰«      }‰j                  || |«       ‰j                  |«       ‰j                  |‰«       y )NÚwhilez	while.endr   rU   )Úappend_basic_blockÚbranchÚposition_at_endr�   rz   Úicmp_signedÚcbranchr^   )ÚbbwhileÚbbendrO  rC  r+   r*   rL  r|   Úrptrr*  r?   r   s       €€€€€€€€r   Úget_numz _randrange_impl.<locals>.get_numñ  s£   ø€ Ø×,Ñ,¨WÓ5ˆØ×*Ñ*¨;Ó7ˆØ�‰�wÔà×Ñ Ô(Ü˜ '¨9°e¸UÀd¹]ÓKˆØ�M‰M˜!˜RÓ ˆØ×'Ñ'¨¨a°Ó3ˆ	Ø�‰˜	 7¨EÔ2à×Ñ Ô&Ø�‰�a˜Õr   r>  )r0   r   r   r   r  r^   rv   Úif_thenrU  r(   rZ   Úsdivr]   r@  rA  Ú
ValueErrorr#   Útrue_bitrw   r%   rP   r&   rz   r)   r   rx   r…   Úmul)r*   r+   ÚstartÚstopÚstepr   r7  r*  ÚzeroÚoneÚnptrÚwrE  r.   r/   Únm1rZ  Úis_oneÚ
is_not_onerL  r|   rY  r?   s   ``   ` `           @@@@r   Ú_randrange_implrj  Æ  sû  ÿ€ Ü˜g w°Ó6€IÜ�;‰;�r˜1Ó€DÜ
�+‰+�b˜!Ó
€CÜ×Ñ˜w¨°Ô5€Dð ‡M�M�'—+‘+˜d EÓ*¨DÔ1à	�‰˜×,Ñ,¨S°$¸Ó=Õ	>à�K‰K˜Ÿ™ G§L¡L°Ó$6¸Ó=¸sÓCˆØ�L‰L˜˜DÓ!ˆØ�‰�a˜Ô÷	 
?ð
 
�‰˜×,Ñ,¨S°$¸Ó<Õ	=à�K‰K˜Ÿ™ G§L¡L°Ó$6¸Ó=¸sÓCˆØ�L‰L˜˜DÓ!ˆØ�‰�a˜Ô÷	 
>ð 	�‰�TÓ€AÜ	×	Ñ	˜W g×&9Ñ&9¸$ÀÀ4Ó&HÕ	Ià+ˆØ×Ñ×)Ñ)¨'´:À¸vÔF÷ 
Jô
 �?‰?˜2 ¤G×$4Ñ$4×$9Ñ$9Ð:Ó;€DÜ	×	'Ñ	'¨×(8Ñ(8×(?Ñ(?ÀØ(6¸Ñ(;ó
=€Bð "'¨$¢ˆ'�+‰+�a˜Ô
°A€CØ�M‰M˜'Ÿ,™, r¨C´×1AÑ1AÐ+BÓCÄWÓM€EØ�K‰KœŸ™¤G¨R¯X©XÓ6¸Ó>€Eä×Ñ˜w¨°Ô5€D÷ó ð �‚}à�_‰_˜W×0Ñ0°°q¸#Ó>Ô?ÑCWÀFÈJÚØ—‘˜d DÔ)÷ âÙ”	÷ ÷ @Ð?ñ 	Œ	à�;‰;�u˜gŸk™k¨'¯,©,°tÓ*<¸dÓCÓDÐD÷u 
?Ñ	>ú÷
 
>Ñ	=ú÷ 
JÑ	Iú÷N �úç�ú÷ @Ð?úsb   ÂANÄANÆ4%NÌO ÌN(Ì&
O Ì0N4Ì8O ÎNÎNÎN%Î(N1	Î-O Î4N=	Î9O Ï O	c                 ó>   — t        | t        j                  «      rd„ S y )Nc                 ó0   — t        j                  d| d«      S rC   ©r¾   Ú	randrange©r`  s    r   r§   z"randrange_impl_1.<locals>.<lambda>  s   € œV×-Ñ-¨a°¸Ô:r   ©r‘   r   r’   ro  s    r   Úrandrange_impl_1rq    s   € ä�%œŸ™Ô'Ù:Ð:ð (r   c                 ót   — t        | t        j                  «      rt        |t        j                  «      rd„ S y y )Nc                 ó0   — t        j                  | |d«      S ©NrD   rm  ©r`  ra  s     r   r§   z"randrange_impl_2.<locals>.<lambda>  s   € ¤6×#3Ñ#3°E¸4ÀÔ#Cr   rp  ru  s     r   Úrandrange_impl_2rv    s,   € ä�%œŸ™Ô'¬J°t¼U¿]¹]Ô,KÙCÐCð -LÐ'r   c                 ó¦   — |j                   | k7  r@|j                  rt        j                  j                  S t        j                  j
                  S d„ S )Nc                 ó   — |S r   r    )r5  r/  Ú_tys      r   r§   z)_randrange_preprocessor.<locals>.<lambda>  s   € ©r   )r8  r7  r   Ú	IRBuilderÚsextry   )r8  r   s     r   Ú_randrange_preprocessorr|    s@   € Ø	‡{�{�hÒØ%'§Y¢Y”—‘×!Ñ!ð 	(Ü—\‘\×&Ñ&ð	(ñ *Ð)r   c                 ó@  ‡‡‡‡‡‡	‡
— t        | t        j                  «      rýt        |t        j                  «      rât        |t        j                  «      rÇt        | j                  |j                  |j                  «      Št        | j
                  |j
                  |j
                  «      }t        j                  j                  |‰«      Št        j                  |«      Št        || «      Št        ||«      Š
t        ||«      Š	t        ˆˆˆˆˆ	ˆ
fd„«       Šˆfd„S y y y )Nc                 ó6   •— ˆˆˆˆ	ˆ
fd„}t        ‰|||«      |fS )Nc           
      óp   •— |\  }}} ‰	||‰«      } ‰||‰«      } ‰
||‰«      }t        | ||||‰‰d«      S r¬   )rj  )r*   r+   rž   rQ   r`  ra  rb  Ú	llvm_typer7  Ústart_preprocessorÚstep_preprocessorÚstop_preprocessors          €€€€€r   r¡   z0randrange_impl_3.<locals>._impl.<locals>.codegen/  sY   ø€ Ø$(Ñ!��t˜Tá*¨7°E¸9ÓE�Ù(¨°$¸	ÓB�Ù(¨°$¸	ÓB�Ü& w°¸ÀÀdØ'0°&¸$ó@ð @r   r
   )r¤   r`  ra  rb  r¡   Úint_tyr€  r7  r�  r‚  rƒ  s        €€€€€€r   r¥   zrandrange_impl_3.<locals>._impl-  s'   ø€ ÷@ð @ô ˜V U¨D°$Ó7¸Ð@Ð@r   c                 ó   •—  ‰| ||«      S r   r    )r`  ra  rb  r¥   s      €r   r§   z"randrange_impl_3.<locals>.<lambda>8  s   ø€ ©¨u°d¸DÔ)Ar   ©r‘   r   r’   Úmaxr7  r8  Úfrom_bitwidthr   ÚIntTyper|  r   )r`  ra  rb  r8  r¥   r„  r€  r7  r�  r‚  rƒ  s       @@@@@@@r   Úrandrange_impl_3rŠ     sÜ   þ€ ä�5œ%Ÿ-™-Ô(¬Z¸¼e¿m¹mÔ-LÜ�$œŸ™Ô&Ü�U—\‘\ 4§;¡;°·±Ó<ˆÜ�u—~‘~ t§}¡}°d·m±mÓDˆÜ—‘×,Ñ,¨X°vÓ>ˆÜ—J‘J˜xÓ(ˆ	ä4°X¸uÓEÐÜ3°H¸dÓCÐÜ3°H¸dÓCÐä	÷		Að 		Aó 
ð		Aó BÐAð+ 'ð .MÐ(r   c                 ót   — t        | t        j                  «      rt        |t        j                  «      rd„ S y y )Nc                 ó6   — t        j                  | |dz   d«      S rt  rm  ©rq   rr   s     r   r§   z randint_impl_1.<locals>.<lambda>>  s   € œF×,Ñ,¨Q°°A±°qÔ9r   rp  r�  s     r   Úrandint_impl_1rŽ  ;  s,   € ä�!”U—]‘]Ô#¬
°1´e·m±mÔ(DÙ9Ð9ð )EÐ#r   c                 ó>   — t        | t        j                  «      rd„ S y )Nc                 óB   — t         j                  j                  d| «      S r;   ©r   r¾   Úrandint©rŠ   s    r   r§   z#np_randint_impl_1.<locals>.<lambda>D  s   € œ2Ÿ9™9×,Ñ,¨Q°Ô4r   rp  r“  s    r   Únp_randint_impl_1r”  A  s   € ä�#”u—}‘}Ô%Ù4Ð4ð &r   c                 óÂ  ‡‡‡‡‡‡— t        | t        j                  «      r¿t        |t        j                  «      r¤t        | j                  |j                  «      Št        | j
                  |j
                  «      }t        j                  j                  |‰«      Št        j                  |«      Št        || «      Št        ||«      Št        ˆˆˆˆˆfd„«       Šˆfd„S y y )Nc                 ó2   •— ˆˆˆˆfd„}t        ‰||«      |fS )Nc           
      ó†   •— |\  }} ‰	||‰«      } ‰
||‰«      }t        j                  ‰d«      }t        | ||||‰‰d«      S )NrD   r   )r   r   rj  )r*   r+   rž   rQ   r`  ra  rb  r€  r7  r�  rƒ  s          €€€€r   r¡   z1np_randint_impl_2.<locals>._impl.<locals>.codegenT  sX   ø€ Ø"‘��tá*¨7°E¸9ÓE�Ù(¨°$¸	ÓB�Ü—{‘{ 9¨aÓ0�Ü& w°¸ÀÀdØ'0°&¸$ó@ð @r   r
   )	r¤   rŠ   r‹   r¡   r„  r€  r7  r�  rƒ  s	       €€€€€r   r¥   z np_randint_impl_2.<locals>._implR  s   ø€ ÷@ô ˜V S¨$Ó/°Ð8Ð8r   c                 ó   •—  ‰| |«      S r   r    ©rŠ   r‹   r¥   s     €r   r§   z#np_randint_impl_2.<locals>.<lambda>]  ó   ø€ ¡ s¨DÔ!1r   r†  )	rŠ   r‹   r8  r¥   r„  r€  r7  r�  rƒ  s	      @@@@@@r   Únp_randint_impl_2r›  G  s§   ý€ ä�#”u—}‘}Ô%¬*°T¼5¿=¹=Ô*IÜ�S—Z‘Z §¡Ó-ˆÜ�s—|‘| T§]¡]Ó3ˆÜ—‘×,Ñ,¨X°vÓ>ˆÜ—J‘J˜xÓ(ˆ	ä4°X¸sÓCÐÜ3°H¸dÓCÐä	÷		9ó 
ð		9ó 2Ð1ð) +JÐ%r   c                 ó   ‡— t        | t        j                  «      r(t        |t        j                  «      rt        |«      rd„ S t        | t        j                  «      r(t        |t        j                  «      rt	        |«      rd„ S t        | t        j                  «      r¯t        |t        j                  «      r”t        |t        j                  «      s>t        |t        j
                  «      r_t        |j                  t        j                  «      r:t        | j                  |j                  «      }t        t        d|› �«      Šˆfd„}|S y y y y )Nc                 óB   — t         j                  j                  | |«      S r   r‘  ©rŠ   r‹   rÀ   s      r   r§   z#np_randint_impl_3.<locals>.<lambda>d  ó   € ¤r§y¡y×'8Ñ'8¸¸dÔ'Cr   c                 óh   — t        j                  t         j                  j                  | |«      «      S r   )r   rÂ   r¾   r’  rž  s      r   r§   z#np_randint_impl_3.<locals>.<lambda>h  ó   € ¤r§x¡x´·	±	×0AÑ0AÀ#ÀtÓ0LÔ'Mr   Úintc                 óÈ   •— t        j                  |‰¬«      }|j                  }t        |j                  «      D ]%  }t         j
                  j                  | |«      ||<   Œ' |S ©N)rÌ   )r   rÄ   rÅ   rÆ   rÀ   r¾   r’  )rŠ   r‹   rÀ   rÈ   rÉ   rd   Úresult_types         €r   r¥   z np_randint_impl_3.<locals>._implp  sM   ø€ Ü—(‘(˜4 {Ô3ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 1Ñ 1°#°tÓ <�˜’ð 'àˆJr   )r‘   r   r’   r   r   rË   rÌ   r‡  r8  Úgetattrr   )rŠ   r‹   rÀ   r8  r¥   r¥  s        @r   Únp_randint_impl_3r§  `  sé   ø€ ä�3œŸ™Ô&¬:°d¼E¿M¹MÔ+JÜ�4ÔÙCÐCÜ�3œŸ™Ô&¬:°d¼E¿M¹MÔ+JÜ�dÔáMÐMÜ�3œŸ™Ô&¬:°d¼E¿M¹MÔ+JÜ�4œŸ™Ô'¬J°t¼U¿^¹^Ô,LÜ0:¸4¿:¹:Ü;@¿=¹=ô1Jä�s—|‘| T§]¡]Ó3ˆÜœb C¨ zÐ"2Ó3ˆô	ð ˆð1Jð -Mð ,KÐ&r   c                  ó   — d„ S )Nc                  óB   — t         j                  j                  dd«      S rß   ©r   r¾   Úuniformr    r   r   r§   z"np_uniform_impl0.<locals>.<lambda>{  ó   € ”2—9‘9×$Ñ$ S¨#Ô.r   r    r    r   r   Únp_uniform_impl0r­  y  ó   € á.Ð.r   c                 óÒ   ‡— t        | t        j                  t        j                  f«      r<t        |t        j                  t        j                  f«      rt        d„ «       Šˆfd„S y y )Nc                 ó~   — t        |«      }t        |«      }t        t        j                  ||«      t	        d||«      fS r¬   ©rÒ   r   r   r¸   Úuniform_impl)r¤   rq   rr   Úlow_preprocessorÚhigh_preprocessors        r   r¥   zuniform_impl2.<locals>._impl‚  sB   € ä3°AÓ6ÐÜ 4°QÓ 7ÐÜœUŸ]™]¨A¨qÓ1´<ØÐ&Ð(9ó4;ð ;ð ;r   c                 ó   •—  ‰| |«      S r   r    ©rq   rr   r¥   s     €r   r§   zuniform_impl2.<locals>.<lambda>ˆ  s   ø€ ™E ! QœKr   rÚ   r¶  s     @r   Úuniform_impl2r·  ~  sU   ø€ ä�!”e—k‘k¤5§=¡=Ð1Ô2´zØ”—‘œUŸ]™]Ð+ô8-ä	ñ	;ó 
ð	;ó
 (Ð'ð8-Ð2r   c                 óÒ   ‡— t        | t        j                  t        j                  f«      r<t        |t        j                  t        j                  f«      rt        d„ «       Šˆfd„S y y )Nc                 ó~   — t        |«      }t        |«      }t        t        j                  ||«      t	        d||«      fS r–   r±  )r¤   rŠ   r‹   r³  r´  s        r   r¥   znp_uniform_impl2.<locals>._impl�  sB   € ä3°CÓ8ÐÜ 4°TÓ :ÐÜœUŸ]™]¨C°Ó6¼ØÐ&Ð(9ó9;ð ;ð ;r   c                 ó   •—  ‰| |«      S r   r    r™  s     €r   r§   z"np_uniform_impl2.<locals>.<lambda>•  rš  r   rÚ   r™  s     @r   Únp_uniform_impl2r»  ‹  sU   ø€ ä�#œŸ™¤U§]¡]Ð3Ô4¼Ø”5—;‘;¤§¡Ð.ô:0ä	ñ	;ó 
ð	;ó
 2Ð1ð:0Ð4r   c                 ó   ‡ ‡‡— ˆˆˆ fd„}|S )Nc                 óÎ   •— t        | |‰«      }|\  }} ‰	||«      } ‰
||«      }|j                  ||«      }t        | ||«      }|j                  ||j	                  ||«      «      S r   )r0   Úfsubrs   ro   rp   )r*   r+   rž   rQ   r?   rq   rr   rx   rO  Úa_preprocessorÚb_preprocessorr*  s            €€€r   r�   zuniform_impl.<locals>.impl™  sl   ø€ Ü! '¨7°EÓ:ˆ	Ø‰ˆˆ1Ù˜7 AÓ&ˆÙ˜7 AÓ&ˆØ—‘˜Q Ó"ˆÜ˜G W¨iÓ8ˆØ�|‰|˜A˜wŸ|™|¨E°1Ó5Ó6Ð6r   r    )r*  r¿  rÀ  r�   s   ``` r   r²  r²  ˜  s   ú€ ö7ð €Kr   c                 óô  — t        | t        j                  t        j                  f«      r8t        |t        j                  t        j                  f«      rt	        |«      rd„ S t        | t        j                  t        j                  f«      r8t        |t        j                  t        j                  f«      rt        |«      rd„ S t        | t        j                  t        j                  f«      rŠt        |t        j                  t        j                  f«      r_t        |t        j                  «      s>t        |t        j                  «      r*t        |j                  t        j                  «      rd„ }|S y y y y )Nc                 óB   — t         j                  j                  | |«      S r   rª  rž  s      r   r§   z"np_uniform_impl3.<locals>.<lambda>©  rŸ  r   c                 óh   — t        j                  t         j                  j                  | |«      «      S r   )r   rÂ   r¾   r«  rž  s      r   r§   z"np_uniform_impl3.<locals>.<lambda>¯  r¡  r   c                 óÂ   — t        j                  |«      }|j                  }t        |j                  «      D ]%  }t         j
                  j                  | |«      ||<   Œ' |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   r«  )rŠ   r‹   rÀ   rÈ   rÉ   rd   s         r   r¥   znp_uniform_impl3.<locals>._implµ  sI   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 1Ñ 1°#°tÓ <�˜’ð 'àˆJr   r  )rŠ   r‹   rÀ   r¥   s       r   Únp_uniform_impl3rÅ  ¤  s  € ä�3œŸ™¤e§m¡mÐ4Ô5¼*Ø”5—;‘;¤§¡Ð.ô;0ä�4ÔÙCÐCÜ�3œŸ™¤e§m¡mÐ4Ô5¼*Ø”5—;‘;¤§¡Ð.ô;0ä�dÔñ NÐMÜ�3œŸ™¤e§m¡mÐ4Ô5¼*Ø”5—;‘;¤§¡Ð.ô;0ä�4œŸ™Ô'¬J°t¼U¿^¹^Ô,LÜ0:¸4¿:¹:Ü;@¿=¹=ô1Jò	ð ˆð1Jð -Mð;0Ð5r   c                 ó¸   — d„ }t        | t        j                  t        j                  f«      r-t        |t        j                  t        j                  f«      r|S y y )Nc                 óŒ   — t        j                   «       }d}||kD  r	d|z
  }|| }} | || z
  t        j                  ||z  «      z  z   S )Nç      à?rá   ©r¾   r  r  )rŠ   r‹   ÚuÚcs       r   r¥   z triangular_impl_2.<locals>._implÀ  sL   € Ü�M‰M‹OˆØˆØˆqŠ5Ø�a‘ˆAØ˜c�ˆCØ�d˜S‘j¤D§I¡I¨a°!©eÓ$4Ñ4Ñ4Ð4r   rê   r™  s      r   Útriangular_impl_2rÌ  ¾  sF   € ò5ô �#œŸ™¤U§]¡]Ð3Ô4¼Ø”5—;‘;¤§¡Ð.ô:0àˆð:0Ð4r   c                 ó  — t        | t        j                  t        j                  f«      r[t        |t        j                  t        j                  f«      r0t        |t        j                  t        j                  f«      rd„ }|S y y y )Nc                 ó¶   — || k(  r| S t        j                   «       }|| z
  || z
  z  }||kD  rd|z
  }d|z
  }|| }} | || z
  t        j                  ||z  «      z  z   S rç   rÉ  )rŠ   r‹   ÚmoderÊ  rË  s        r   r¥   z triangular_impl_3.<locals>._implÒ  sn   € Ø�sŠ{Ø�
Ü—‘“ˆAØ˜‘  s¡
Ñ+ˆAØ�1ŠuØ˜!‘G�Ø˜!‘G�Ø  #�T�Ø˜$ ™*¬¯	©	°!°a±%Ó(8Ñ8Ñ8Ð8r   rê   )rŠ   r‹   rÏ  r¥   s       r   Útriangular_impl_3rÐ  Í  sb   € ä�3œŸ™¤e§m¡mÐ4Ô5¼*Ø”5—;‘;¤§¡Ð.ô;0ä�$œŸ™¤e§m¡mÐ4Ô5ò		9ð ˆð 6ð;0Ð5r   c                 ó  — t        | t        j                  t        j                  f«      r[t        |t        j                  t        j                  f«      r0t        |t        j                  t        j                  f«      rd„ }|S y y y )Nc                 óÊ   — || k(  r| S t         j                  j                  «       }|| z
  || z
  z  }||kD  rd|z
  }d|z
  }|| }} | || z
  t        j                  ||z  «      z  z   S rç   )r   r¾   r  r  )ÚleftrÏ  ÚrightrÊ  rË  s        r   r¥   z triangular_impl_3.<locals>._implå  su   € Ø˜Š}Ø�Ü—	‘	× Ñ Ó"ˆAØ˜‘ ¨¡Ñ.ˆAØ�1ŠuØ˜!‘G�Ø˜!‘G�Ø# T�e�Ø˜5 4™<¬4¯9©9°Q¸±UÓ+;Ñ;Ñ;Ð;r   rê   )rÓ  rÏ  rÔ  r¥   s       r   rÐ  rÐ  à  sb   € ä�4œ%Ÿ+™+¤u§}¡}Ð5Ô6¼:Ø”5—;‘;¤§¡Ð.ô<0ä�uœuŸ{™{¬E¯M©MÐ:Ô;ò		<ð ˆð <ð<0Ð6r   c                 óþ   — t        |«      rdd„S t        |«      rdd„S t        |t        j                  «      s>t        |t        j
                  «      r+t        |j                  t        j                  «      rdd„}|S y y )Nc                 óD   — t         j                  j                  | ||«      S r   )r   r¾   Ú
triangular©rÓ  rÏ  rÔ  rÀ   s       r   r§   z!triangular_impl.<locals>.<lambda>ö  s   € ´B·I±I×4HÑ4HÈØIMØINô5Pr   c                 ój   — t        j                  t         j                  j                  | ||«      «      S r   )r   rÂ   r¾   r×  rØ  s       r   r§   z!triangular_impl.<locals>.<lambda>û  s#   € ´B·H±HÜ�I‰I× Ñ   t¨UÓ3ô5
r   c                 óÄ   — t        j                  |«      }|j                  }t        |j                  «      D ]&  }t         j
                  j                  | ||«      ||<   Œ( |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   r×  )rÓ  rÏ  rÔ  rÀ   rÈ   rÉ   rd   s          r   r¥   ztriangular_impl.<locals>._impl  sK   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 4Ñ 4°T¸4ÀÓ G�˜’ð 'àˆJr   r   rÊ   )rÓ  rÏ  rÔ  rÀ   r¥   s        r   Útriangular_implrÛ  ó  su   € ä�4ÔòPð 	Pô �dÔò
ð 	
ô 	�4œŸ™Ô'¬J°t¼U¿^¹^Ô,LÜ,6°t·z±zÜ7<·}±}ô-Fó	ð ˆð-Fð -Mr   c                 óà   — t        | t        j                  t        j                  f«      rDt        |t        j                  t        j                  f«      rt	        t
        j
                  «      S y y r   )r‘   r   rÛ   r’   Ú_gammavariate_implr¾   ©ÚalphaÚbetas     r   Úgammavariate_implrá  
  sI   € ä�%œ%Ÿ+™+¤u§}¡}Ð5Ô6¼:Ø”5—;‘;¤§¡Ð.ô<0ä!¤&§-¡-Ó0Ð0ð<0Ð6r   c                 ó^   — t        | t        j                  t        j                  f«      rd„ S y )Nc                 óB   — t         j                  j                  | d«      S rç   ©r   r¾   Úgamma©Úshapes    r   r§   z%ol_np_random_gamma1.<locals>.<lambda>  s   € œRŸY™YŸ_™_¨U°CÔ8r   rê   ræ  s    r   Úol_np_random_gamma1rè    s&   € ô �%œ%Ÿ+™+¤u§}¡}Ð5Ô6Ù8Ð8ð 7r   c                 ó  ‡— t        | t        j                  t        j                  f«      r^t        |t        j                  t        j                  f«      r3t	        t        t        j                  j                  «      «      Šˆfd„}|S y y )Nc                 ó   •—  ‰| |«      S r   r    )rç  rî   r/   s     €r   r�   z!ol_np_random_gamma2.<locals>.impl  s   ø€ Ù�e˜UÓ#Ð#r   )r‘   r   rÛ   r’   r   rÝ  r   r¾   )rç  rî   r�   r/   s      @r   Úol_np_random_gamma2rë    s_   ø€ ä�%œ%Ÿ+™+¤u§}¡}Ð5Ô6¼:Ø”E—K‘K¤§¡Ð/ô<1äÔ0´·±×1AÑ1AÓBÓCˆô	$àˆð<1Ð6r   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó~  •— dt        j                  d«      z   }| dk  s|dk  rt        d«      ‚| dkD  rÍt        j                  d| z  dz
  «      }| t        j                  d«      z
  }| |z   }	  ‰«       }d|cxk  rdk  sn Œd ‰«       z
  }t        j                  |d|z
  z  «      |z  }| t        j                  |«      z  }	||z  |z  }
|||z  z   |	z
  }||z   d|
z  z
  dk\  s|t        j                  |
«      k\  r|	|z  S Œ”| dk(  r!t        j                  d ‰«       z
  «       |z  S 	  ‰«       }t         j
                  | z   t         j
                  z  }||z  }|dk  r	|d| z  z  }	nt        j                  ||z
  | z  «       }	 ‰«       }|dkD  r||	| dz
  z  k  r%	 |	|z  S |t        j                  |	 «      k  r	 |	|z  S Œ—)	z1Gamma distribution.  Taken from CPython.
        rá   g      @rà   z*gammavariate: alpha and beta must be > 0.0r
  g      @gH¯¼šò×z>gËPÊÿÿï?)r  r  r]  r  ÚexpÚe)rß  rà  ÚSG_MAGICCONSTÚainvÚbbbÚcccÚu1Úu2r/  r   ÚzrO  rÊ  rr   Úpr  s                  €r   r¥   z!_gammavariate_impl.<locals>._impl#  sã  ø€ ð œdŸh™h s›mÑ+ˆð
 �CŠ<˜4 3š;ÜÐIÓJÐJà�3Š;ô —9‘9˜S 5™[¨3Ñ.Ó/ˆDØœ$Ÿ(™( 3›-Ñ'ˆCØ˜$‘,ˆCàÙ“Y�Ø˜bÔ+ 8Ô+ØØ™7›9‘_�Ü—H‘H˜R  R¡™[Ó)¨$Ñ.�Øœ$Ÿ(™( 1›+Ñ%�Ø�r‘E˜"‘H�Ø˜˜A™‘I˜a‘K�Ø�}Ñ$ s¨1¡uÑ,°Ò3°q¼D¿H¹HÀQ»KÒ7GØ˜t™8�Oð ð �cŠ\ô
 —H‘H˜S¡7£9™_Ó-Ð-°Ñ4Ð4ð Ù“I�Ü—V‘V˜e‘^¤T§V¡VÑ+�Ø�a‘C�Ø˜’8Ø˜c %™iÑ(‘AäŸ™ 1 Q¡3¨¡+Ó.Ð.�AÙ“Y�Ø�s’7Ø˜Q 5¨3¡;Ñ/Ò/Øð �t‘8ˆOð œ4Ÿ8™8 Q B›<Ò'ØØ�t‘8ˆOð r   r    ©r  r¥   s   ` r   rÝ  rÝ  "  s   ø€ ô6ðn €Lr   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 óB   — t         j                  j                  | |«      S r   rä  ©rç  rî   rÀ   s      r   r§   zgamma_impl.<locals>.<lambda>`  s   € ¬"¯)©)¯/©/¸%ÀÔ*Gr   c                 óh   — t        j                  t         j                  j                  | |«      «      S r   )r   rÂ   r¾   rå  rû  s      r   r§   zgamma_impl.<locals>.<lambda>c  s   € ¬"¯(©(´2·9±9·?±?À5È%Ó3PÔ*Qr   c                 óÂ   — t        j                  |«      }|j                  }t        |j                  «      D ]%  }t         j
                  j                  | |«      ||<   Œ' |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   rå  )rç  rî   rÀ   rÈ   rÉ   rd   s         r   r¥   zgamma_impl.<locals>._implg  sG   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	§¡°°uÓ =�˜’ð 'àˆJr   rÊ   )rç  rî   rÀ   r¥   s       r   Ú
gamma_implrþ  ]  sg   € ä�4ÔÙGÐGÜ�dÔáQÐQÜ�$œŸ™Ô&¬:°d¼E¿N¹NÔ+KÜ+5°d·j±jÜ6;·m±mô,Eò	ð ˆð,Eð ,Lr   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 ó@   — t         j                  j                  | «      S r   ©r   r¾   Ústandard_gamma©rç  rÀ   s     r   r§   z%standard_gamma_impl.<locals>.<lambda>s  s   € ¤2§9¡9×#;Ñ#;¸EÔ#Br   c                 óf   — t        j                  t         j                  j                  | «      «      S r   )r   rÂ   r¾   r  r  s     r   r§   z%standard_gamma_impl.<locals>.<lambda>v  s   € ¤2§8¡8¬B¯I©I×,DÑ,DÀUÓ,KÔ#Lr   c                 óÀ   — t        j                  |«      }|j                  }t        |j                  «      D ]$  }t         j
                  j                  | «      ||<   Œ& |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   r  )rç  rÀ   rÈ   rÉ   rd   s        r   r¥   z"standard_gamma_impl.<locals>._implz  sG   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 8Ñ 8¸Ó ?�˜’ð 'àˆJr   rÊ   )rç  rÀ   r¥   s      r   Ústandard_gamma_implr  p  sg   € ä�4ÔÙBÐBÜ�dÔáLÐLÜ�4œŸ™Ô'¬J°t¼U¿^¹^Ô,LÜ0:¸4¿:¹:Ü;@¿=¹=ô1Jò	ð ˆð1Jð -Mr   c                 óà   — t        | t        j                  t        j                  f«      rDt        |t        j                  t        j                  f«      rt	        t
        j                  «      S y y r   )r‘   r   rÛ   r’   Ú_betavariate_implr¾   ÚgammavariaterÞ  s     r   Úbetavariate_implr
  ƒ  sK   € ä�%œ%Ÿ+™+¤u§}¡}Ð5Ô6¼:Ø”5—;‘;¤§¡Ð.ô<0ä ¤×!4Ñ!4Ó5Ð5ð<0Ð6r   c                 ó  ‡— t        | t        j                  t        j                  f«      r^t        |t        j                  t        j                  f«      r3t	        t        t        j                  j                  «      «      Šˆfd„}|S y y )Nc                 ó   •—  ‰| |«      S r   r    )rq   rr   r/   s     €r   r�   zol_np_random_beta.<locals>.impl�  s   ø€ Ù�a˜“8ˆOr   )	r‘   r   rÛ   r’   r   r  r   r¾   rå  )rq   rr   r�   r/   s      @r   Úol_np_random_betar  Š  s]   ø€ ä�!”e—k‘k¤5§=¡=Ð1Ô2´zØ”—‘œUŸ]™]Ð+ô8-äÔ0´·±·±ÓAÓBˆô	àˆð8-Ð2r   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó@   •—  ‰| d«      }|dk(  ry|| ‰|d«      z   z  S )z0Beta distribution.  Taken from CPython.
        rá   rà   r    )rß  rà  rg   rå  s      €r   r¥   z _betavariate_impl.<locals>._impl•  s1   ø€ ñ
 �%˜ÓˆØ�Š8Øà˜™E $¨›OÑ+Ñ,Ð,r   r    )rå  r¥   s   ` r   r  r  ”  s   ø€ ô	-ð €Lr   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 óB   — t         j                  j                  | |«      S r   )r   r¾   rà  ©rq   rr   rÀ   s      r   r§   zbeta_impl.<locals>.<lambda>¥  s   € ¤"§)¡)§.¡.°°AÔ"6r   c                 óh   — t        j                  t         j                  j                  | |«      «      S r   )r   rÂ   r¾   rà  r  s      r   r§   zbeta_impl.<locals>.<lambda>©  s   € ¤"§(¡(¬2¯9©9¯>©>¸!¸QÓ+?Ô"@r   c                 óÂ   — t        j                  |«      }|j                  }t        |j                  «      D ]%  }t         j
                  j                  | |«      ||<   Œ' |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   rà  )rq   rr   rÀ   rÈ   rÉ   rd   s         r   r¥   zbeta_impl.<locals>._impl­  sG   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	§¡¨q°!Ó 4�˜’ð 'àˆJr   rÊ   )rq   rr   rÀ   r¥   s       r   Ú	beta_implr  ¢  sj   € ä�4ÔÙ6Ð6Ü�dÔñ AÐ@Ü�4œŸ™Ô'¬J°t¼U¿^¹^Ô,LÜ0:¸4¿:¹:Ü;@¿=¹=ô1Jò	ð ˆð1Jð -Mr   c                 óB   — t        | t        j                  «      rd„ }|S y )Nc                 ó^   — t        j                  dt        j                  «       z
  «       | z  S )z;Exponential distribution.  Taken from CPython.
            rá   )r  r  r¾   )Úlambds    r   r¥   zexpovariate_impl.<locals>._impl¹  s&   € ô —H‘H˜S¤6§=¡=£?Ñ2Ó3Ð3°eÑ;Ð;r   ©r‘   r   rÛ   )r  r¥   s     r   Úexpovariate_implr  ¶  s!   € ä�%œŸ™Ô%ò	<ð ˆð &r   c                 ób   — t        | t        j                  t        j                  f«      rd„ }|S y )Nc                 ór   — t        j                  dt        j                  j                  «       z
  «       | z  S rç   ©r  r  r   r¾   ©rî   s    r   r¥   zexponential_impl.<locals>._implÉ  s+   € Ü—H‘H˜S¤2§9¡9×#3Ñ#3Ó#5Ñ5Ó6Ð6¸Ñ>Ð>r   rê   )rî   r¥   s     r   Úexponential_implr  Æ  s(   € ä�%œ%Ÿ+™+¤u§}¡}Ð5Ô6ò	?àˆð 7r   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 ó@   — t         j                  j                  | «      S r   )r   r¾   Úexponential©rî   rÀ   s     r   r§   z"exponential_impl.<locals>.<lambda>Ñ  s   € ¤2§9¡9×#8Ñ#8¸Ô#?r   c                 óf   — t        j                  t         j                  j                  | «      «      S r   )r   rÂ   r¾   r"  r#  s     r   r§   z"exponential_impl.<locals>.<lambda>Ô  s   € ¤2§8¡8¬B¯I©I×,AÑ,AÀ%Ó,HÔ#Ir   c                 óÀ   — t        j                  |«      }|j                  }t        |j                  «      D ]$  }t         j
                  j                  | «      ||<   Œ& |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   r"  ©rî   rÀ   rÈ   rÉ   rd   s        r   r¥   zexponential_impl.<locals>._implØ  sG   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 5Ñ 5°eÓ <�˜’ð 'àˆJr   rÊ   ©rî   rÀ   r¥   s      r   r  r  Î  sg   € ä�4ÔÙ?Ð?Ü�dÔáIÐIÜ�4œŸ™Ô'¬J°t¼U¿^¹^Ô,LÜ,6°t·z±zÜ7<·}±}ô-Fò	ð ˆð-Fð -Mr   c                  ó   — d„ } | S )Nc                  ól   — t        j                  dt        j                  j                  «       z
  «       S rç   r  r    r   r   r¥   zexponential_impl.<locals>._implä  s&   € Ü—‘˜œrŸy™y×/Ñ/Ó1Ñ1Ó2Ð2Ð2r   r    r²   s    r   r  r  á  s   € ò3à€Lr   c                 óø   — t        | «      rd„ S t        | «      rd„ S t        | t        j                  «      s>t        | t        j
                  «      r*t        | j                  t        j                  «      rd„ }|S y y )Nc                 ó>   — t         j                  j                  «       S r   )r   r¾   Ústandard_exponentialr¿   s    r   r§   z+standard_exponential_impl.<locals>.<lambda>ì  s   € œBŸI™I×:Ñ:Ô<r   c                 ód   — t        j                  t         j                  j                  «       «      S r   )r   rÂ   r¾   r,  r¿   s    r   r§   z+standard_exponential_impl.<locals>.<lambda>ï  s   € œBŸH™H¤R§Y¡Y×%CÑ%CÓ%EÔFr   c                 ó¾   — t        j                  | «      }|j                  }t        |j                  «      D ]#  }t         j
                  j                  «       ||<   Œ% |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   r,  rÇ   s       r   r¥   z(standard_exponential_impl.<locals>._implô  sE   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× >Ñ >Ó @�˜’ð 'àˆJr   rÊ   rÍ   s     r   Ústandard_exponential_implr/  é  sd   € ä�4ÔÙ<Ð<Ü�dÔáFÐFÜ�4œŸ™Ô'Ü�4œŸ™Ô(¬Z¸¿
¹
Ü8=¿¹ô.Gò	ð ˆð.GÐ(r   c                  ó   — d„ S )Nc                  óB   — t         j                  j                  dd«      S rß   ©r   r¾   Ú	lognormalr    r   r   r§   z$np_lognormal_impl0.<locals>.<lambda>ÿ  s   € ”2—9‘9×&Ñ& s¨CÔ0r   r    r    r   r   Únp_lognormal_impl0r4  ý  s   € á0Ð0r   c                 ó^   — t        | t        j                  t        j                  f«      rd„ S y )Nc                 óB   — t         j                  j                  | d«      S rç   r2  ©Úmeans    r   r§   z%np_log_normal_impl1.<locals>.<lambda>  s   € œBŸI™I×/Ñ/°°cÔ:r   rê   r7  s    r   Únp_log_normal_impl1r9    s$   € ä�$œŸ™¤e§m¡mÐ4Ô5Ù:Ð:ð 6r   c                 ó  ‡— t        | t        j                  t        j                  f«      r\t        |t        j                  t        j                  f«      r1t	        t        t        j                  j                  «      «      Šˆfd„S y y )Nc                 ó   •—  ‰| |«      S r   r    ©r8  rÕ   r/   s     €r   r§   z%np_log_normal_impl2.<locals>.<lambda>  s   ø€ ¡2 d¨E¤?r   )	r‘   r   rÛ   r’   r   Ú_lognormvariate_implr   r¾   rã   r<  s     @r   Únp_log_normal_impl2r>    s[   ø€ ä�$œŸ™¤e§m¡mÐ4Ô5¼*Ø”E—K‘K¤§¡Ð/ô;1äÔ2´2·9±9×3CÑ3CÓDÓEˆÛ2Ð2ð;1Ð5r   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 óB   — t         j                  j                  | |«      S r   r2  ©r8  rÕ   rÀ   s      r   r§   z lognormal_impl.<locals>.<lambda>  s   € ¬¯©×)<Ñ)<¸TÀ5Ô)Ir   c                 óh   — t        j                  t         j                  j                  | |«      «      S r   )r   rÂ   r¾   r3  rA  s      r   r§   z lognormal_impl.<locals>.<lambda>  s   € ¬¯©´"·)±)×2EÑ2EÀdÈEÓ2RÔ)Sr   c                 óÂ   — t        j                  |«      }|j                  }t        |j                  «      D ]%  }t         j
                  j                  | |«      ||<   Œ' |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   r3  )r8  rÕ   rÀ   rÈ   rÉ   rd   s         r   r¥   zlognormal_impl.<locals>._impl  sI   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 3Ñ 3°D¸%Ó @�˜’ð 'àˆJr   rÊ   )r8  rÕ   rÀ   r¥   s       r   Úlognormal_implrD    sg   € ä�4ÔÙIÐIÜ�dÔáSÐSÜ�4œŸ™Ô'¬J°t¼U¿^¹^Ô,LÜ,6°t·z±zÜ7<·}±}ô-Fò	ð ˆð-Fð -Mr   c                 ó¾   ‡— t        | t        j                  «      rBt        |t        j                  «      r't        t	        t
        j                  «      «      Šˆfd„S y y )Nc                 ó   •—  ‰| |«      S r   r    ©rÔ   rÕ   r/   s     €r   r§   z%lognormvariate_impl.<locals>.<lambda>'  s   ø€ ¡ B¨¤r   )r‘   r   rÛ   r   r=  r¾   ÚgaussrG  s     @r   Úlognormvariate_implrI  #  sA   ø€ ä�"”e—k‘kÔ"¤z°%¼¿¹Ô'EÜÔ2´6·<±<Ó@ÓAˆÛ.Ð.ð (FÐ"r   c                 ó   ‡ — ˆ fd„S )Nc                 ó<   •— t        j                   ‰| |«      «      S r   )r  rî  )rÔ   rÕ   Ú_gausss     €r   r§   z&_lognormvariate_impl.<locals>.<lambda>+  s   ø€ œTŸX™X¡f¨R°Ó&7Ô8r   r    )rL  s   `r   r=  r=  *  s	   ø€ Û8Ð8r   c                 óB   — t        | t        j                  «      rd„ }|S y )Nc                 óF   — dt        j                   «       z
  }d|d| z  z  z  S )z)Pareto distribution.  Taken from CPython.rá   )r¾   )rß  rÊ  s     r   r¥   z!paretovariate_impl.<locals>._impl1  s(   € ð ”f—m‘m“oÑ%ˆAØ˜˜s 5™yÑ)Ñ)Ð)r   r  )rß  r¥   s     r   Úparetovariate_implrO  .  s!   € ä�%œŸ™Ô%ò	*ð ˆð &r   c                 óB   — t        | t        j                  «      rd„ }|S y )Nc                 ó`   — dt         j                  j                  «       z
  }d|d| z  z  z  dz
  S )Nrá   rD   r½   ©rq   rÊ  s     r   r¥   zpareto_impl.<locals>._impl=  s1   € à”b—i‘i×&Ñ&Ó(Ñ(ˆAØ˜˜s 1™u™Ñ%¨Ñ)Ð)r   r  ©rq   r¥   s     r   Úpareto_implrT  :  s!   € ä�!”U—[‘[Ô!ò	*ð
 ˆð "r   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 ó@   — t         j                  j                  | «      S r   )r   r¾   Úpareto©rq   rÀ   s     r   r§   zpareto_impl.<locals>.<lambda>H  s   € œrŸy™y×/Ñ/°Ô2r   c                 óf   — t        j                  t         j                  j                  | «      «      S r   )r   rÂ   r¾   rW  rX  s     r   r§   zpareto_impl.<locals>.<lambda>K  s   € œrŸx™x¬¯	©	×(8Ñ(8¸Ó(;Ô<r   c                 óÀ   — t        j                  |«      }|j                  }t        |j                  «      D ]$  }t         j
                  j                  | «      ||<   Œ& |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   rW  ©rq   rÀ   rÈ   rÉ   rd   s        r   r¥   zpareto_impl.<locals>._implO  sG   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 0Ñ 0°Ó 3�˜’ð 'àˆJr   rÊ   ©rq   rÀ   r¥   s      r   rT  rT  E  sg   € ä�4ÔÙ2Ð2Ü�dÔá<Ð<Ü�4œŸ™Ô'¬J°t¼U¿^¹^Ô,LÜ,6°t·z±zÜ7<·}±}ô-Fò	ð ˆð-Fð -Mr   c                 ó¸   — t        | t        j                  t        j                  f«      r0t        |t        j                  t        j                  f«      rd„ }|S y y )Nc                 ón   — dt        j                   «       z
  }| t        j                  |«       d|z  z  z  S )z*Weibull distribution.  Taken from CPython.rá   )r¾   r  r  )rß  rà  rÊ  s      r   r¥   z"weibullvariate_impl.<locals>._impl\  s2   € ð ”f—m‘m“oÑ%ˆAØœTŸX™X a›[˜L¨c°$©hÑ7Ñ7Ð7r   rê   )rß  rà  r¥   s      r   Úweibullvariate_implr_  X  sF   € ä�%œ%Ÿ+™+¤u§}¡}Ð5Ô6¼:Ø”5—;‘;¤§¡Ð.ô<0ò	8ð ˆð<0Ð6r   c                 ób   — t        | t        j                  t        j                  f«      rd„ }|S y )Nc                 ó|   — dt         j                  j                  «       z
  }t        j                  |«       d| z  z  S rç   ©r   r¾   r  r  rR  s     r   r¥   zweibull_impl.<locals>._implh  s2   € à”b—i‘i×&Ñ&Ó(Ñ(ˆAÜ—X‘X˜a“[�L c¨!¡eÑ,Ð,r   rê   rS  s     r   Úweibull_implrc  e  s*   € ä�!”e—k‘k¤5§=¡=Ð1Ô2ò	-ð
 ˆð 3r   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 ó@   — t         j                  j                  | «      S r   )r   r¾   ÚweibullrX  s     r   r§   zweibull_impl2.<locals>.<lambda>s  s   € œrŸy™y×0Ñ0°Ô3r   c                 óf   — t        j                  t         j                  j                  | «      «      S r   )r   rÂ   r¾   rf  rX  s     r   r§   zweibull_impl2.<locals>.<lambda>v  s   € œrŸx™x¬¯	©	×(9Ñ(9¸!Ó(<Ô=r   c                 óÀ   — t        j                  |«      }|j                  }t        |j                  «      D ]$  }t         j
                  j                  | «      ||<   Œ& |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   rf  r[  s        r   r¥   zweibull_impl2.<locals>._implz  sG   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 1Ñ 1°!Ó 4�˜’ð 'àˆJr   rÊ   r\  s      r   Úweibull_impl2ri  p  sg   € ä�4ÔÙ3Ð3Ü�dÔá=Ð=Ü�4œŸ™Ô'¬J°t¼U¿^¹^Ô,LÜ,6°t·z±zÜ7<·}±}ô-Fò	ð ˆð-Fð -Mr   c                 ó    — t        | t        j                  «      r4t        |t        j                  «      rt        t        j                  «      S y y r   )r‘   r   rÛ   Ú_vonmisesvariate_implr¾   ©rÔ   Úkappas     r   Úvonmisesvariate_implrn  ƒ  s5   € ä�"”e—k‘kÔ"¤z°%¼¿¹Ô'EÜ$¤V§]¡]Ó3Ð3ð (FÐ"r   c                 ó´   — t        | t        j                  «      r>t        |t        j                  «      r#t        t        j
                  j
                  «      S y y r   )r‘   r   rÛ   rk  r   r¾   rl  s     r   rn  rn  ‰  s;   € ä�"”e—k‘kÔ"¤z°%¼¿¹Ô'EÜ$¤R§Y¡Y×%5Ñ%5Ó6Ð6ð (FÐ"r   c                 ó   ‡ — ˆ fd„}|S )Nc                 óP  •— |dk  rdt         j                  z   ‰«       z  S d|z  }|t        j                  d||z  z   «      z   }	  ‰«       }t        j                  t         j                  |z  «      }|||z   z  } ‰«       }|d||z  z
  k  s|d|z
  t        j                  |«      z  k  rnŒgd|z  }||z   d||z  z   z  }	 ‰«       }
|
dkD  r.| t        j
                  |	«      z   dt         j                  z  z  }|S | t        j
                  |	«      z
  dt         j                  z  z  }|S )z¤Circular data distribution.  Taken from CPython.
        Note the algorithm in Python 2.6 and Numpy is different:
        http://bugs.python.org/issue17141
        g�íµ ÷Æ°>r
  rÈ  rá   )r  Úpir  Úcosrî  Úacos)rÔ   rm  ÚsrO  rô  rö  Údrõ  Úqr  Úu3Úthetar  s               €r   r¥   z$_vonmisesvariate_impl.<locals>._impl�  s$  ø€ ð �DŠ=ØœŸ™‘=¡7£9Ñ,Ð,à�%‰KˆØ”—	‘	˜#  A¡™+Ó&Ñ&ˆàÙ“ˆBÜ—‘œŸ™ 2™Ó&ˆAà�Q˜‘U‘ˆAÙ“ˆBØ�C˜!˜a™%‘KÒ 2¨#°©'´T·X±X¸a³[Ñ)@Ò#@Øð ð �!‰GˆØ�‰U�s˜Q ™U‘{Ñ#ˆÙ‹YˆØ�Š8Øœ$Ÿ)™) A›,Ñ&¨3´·±©=Ñ9ˆEð ˆð œ$Ÿ)™) A›,Ñ&¨3´·±©=Ñ9ˆEàˆr   r    rø  s   ` r   rk  rk  �  s   ø€ ô&ðP €Lr   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 óB   — t         j                  j                  | |«      S r   )r   r¾   Úvonmises©rÔ   rm  rÀ   s      r   r§   zvonmises_impl.<locals>.<lambda>¾  s   € ¤r§y¡y×'9Ñ'9¸"¸eÔ'Dr   c                 óh   — t        j                  t         j                  j                  | |«      «      S r   )r   rÂ   r¾   r|  r}  s      r   r§   zvonmises_impl.<locals>.<lambda>Á  s   € ¤r§x¡x´·	±	×0BÑ0BÀ2ÀuÓ0MÔ'Nr   c                 óÂ   — t        j                  |«      }|j                  }t        |j                  «      D ]%  }t         j
                  j                  | |«      ||<   Œ' |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   r|  )rÔ   rm  rÀ   rÈ   rÉ   rd   s         r   r¥   zvonmises_impl.<locals>._implÅ  sI   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 2Ñ 2°2°uÓ =�˜’ð 'àˆJr   rÊ   )rÔ   rm  rÀ   r¥   s       r   Úvonmises_implr€  »  óg   € ä�4ÔÙDÐDÜ�dÔáNÐNÜ�4œŸ™Ô'¬J°t¼U¿^¹^Ô,LÜ0:¸4¿:¹:Ü;@¿=¹=ô1Jò	ð ˆð1Jð -Mr   c                 ó˜   — t        | t        j                  «      r0t        |t        j                  t        j                  f«      rd„ }|S y y )Nc           	      ó4  — | dk  rt        d«      ‚d|cxk  rdk  st        d«      ‚ t        d«      ‚|dk(  ry|dk(  r| S |dkD  }|rd|z
  }d|z
  }d}|| z  }|dk  r|d	z  }| d	z  } || z  }| dkD  sJ ‚|dk  rŒ| |z  }t        | |d
t        j                  ||z  dz   «      z  z   «      }d}|dkD  rhd}	t        j
                  j                  «       }
|}|	|k  r;|
|k  r||r| |	z
  n|	z  }|dz  }n$|
|z  }
|	dz  }	| |	z
  dz   |z  |z  |	|z  z  }|	|k  rŒ;|dkD  rŒh|S )z 
            Binomial distribution.  Numpy's variant of the BINV algorithm
            is used.
            (Numpy uses BTPE for n*p >= 30, though)
            r   zbinomial(): n <= 0rà   rá   zbinomial(): p outside of [0, 1]rÈ  rD   gÒèxÖ0 rG   ç      $@)r]  Úminr  r  r   r¾   )rL  r÷  Úflippedrw  ÚnitersÚqnÚnp_prodÚboundrŒ   ÚXÚUÚpxs               r   r¥   zbinomial_impl.<locals>._implÒ  s‰  € ð �1ŠuÜ Ð!5Ó6Ð6Ø˜1”O ’OÜ Ð!BÓCÐCð $Ü Ð!BÓCÐCØ�CŠxØØ�CŠxØ�à˜#‘gˆGÙØ˜!‘G�Ø�a‘ˆAàˆFØ�a‘ˆBØ˜’,ð ˜1‘�Ø�a‘�Ø˜!‘V�Ø˜1’u��uð ˜“,ð ˜!‘eˆGÜ˜˜7 T¬D¯I©I°gÀ±kÀA±oÓ,FÑ%FÑFÓGˆEàˆEØ˜1’*Ø�Ü—I‘I×$Ñ$Ó&�Ø�Ø˜5’jØ˜B’wØ©'  Q¢°qÑ8˜Ø !™˜ØØ˜‘G�AØ˜‘F�AØ˜q™5 1™9¨™/¨BÑ.°1°q±5Ñ9�Bð ˜5“jð	 ˜1“*ð ˆLr   )r‘   r   r’   rÛ   ©rL  r÷  r¥   s      r   Úbinomial_implr�  Î  s?   € ä�!”U—]‘]Ô#¬
Ø”—‘œUŸ]™]Ð+ô)-ò/	ðb ˆðg)-Ð#r   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 óB   — t         j                  j                  | |«      S r   )r   r¾   Úbinomial©rL  r÷  rÀ   s      r   r§   zbinomial_impl.<locals>.<lambda>	  s   € ¤"§)¡)×"4Ñ"4°Q¸Ô":r   c                 óh   — t        j                  t         j                  j                  | |«      «      S r   )r   rÂ   r¾   r’  r“  s      r   r§   zbinomial_impl.<locals>.<lambda>  s   € ¤"§(¡(¬2¯9©9×+=Ñ+=¸aÀÓ+CÔ"Dr   c                 óâ   — t        j                  |t         j                  ¬«      }|j                  }t	        |j
                  «      D ]%  }t         j                  j                  | |«      ||<   Œ' |S r¤  )r   rÄ   ÚintprÅ   rÆ   rÀ   r¾   r’  )rL  r÷  rÀ   rÈ   rÉ   rd   s         r   r¥   zbinomial_impl.<locals>._impl  sP   € Ü—(‘(˜4¤r§w¡wÔ/ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 2Ñ 2°1°aÓ 8�˜’ð 'àˆJr   rÊ   )rL  r÷  rÀ   r¥   s       r   r�  r�    sj   € ä�4ÔÙ:Ð:Ü�dÔñ EÐDÜ�4œŸ™Ô'¬J°t¼U¿^¹^Ô,LÜ,6°t·z±zÜ7<·}±}ô-Fò	ð ˆð-Fð -Mr   c                 ób   — t        | t        j                  t        j                  f«      rd„ }|S y )Nc                 óL   — dt         j                  j                  | dz  «      z  S ©Nr
  r  )Údfs    r   r¥   zchisquare_impl.<locals>._impl  s    € ØœŸ™×1Ñ1°"°s±(Ó;Ñ;Ð;r   rê   ©rš  r¥   s     r   Úchisquare_implrœ    s*   € ä�"”u—{‘{¤E§M¡MÐ2Ô3ò	<ð ˆð	 4r   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 ó@   — t         j                  j                  | «      S r   ©r   r¾   Ú	chisquare©rš  rÀ   s     r   r§   z!chisquare_impl2.<locals>.<lambda>&  s   € ¤§	¡	× 3Ñ 3°BÔ 7r   c                 óf   — t        j                  t         j                  j                  | «      «      S r   )r   rÂ   r¾   r   r¡  s     r   r§   z!chisquare_impl2.<locals>.<lambda>(  s   € ¤§¡¬¯©×)<Ñ)<¸RÓ)@Ô Ar   c                 óÀ   — t        j                  |«      }|j                  }t        |j                  «      D ]$  }t         j
                  j                  | «      ||<   Œ& |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   r   ©rš  rÀ   rÈ   rÉ   rd   s        r   r¥   zchisquare_impl2.<locals>._impl,  sG   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 3Ñ 3°BÓ 7�˜’ð 'àˆJr   rÊ   ©rš  rÀ   r¥   s      r   Úchisquare_impl2r¦  #  sg   € ä�4ÔÙ7Ð7Ü�dÔÙAÐAÜ�4œŸ™Ô'¬J°t¼U¿^¹^Ô,LÜ,6°t·z±zÜ7<·}±}ô-Fò	ð ˆð-Fð -Mr   c                 ó¸   — t        | t        j                  t        j                  f«      r0t        |t        j                  t        j                  f«      rd„ }|S y y )Nc                 óŒ   — t         j                  j                  | «      |z  t         j                  j                  |«      | z  z  S r   rŸ  )ÚdfnumÚdfdens     r   r¥   zf_impl.<locals>._impl9  s:   € Ü—Y‘Y×(Ñ(¨Ó/°%Ñ7Ü—Y‘Y×(Ñ(¨Ó/°%Ñ7ñ9ð :r   rê   )r©  rª  r¥   s      r   Úf_implr«  5  sF   € ä�%œ%Ÿ+™+¤u§}¡}Ð5Ô6¼:Ø”E—K‘K¤§¡Ð/ô<1ò	:ð ˆð<1Ð6r   c                 óH  — t        | t        j                  t        j                  f«      r8t        |t        j                  t        j                  f«      rt	        |«      rd„ S t        | t        j                  t        j                  f«      r8t        |t        j                  t        j                  f«      rt        |«      rd„ S t        |t        j                  «      s>t        |t        j                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 óB   — t         j                  j                  | |«      S r   )r   r¾   r  ©r©  rª  rÀ   s      r   r§   zf_impl.<locals>.<lambda>E  s   € ¬"¯)©)¯+©+°e¸UÔ*Cr   c                 óh   — t        j                  t         j                  j                  | |«      «      S r   )r   rÂ   r¾   r  r®  s      r   r§   zf_impl.<locals>.<lambda>J  s   € ¬"¯(©(´2·9±9·;±;¸uÀeÓ3LÔ*Mr   c                 óÂ   — t        j                  |«      }|j                  }t        |j                  «      D ]%  }t         j
                  j                  | |«      ||<   Œ' |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   r  )r©  rª  rÀ   rÈ   rÉ   rd   s         r   r¥   zf_impl.<locals>._implN  sG   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	§¡¨E°5Ó 9�˜’ð 'àˆJr   r  )r©  rª  rÀ   r¥   s       r   r«  r«  @  sÇ   € ä�5œ5Ÿ;™;¬¯©Ð6Ô7¼JØ”E—K‘K¤§¡Ð/ô=1ä�4ÔÙCÐCÜ�5œ5Ÿ;™;¬¯©Ð6Ô7¼JØ”E—K‘K¤§¡Ð/ô=1ä�dÔáMÐMÜ�4œŸ™Ô'¬J°t¼U¿^¹^Ô,LÜ0:¸4¿:¹:Ü;@¿=¹=ô1Jò	ð ˆð1Jð -Mr   c                 ób   — t        | t        j                  t        j                  f«      rd„ }|S y )Nc                 óŒ  — | dk  s| dkD  rt        d«      ‚d| z
  }| dk\  rIt        d«      }| x}}t        j                  j                  «       }||kD  r||z  }||z  }|dz  }||kD  rŒ|S t	        j
                  t	        j                  dt        j                  j                  «       z
  «      t	        j                  |«      z  «      S )Nrà   rá   z geometric(): p outside of (0, 1]gUUUUUUÕ?rD   )r]  r¢  r   r¾   r  Úceilr  )r÷  rw  r‹  ÚsumÚprodrŒ  s         r   r¥   zgeometric_impl.<locals>._implZ  sÁ   € à�CŠx˜1˜sš7Ü Ð!CÓDÐDØ�a‘ˆAØÐ.Ò.Ü˜“F�Ø���dÜ—I‘I×$Ñ$Ó&�Ø˜#’gØ˜A‘I�DØ˜4‘K�CØ˜‘F�Að ˜#“gð �ä—y‘y¤§¡¨#´·	±	×0@Ñ0@Ó0BÑ*BÓ!CÜ!%§¡¨!£ñ"-ó .ð .r   rê   )r÷  r¥   s     r   Úgeometric_implr¶  W  s*   € ä�!”e—k‘k¤5§=¡=Ð1Ô2ò	.ð$ ˆð' 3r   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 ó@   — t         j                  j                  | «      S r   )r   r¾   Ú	geometric©r÷  rÀ   s     r   r§   z geometric_impl.<locals>.<lambda>r  ó   € œrŸy™y×2Ñ2°1Ô5r   c                 óf   — t        j                  t         j                  j                  | «      «      S r   )r   rÂ   r¾   r¹  rº  s     r   r§   z geometric_impl.<locals>.<lambda>u  ó   € œrŸx™x¬¯	©	×(;Ñ(;¸AÓ(>Ô?r   c                 óà   — t        j                  |t         j                  ¬«      }|j                  }t	        |j
                  «      D ]$  }t         j                  j                  | «      ||<   Œ& |S r¤  )r   rÄ   Úint64rÅ   rÆ   rÀ   r¾   r¹  ©r÷  rÀ   rÈ   rÉ   rd   s        r   r¥   zgeometric_impl.<locals>._imply  óN   € Ü—(‘(˜4¤r§x¡xÔ0ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 3Ñ 3°AÓ 6�˜’ð 'àˆJr   rÊ   ©r÷  rÀ   r¥   s      r   r¶  r¶  o  sg   € ä�4ÔÙ5Ð5Ü�dÔá?Ð?Ü�4œŸ™Ô'¬J°t¼U¿^¹^Ô,LÜ,6°t·z±zÜ7<·}±}ô-Fò	ð ˆð-Fð -Mr   c                 ó¸   — t        | t        j                  t        j                  f«      r0t        |t        j                  t        j                  f«      rd„ }|S y y )Nc                 ó¢   — dt         j                  j                  «       z
  }| |t        j                  t        j                  |«       «      z  z
  S rç   rb  ©ré   rî   rŒ  s      r   r¥   zgumbel_impl.<locals>._impl†  s<   € Ø”b—i‘i×&Ñ&Ó(Ñ(ˆAØ˜¤§¡¬4¯8©8°A«;¨,Ó!7Ñ7Ñ7Ð7r   rê   rð   s      r   Úgumbel_implrÆ  ‚  sF   € ä�#œŸ™¤U§]¡]Ð3Ô4¼Ø”E—K‘K¤§¡Ð/ô:1ò	8ð ˆð:1Ð4r   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 óB   — t         j                  j                  | |«      S r   )r   r¾   Úgumbelrþ   s      r   r§   zgumbel_impl3.<locals>.<lambda>�  rÿ   r   c                 óh   — t        j                  t         j                  j                  | |«      «      S r   )r   rÂ   r¾   rÉ  rþ   s      r   r§   zgumbel_impl3.<locals>.<lambda>“  r  r   c                 óÂ   — t        j                  |«      }|j                  }t        |j                  «      D ]%  }t         j
                  j                  | |«      ||<   Œ' |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   rÉ  r  s         r   r¥   zgumbel_impl3.<locals>._impl—  r  r   rÊ   r  s       r   Úgumbel_impl3rÌ  �  r�  r   c                 ó  — t        | t        j                  t        j                  f«      r[t        |t        j                  t        j                  f«      r0t        |t        j                  t        j                  f«      rd„ }|S y y y )Nc                 ó€  — t        |«      t        | «      z   t        |«      z
  }t        t        || «      «      }|}t        |«      }|dkD  rR|dkD  rM|t        j                  t
        j                  j                  «       |||z   z  z   «      z  }|dz  }|dkD  r|dkD  rŒMt        ||z
  «      }| |kD  rt        |«      |z
  S |S )z'Numpy's algorithm for hypergeometric().rà   r   rD   )r¢  Úfloatr…  r  Úfloorr   r¾   )ÚngoodÚnbadÚnsampleÚd1Úd2ÚYÚKÚZs           r   r¥   z"hypergeometric_impl.<locals>._impl¥  s¸   € ä�T“œS ›ZÑ'¬#¨g«,Ñ6ˆBÜ”s˜4 Ó'Ó(ˆBàˆAÜ�G“ˆAØ�c’'˜a !šeØ”T—Z‘Z¤§	¡	× 0Ñ 0Ó 2°Q¸"¸q¹&±\Ñ AÓBÑB�Ø�Q‘�ð �c’'˜a !›eô �B˜‘F“ˆAØ�tŠ|Ü˜7“| aÑ'Ð'à�r   rê   )rÑ  rÒ  rÓ  r¥   s       r   Úhypergeometric_implrÙ     sb   € ä�5œ5Ÿ;™;¬¯©Ð6Ô7¼JØ”5—;‘;¤§¡Ð.ô=0ä�g¤§¡¬U¯]©]Ð;Ô<ò	ð  ˆð# =ð=0Ð7r   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 óD   — t         j                  j                  | ||«      S r   )r   r¾   Úhypergeometric©rÑ  rÒ  rÓ  rÀ   s       r   r§   z%hypergeometric_impl.<locals>.<lambda>»  s   € Ü�I‰I×$Ñ$ U¨D°'Ô:r   c                 ój   — t        j                  t         j                  j                  | ||«      «      S r   )r   rÂ   r¾   rÜ  rÝ  s       r   r§   z%hypergeometric_impl.<locals>.<lambda>¿  s!   € Ü�H‰H”R—Y‘Y×-Ñ-¨e°T¸7ÓCÔDr   c                 óä   — t        j                  |t         j                  ¬«      }|j                  }t	        |j
                  «      D ]&  }t         j                  j                  | ||«      ||<   Œ( |S r¤  )r   rÄ   r–  rÅ   rÆ   rÀ   r¾   rÜ  )rÑ  rÒ  rÓ  rÀ   rÈ   rÉ   rd   s          r   r¥   z"hypergeometric_impl.<locals>._implÄ  sR   € Ü—(‘(˜4¤r§w¡wÔ/ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 8Ñ 8¸ÀÀgÓ N�˜’ð 'àˆJr   rÊ   )rÑ  rÒ  rÓ  rÀ   r¥   s        r   rÙ  rÙ  ¸  sq   € ä�4Ôñ;ð 	;ä�dÔñEð 	Eä�4œŸ™Ô'¬J°t¼U¿^¹^Ô,LÜ0:¸4¿:¹:Ü;@¿=¹=ô1Jò	ð ˆð1Jð -Mr   c                  ó   — d„ S )Nc                  óB   — t         j                  j                  dd«      S rß   ©r   r¾   Úlaplacer    r   r   r§   zlaplace_impl0.<locals>.<lambda>Ï  r¬  r   r    r    r   r   Úlaplace_impl0rä  Í  r®  r   c                 ó^   — t        | t        j                  t        j                  f«      rd„ S y )Nc                 óB   — t         j                  j                  | d«      S rç   râ  rè   s    r   r§   zlaplace_impl1.<locals>.<lambda>Õ  s   € œ2Ÿ9™9×,Ñ,¨S°#Ô6r   rê   rè   s    r   Úlaplace_impl1rç  Ò  s$   € ä�#œŸ™¤U§]¡]Ð3Ô4Ù6Ð6ð 5r   c                 óº   — t        | t        j                  t        j                  f«      r1t        |t        j                  t        j                  f«      rt        S y y r   )r‘   r   rÛ   r’   Úlaplace_impl©ré   rî   s     r   Úlaplace_impl2rë  Ø  s@   € ä�#œŸ™¤U§]¡]Ð3Ô4¼Ø”E—K‘K¤§¡Ð/ô:1äÐð:1Ð4r   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 óB   — t         j                  j                  | |«      S r   râ  rþ   s      r   r§   zlaplace_impl3.<locals>.<lambda>â  s   € ¬¯	©	×(9Ñ(9¸#¸uÔ(Er   c                 óh   — t        j                  t         j                  j                  | |«      «      S r   )r   rÂ   r¾   rã  rþ   s      r   r§   zlaplace_impl3.<locals>.<lambda>å  s   € ¬¯©´·±×1BÑ1BÀ3ÈÓ1NÔ(Or   c                 óÂ   — t        j                  |«      }|j                  }t        |j                  «      D ]%  }t         j
                  j                  | |«      ||<   Œ' |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   rã  r  s         r   r¥   zlaplace_impl3.<locals>._implé  sI   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 1Ñ 1°#°uÓ =�˜’ð 'àˆJr   rÊ   r  s       r   Úlaplace_impl3rð  ß  sg   € ä�4ÔÙEÐEÜ�dÔáOÐOÜ�$œŸ™Ô&¬:°d¼E¿N¹NÔ+KÜ+5°d·j±jÜ6;·m±mô,Eò	ð ˆð,Eð ,Lr   c                 óÆ   — t         j                  j                  «       }|dk  r| |t        j                  ||z   «      z  z   S | |t        j                  d|z
  |z
  «      z  z
  S )NrÈ  r
  rb  rÅ  s      r   ré  ré  ò  sX   € Ü
�	‰	×ÑÓ€AØˆ3‚wØ�UœTŸX™X a¨!¡e›_Ñ,Ñ,Ð,à�UœTŸX™X c¨A¡g°¡kÓ2Ñ2Ñ2Ð2r   c                  ó   — d„ S )Nc                  óB   — t         j                  j                  dd«      S rß   ©r   r¾   Úlogisticr    r   r   r§   z logistic_impl0.<locals>.<lambda>ü  s   € ”2—9‘9×%Ñ% c¨3Ô/r   r    r    r   r   Úlogistic_impl0rö  ú  s   € á/Ð/r   c                 ó^   — t        | t        j                  t        j                  f«      rd„ S y )Nc                 óB   — t         j                  j                  | d«      S rç   rô  rè   s    r   r§   z logistic_impl1.<locals>.<lambda>  s   € œ2Ÿ9™9×-Ñ-¨c°3Ô7r   rê   rè   s    r   Úlogistic_impl1rù  ÿ  s$   € ä�#œŸ™¤U§]¡]Ð3Ô4Ù7Ð7ð 5r   c                 óº   — t        | t        j                  t        j                  f«      r1t        |t        j                  t        j                  f«      rt        S y y r   )r‘   r   rÛ   r’   Úlogistic_implrê  s     r   Úlogistic_impl2rü    s@   € ä�#œŸ™¤U§]¡]Ð3Ô4¼Ø”E—K‘K¤§¡Ð/ô:1äÐð:1Ð4r   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 óB   — t         j                  j                  | |«      S r   rô  rþ   s      r   r§   z logistic_impl3.<locals>.<lambda>  s   € ¬¯	©	×(:Ñ(:¸3ÀÔ(Fr   c                 óh   — t        j                  t         j                  j                  | |«      «      S r   )r   rÂ   r¾   rõ  rþ   s      r   r§   z logistic_impl3.<locals>.<lambda>  s   € ¬¯©´·±×1CÑ1CÀCÈÓ1OÔ(Pr   c                 óÂ   — t        j                  |«      }|j                  }t        |j                  «      D ]%  }t         j
                  j                  | |«      ||<   Œ' |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   rõ  r  s         r   r¥   zlogistic_impl3.<locals>._impl  sI   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 2Ñ 2°3¸Ó >�˜’ð 'àˆJr   rÊ   r  s       r   Úlogistic_impl3r    sg   € ä�4ÔÙFÐFÜ�dÔáPÐPÜ�4œŸ™Ô'¬J°t¼U¿^¹^Ô,LÜ0:¸4¿:¹:Ü;@¿=¹=ô1Jò	ð ˆð1Jð -Mr   c                 ó€   — t         j                  j                  «       }| |t        j                  |d|z
  z  «      z  z   S rç   rb  rÅ  s      r   rû  rû    s5   € Ü
�	‰	×ÑÓ€AØ�œŸ™ ! s¨Q¡w¡-Ó0Ñ0Ñ0Ð0r   c                 ó¸  — | dk  s| dkD  rt        d«      ‚t        j                  d| z
  «      }	 t        j                  j	                  «       }|| k\  ryt        j                  j	                  «       }dt        j
                  ||z  «      z
  }|||z  k  rAt        j                  dt        j                  |«      t        j                  |«      z  z   «      S ||k\  ryy)z"Numpy's algorithm for logseries().rà   rá   z logseries(): p outside of (0, 1]rD   rG   )r]  r  r  r   r¾   rî  r¿  )r÷  rO  ÚVrŒ  rw  s        r   Ú_logseries_implr  $  sµ   € àˆC‚x�1�s’7ÜÐ;Ó<Ð<Ü�‰��q‘Ó€Aà
Ü�I‰I×ÑÓˆØ�Š6ØÜ�I‰I×ÑÓˆØ”$—(‘(˜1˜q™5“/Ñ!ˆØ��A‘Š:ä—8‘8˜C¤$§(¡(¨1£+´·±¸³Ñ";Ñ;Ó<Ð<Ø�!ŠVØàr   c                 ód   — t        | t        j                  t        j                  f«      rt        S y r   )r‘   r   rÛ   r’   r  )r÷  s    r   Úlogseries_implr  9  s$   € ä�!”e—k‘k¤5§=¡=Ð1Ô2ÜÐð 3r   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 ó@   — t         j                  j                  | «      S r   )r   r¾   Ú	logseriesrº  s     r   r§   z logseries_impl.<locals>.<lambda>B  r»  r   c                 óf   — t        j                  t         j                  j                  | «      «      S r   )r   rÂ   r¾   r
  rº  s     r   r§   z logseries_impl.<locals>.<lambda>D  r½  r   c                 óà   — t        j                  |t         j                  ¬«      }|j                  }t	        |j
                  «      D ]$  }t         j                  j                  | «      ||<   Œ& |S r¤  )r   rÄ   r¿  rÅ   rÆ   rÀ   r¾   r
  rÀ  s        r   r¥   zlogseries_impl.<locals>._implH  rÁ  r   rÊ   rÂ  s      r   r  r  ?  sg   € ä�4ÔÙ5Ð5Ü�dÔÙ?Ð?Ü�$œŸ™Ô&¬:°d¼E¿N¹NÔ+KÜ+5°d·j±jÜ6;·m±mô,Eò	ð ˆð,Eð ,Lr   c                 ó¸   — t        | t        j                  t        j                  f«      r0t        |t        j                  t        j                  f«      rd„ }|S y y )Nc                 óÖ   — | dk  rt        d«      ‚|dk  s|dkD  rt        d«      ‚t        j                  j                  | d|z
  |z  «      }t        j                  j	                  |«      S )Nr   znegative_binomial(): n <= 0rà   rá   z(negative_binomial(): p outside of [0, 1])r]  r   r¾   rå  Úpoisson)rL  r÷  rÖ  s      r   r¥   z%negative_binomial_impl.<locals>._implU  s_   € Ø�AŠvÜ Ð!>Ó?Ð?Ø�3Šw˜!˜cš'Ü Ð!KÓLÐLÜ—	‘	—‘  C¨!¡G¨q¡=Ó1ˆAÜ—9‘9×$Ñ$ QÓ'Ð'r   rê   rŽ  s      r   Únegative_binomial_implr  Q  sF   € ä�!”e—k‘k¤5§=¡=Ð1Ô2´zØŒu�{‰{œEŸM™MÐ*ô8,ò	(ð ˆð8,Ð2r   c                  ó   — d„ S )Nc                  ó@   — t         j                  j                  d«      S rç   ©r   r¾   r  r    r   r   r§   zpoisson_impl0.<locals>.<lambda>b  s   € ”2—9‘9×$Ñ$ SÔ)r   r    r    r   r   Úpoisson_impl0r  `  s   € á)Ð)r   c                 ó|   ‡— t        | t        j                  t        j                  f«      rt        d„ «       Šˆfd„S y )Nc                 ó\   ‡— t        |«      Šˆfd„}t        t        j                  |«      |fS )Nc                 óº  •‡‡— t        | |«      }t        j                  |t        d¬«      }|j	                  d«      }|j	                  d«      }|\  } ‰||«      }|j                  d|t        j                  t        d«      «      }	|j                  |	«      5  t        j                  t        t        t        f«      }
t        j                  |j                  j                  |
d«      }|j                  |||f«      }|j!                  ||«       |j#                  |«       d d d «       |j#                  |«       |j%                  |«       t&        j(                  j(                  Št*        j,                  Šˆˆfd„}| j/                  ||||«      }|j!                  ||«       |j#                  |«       |j%                  |«       |j1                  |«      S # 1 sw Y   Œ´xY w)	Nr†   r  ÚbbcontrX  rU   r„  Únumba_poisson_ptrsc                 ó~   •— | dk  rt        d«      ‚| dk(  ry ‰|  «      }d}d}	  ‰«       }||z  }||k  r|S |dz  }Œ)ag  Numpy's algorithm for poisson() on small *lam*.

                    This method is invoked only if the parameter lambda of the
                    distribution is small ( < 10 ). The algorithm used is
                    described in "Knuth, D. 1969. 'Seminumerical Algorithms.
                    The Art of Computer Programming' vol 2.
                    rà   zpoisson(): lambda < 0r   rá   rD   ©r]  )ÚlamÚenlamr‹  rµ  rŒ  Ú_expr  s        €€r   Úpoisson_implzCpoisson_impl1.<locals>._impl.<locals>.codegen.<locals>.poisson_implˆ  sd   ø€ ð ˜S’yÜ(Ð)@ÓAÐAØ˜c’zØ Ù  # ›J�EØ�AØ�DØÙ#›I˜Ø ™	˜Ø 5š=Ø#$˜HØ˜Q™˜ð r   )r7   r   r  r„   rR  Úfcmp_orderedr   r   rm   r[  r#   r$   r%   rP   r&   r)   r^   rS  rT  r   r¾   r  rî  r  rZ   )r*   r+   rž   rQ   r?   Úretptrr  rX  r  Úbig_lamr.   r/   r†   r  r  r  Úlam_preprocessors                 @@€r   r¡   z-poisson_impl1.<locals>._impl.<locals>.codegenl  s‰  ú€ Ü,¨W°gÓ>�	ä ×,Ñ,¨W´gÀEÔJ�Ø ×3Ñ3°HÓ=�Ø×2Ñ2°7Ó;�à‘�Ù& w°Ó4�Ø!×.Ñ.¨t°SÜ/1¯{©{¼6À4Ó/HóJ�à—_‘_ WÕ-ô Ÿ?™?¬7´_ÄfÐ4MÓN�DÜ ×7Ñ7¸×8HÑ8H×8OÑ8OØ8<Ø8LóN�Bð "Ÿ,™, r¨I°sÐ+;Ó<�CØ—M‘M # vÔ.Ø—N‘N 5Ô)÷ .ð —‘˜vÔ&Ø×'Ñ'¨Ô/äŸ)™)×*Ñ*�Ü—x‘x�õð, ×.Ñ.¨w¸ÀcÈ4ÓP�Ø—‘˜c 6Ô*Ø—‘˜uÔ%Ø×'Ñ'¨Ô.Ø—|‘| FÓ+Ð+÷W .Ð-ús   ÂBGÇG)rÒ   r   r   r¿  )r¤   r  r¡   r#  s      @r   r¥   zpoisson_impl1.<locals>._implh  s,   ø€ ä3°CÓ8Ðô6,ôn œUŸ[™[¨#Ó.°Ð7Ð7r   c                 ó   •—  ‰| «      S r   r    ©r  r¥   s    €r   r§   zpoisson_impl1.<locals>.<lambda>¤  s	   ø€ ™5 œ:r   rÚ   r%  s    @r   Úpoisson_impl1r&  e  s;   ø€ ä�#œŸ™¤U§]¡]Ð3Ô4Ü	ñ:	8ó 
ð:	8óv &Ð%ð{ 5r   c                 óö  — t        | t        j                  t        j                  f«      rt	        |«      rd„ S t        | t        j                  t        j                  f«      rt        |«      rd„ S t        | t        j                  t        j                  f«      r_t        |t        j                  «      s>t        |t        j                  «      r*t        |j                  t        j                  «      rd„ }|S y y y )Nc                 ó@   — t         j                  j                  | «      S r   r  ©r  rÀ   s     r   r§   zpoisson_impl2.<locals>.<lambda>ª  s   € ¤§¡×!2Ñ!2°3Ô!7r   c                 óf   — t        j                  t         j                  j                  | «      «      S r   )r   rÂ   r¾   r  r)  s     r   r§   zpoisson_impl2.<locals>.<lambda>­  s   € ¤§¡¬"¯)©)×*;Ñ*;¸CÓ*@Ô!Ar   c                 óà   — t        j                  |t         j                  ¬«      }|j                  }t	        |j
                  «      D ]$  }t         j                  j                  | «      ||<   Œ& |S r¤  )r   rÄ   r–  rÅ   rÆ   rÀ   r¾   r  )r  rÀ   rÈ   rÉ   rd   s        r   r¥   zpoisson_impl2.<locals>._impl³  sN   € Ü—(‘(˜4¤r§w¡wÔ/ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 1Ñ 1°#Ó 6�˜’ð 'àˆJr   r  )r  rÀ   r¥   s      r   Úpoisson_impl2r,  §  s¬   € ä�#œŸ™¤U§]¡]Ð3Ô4¼ÀTÔ9JÙ7Ð7Ü�#œŸ™¤U§]¡]Ð3Ô4¼ÈÔ9MáAÐAÜ�#œŸ™¤U§]¡]Ð3Ô4Ü�tœUŸ]™]Ô+Ü�4œŸ™Ô(¬Z¸¿
¹
Ü8=¿¹ô.Gò	ð ˆð.GÐ(ð 5r   c                 ób   — t        | t        j                  t        j                  f«      rd„ }|S y )Nc                 óº   — | dk  rt        d«      ‚t        j                  dt        j                  t        j
                  j                  «        «      z
  d| z  «      S )Nrà   zpower(): a <= 0rD   rá   )r]  r  Úpowrî  r   r¾   r,  ©rq   s    r   r¥   zpower_impl.<locals>._impl¿  sM   € Ø�CŠxÜ Ð!2Ó3Ð3Ü—8‘8˜A¤§¡¬"¯)©)×*HÑ*HÓ*JÐ)JÓ KÑKØ˜q™Dó"ð "r   rê   rS  s     r   Ú
power_implr1  ¼  s*   € ä�!”e—k‘k¤5§=¡=Ð1Ô2ò	"ð ˆð 3r   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 ó@   — t         j                  j                  | «      S r   )r   r¾   ÚpowerrX  s     r   r§   zpower_impl.<locals>.<lambda>Ë  s   € œrŸy™yŸ™¨qÔ1r   c                 óf   — t        j                  t         j                  j                  | «      «      S r   )r   rÂ   r¾   r4  rX  s     r   r§   zpower_impl.<locals>.<lambda>Î  s   € œrŸx™x¬¯	©	¯©¸Ó(:Ô;r   c                 óÀ   — t        j                  |«      }|j                  }t        |j                  «      D ]$  }t         j
                  j                  | «      ||<   Œ& |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   r4  r[  s        r   r¥   zpower_impl.<locals>._implÒ  sE   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	§¡°Ó 2�˜’ð 'àˆJr   rÊ   r\  s      r   r1  r1  È  sg   € ä�4ÔÙ1Ð1Ü�dÔá;Ð;Ü�$œŸ™Ô&¬:°d¼E¿N¹NÔ+KÜ+5°d·j±jÜ6;·m±mô,Eò	ð ˆð,Eð ,Lr   c                  ó   — d„ S )Nc                  ó@   — t         j                  j                  d«      S rç   ©r   r¾   Úrayleighr    r   r   r§   z rayleigh_impl0.<locals>.<lambda>Ý  s   € ”2—9‘9×%Ñ% cÔ*r   r    r    r   r   Úrayleigh_impl0r;  Û  s   € á*Ð*r   c                 ób   — t        | t        j                  t        j                  f«      rd„ }|S y )Nc           	      ó¼   — | dk  rt        d«      ‚| t        j                  dt        j                  dt        j
                  j                  «       z
  «      z  «      z  S )Nrà   zrayleigh(): scale <= 0r  rá   )r]  r  r  r  r   r¾   r  s    r   r�   zrayleigh_impl1.<locals>.implã  sI   € Ø˜Š|Ü Ð!9Ó:Ð:Øœ4Ÿ9™9 T¬D¯H©H°S¼2¿9¹9×;KÑ;KÓ;MÑ5MÓ,NÑ%NÓOÑOÐOr   rê   )rî   r�   s     r   Úrayleigh_impl1r>  à  s+   € ä�%œ%Ÿ+™+¤u§}¡}Ð5Ô6ò	Pð ˆð 7r   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 ó@   — t         j                  j                  | «      S r   r9  r#  s     r   r§   z rayleigh_impl2.<locals>.<lambda>ï  s   € ¤2§9¡9×#5Ñ#5°eÔ#<r   c                 óf   — t        j                  t         j                  j                  | «      «      S r   )r   rÂ   r¾   r:  r#  s     r   r§   z rayleigh_impl2.<locals>.<lambda>ò  s   € ¤2§8¡8¬B¯I©I×,>Ñ,>¸uÓ,EÔ#Fr   c                 óÀ   — t        j                  |«      }|j                  }t        |j                  «      D ]$  }t         j
                  j                  | «      ||<   Œ& |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   r:  r&  s        r   r¥   zrayleigh_impl2.<locals>._implö  sG   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 2Ñ 2°5Ó 9�˜’ð 'àˆJr   rÊ   r'  s      r   Úrayleigh_impl2rC  ì  sg   € ä�4ÔÙ<Ð<Ü�dÔáFÐFÜ�$œŸ™Ô&¬:°d¼E¿N¹NÔ+KÜ+5°d·j±jÜ6;·m±mô,Eò	ð ˆð,Eð ,Lr   c                  ó   — d„ } | S )Nc                  ó|   — t         j                  j                  «       t         j                  j                  «       z  S r   rô   r    r   r   r¥   zcauchy_impl.<locals>._impl  s'   € Ü�y‰y×(Ñ(Ó*¬R¯Y©Y×-FÑ-FÓ-HÑHÐHr   r    r²   s    r   Úcauchy_implrF  ÿ  s   € òIð €Lr   c                 óø   — t        | «      rd„ S t        | «      rd„ S t        | t        j                  «      s>t        | t        j
                  «      r*t        | j                  t        j                  «      rd„ }|S y y )Nc                 ó>   — t         j                  j                  «       S r   )r   r¾   Ústandard_cauchyr¿   s    r   r§   z&standard_cauchy_impl.<locals>.<lambda>
  rö   r   c                 ód   — t        j                  t         j                  j                  «       «      S r   )r   rÂ   r¾   rI  r¿   s    r   r§   z&standard_cauchy_impl.<locals>.<lambda>  rø   r   c                 ó¾   — t        j                  | «      }|j                  }t        |j                  «      D ]#  }t         j
                  j                  «       ||<   Œ% |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   rI  rÇ   s       r   r¥   z#standard_cauchy_impl.<locals>._impl  rú   r   rÊ   rÍ   s     r   Ústandard_cauchy_implrL    sg   € ä�4ÔÙ7Ð7Ü�dÔáAÐAÜ�$œŸ™Ô&¬:°d¼E¿N¹NÔ+KÜ/9¸$¿*¹*Ü:?¿-¹-ô0Iò	ð ˆð0Ið ,Lr   c                 ób   — t        | t        j                  t        j                  f«      rd„ }|S y )Nc                 óè   — t         j                  j                  «       }t         j                  j                  | dz  «      }t	        j
                  | dz  «      |z  t	        j
                  |«      z  }|S r™  )r   r¾   rõ   r  r  r  )rš  ÚNÚGr‹  s       r   r¥   zstandard_t_impl.<locals>._impl  sU   € Ü—	‘	×)Ñ)Ó+ˆAÜ—	‘	×(Ñ(¨¨c©Ó2ˆAÜ—	‘	˜"˜s™(Ó# aÑ'¬$¯)©)°A«,Ñ6ˆAØˆHr   rê   r›  s     r   Ústandard_t_implrQ    s*   € ä�"”u—{‘{¤E§M¡MÐ2Ô3ò	ð ˆð 4r   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 ó@   — t         j                  j                  | «      S r   )r   r¾   Ú
standard_tr¡  s     r   r§   z"standard_t_impl2.<locals>.<lambda>)  s   € ¤§	¡	× 4Ñ 4°RÔ 8r   c                 óf   — t        j                  t         j                  j                  | «      «      S r   )r   rÂ   r¾   rT  r¡  s     r   r§   z"standard_t_impl2.<locals>.<lambda>+  s   € ¤§¡¬¯©×)=Ñ)=¸bÓ)AÔ Br   c                 óÀ   — t        j                  |«      }|j                  }t        |j                  «      D ]$  }t         j
                  j                  | «      ||<   Œ& |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   rT  r¤  s        r   r¥   zstandard_t_impl2.<locals>._impl/  sG   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	× 4Ñ 4°RÓ 8�˜’ð 'àˆJr   rÊ   r¥  s      r   Ústandard_t_impl2rW  &  sg   € ä�4ÔÙ8Ð8Ü�dÔÙBÐBÜ�$œŸ™Ô&¬:°d¼E¿N¹NÔ+KÜ+5°d·j±jÜ6;·m±mô,Eò	ð ˆð,Eð ,Lr   c                 óx   — t        | t        j                  «      r t        |t        j                  «      rd„ }|S y y )Nc                 óX  — | dk  rt        d«      ‚|dk  rt        d«      ‚| d|z  z  }t        j                  j                  «       }| |z  |z  }| ||t	        j
                  d|z  |z  ||z  z   «      z
  z  z   }t        j                  j                  «       }|| | |z   z  k  r|S | | z  |z  S )Nrà   zwald(): mean <= 0zwald(): scale <= 0r
  é   )r]  r   r¾   rõ   r  r  )r8  rî   Úmu_2lrÖ  r‹  rŒ  s         r   r¥   zwald_impl.<locals>._impl;  s¹   € Ø�sŠ{Ü Ð!4Ó5Ð5Ø˜Š|Ü Ð!5Ó6Ð6Ø˜C %™KÑ(ˆEÜ—	‘	×)Ñ)Ó+ˆAØ�q‘˜1‘ˆAØ�u ¤D§I¡I¨a°%©i¸!©m¸aÀ!¹eÑ.CÓ$DÑ DÑEÑEˆAÜ—	‘	× Ñ Ó"ˆAØ�D˜D 1™HÑ%Ò%Ø�à˜d‘{ Q‘Ð&r   r  )r8  rî   r¥   s      r   Ú	wald_implr\  8  s2   € ä�$œŸ™Ô$¬°E¼5¿;¹;Ô)Gò	'ð ˆð! *HÐ$r   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 óB   — t         j                  j                  | |«      S r   )r   r¾   Úwald©r8  rî   rÀ   s      r   r§   zwald_impl2.<locals>.<lambda>P  s   € ¬¯©¯©¸¸eÔ)Dr   c                 óh   — t        j                  t         j                  j                  | |«      «      S r   )r   rÂ   r¾   r_  r`  s      r   r§   zwald_impl2.<locals>.<lambda>S  s   € ¬¯©´"·)±)·.±.ÀÀuÓ2MÔ)Nr   c                 óÂ   — t        j                  |«      }|j                  }t        |j                  «      D ]%  }t         j
                  j                  | |«      ||<   Œ' |S r   )r   rÄ   rÅ   rÆ   rÀ   r¾   r_  )r8  rî   rÀ   rÈ   rÉ   rd   s         r   r¥   zwald_impl2.<locals>._implW  sG   € Ü—(‘(˜4“.ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	§¡¨t°UÓ ;�˜’ð 'àˆJr   rÊ   )r8  rî   rÀ   r¥   s       r   Ú
wald_impl2rc  M  sg   € ä�4ÔÙDÐDÜ�dÔáNÐNÜ�$œŸ™Ô&¬:°d¼E¿N¹NÔ+KÜ+5°d·j±jÜ6;·m±mô,Eò	ð ˆð,Eð ,Lr   c                 óB   — t        | t        j                  «      rd„ }|S y )Nc                 óp  — | dk  rt        d«      ‚| dz
  }d|z  }	 dt        j                  j                  «       z
  }t        j                  j                  «       }t        t	        j
                  |d|z  z  «      «      }|t        kD  s|dk  rŒsdd|z  z   |z  }|dk\  r||z  |dz
  z  |dz
  z  ||z  k  r|S Œœ)Nrá   zzipf(): a <= 1r
  rD   g      ð¿)r]  r   r¾   r¢  r  rÐ  r   )rq   Úam1rr   rŒ  r  r‹  ÚTs          r   r¥   zzipf_impl.<locals>._implc  sÃ   € Ø�CŠxÜ Ð!1Ó2Ð2Ø�c‘'ˆCØ�s‘
ˆAØØœ"Ÿ)™)×*Ñ*Ó,Ñ,�Ü—I‘I×$Ñ$Ó&�ÜœŸ
™
 1¨°©Ñ#4Ó5Ó6�àœ’L A¨¢GØà˜3 ™7‘] sÑ*�Ø˜’6˜a !™e q¨3¡wÑ/°1°s±7Ñ;ÀÀAÁÒFØ�Hð r   r  rS  s     r   Ú	zipf_implrh  `  s!   € ä�!”U—[‘[Ô!ò	ð" ˆð% "r   c                 óø   — t        |«      rd„ S t        |«      rd„ S t        |t        j                  «      s>t        |t        j
                  «      r*t        |j                  t        j                  «      rd„ }|S y y )Nc                 ó@   — t         j                  j                  | «      S r   )r   r¾   ÚzipfrX  s     r   r§   zzipf_impl.<locals>.<lambda>z  s   € œrŸy™yŸ~™~¨aÔ0r   c                 óf   — t        j                  t         j                  j                  | «      «      S r   )r   rÂ   r¾   rk  rX  s     r   r§   zzipf_impl.<locals>.<lambda>}  s   € œrŸx™x¬¯	©	¯©°qÓ(9Ô:r   c                 óà   — t        j                  |t         j                  ¬«      }|j                  }t	        |j
                  «      D ]$  }t         j                  j                  | «      ||<   Œ& |S r¤  )r   rÄ   r–  rÅ   rÆ   rÀ   r¾   rk  r[  s        r   r¥   zzipf_impl.<locals>._impl�  sL   € Ü—(‘(˜4¤r§w¡wÔ/ˆCØ—x‘xˆHÜ˜SŸX™X–�Ü "§	¡	§¡¨qÓ 1�˜’ð 'àˆJr   rÊ   r\  s      r   rh  rh  w  sg   € ä�4ÔÙ0Ð0Ü�dÔá:Ð:Ü�$œŸ™Ô&¬:°d¼E¿N¹NÔ+KÜ+5°d·j±jÜ6;·m±mô,Eò	ð ˆð,Eð ,Lr   c                 óö   ‡— t        | t        j                  «      sd}t        |«      ‚|dk(  rt        j
                  j                  Šn|dk(  rt
        j                  Š| j                  dk(  rˆfd„}|S ˆfd„}|S )Nz1The argument to shuffle() should be a buffer typer   r   rD   c                 ó„   •— | j                   d   dz
  }|dkD  r( ‰|dz   «      }| |   | |   c| |<   | |<   |dz  }|dkD  rŒ'y y rC   ræ  ©r   ÚiÚjÚrands      €r   r�   zdo_shuffle_impl.<locals>.impl•  sU   ø€ Ø—‘˜‘
˜Q‘ˆAØ�a’%Ù˜˜Q™“K�Ø˜q™T 1 Q¡4�
��!‘�a˜‘dØ�Q‘�ð �a•%r   c                 óÐ   •— | j                   d   dz
  }|dkD  rN ‰|dz   «      }t        j                  | |   «      t        j                  | |   «      c| |<   | |<   |dz  }|dkD  rŒMy y rC   )rç  r   Úcopyrp  s      €r   r�   zdo_shuffle_impl.<locals>.implœ  se   ø€ Ø—‘˜‘
˜Q‘ˆAØ�a’%Ù˜˜Q™“K�ÜŸW™W Q q¡T›]¬B¯G©G°A°a±D«M�
��!‘�a˜‘dØ�Q‘�ð �a•%r   )	r‘   r   ÚBufferr   r   r¾   r’  rn  Úndim)r   ÚrngrE  r�   rs  s       @r   Údo_shuffle_implry  ‰  sl   ø€ ä�aœŸ™Ô&ØAˆÜ˜SÓ!Ð!à
ˆd‚{Ü�y‰y× Ñ ‰Ø	�ŠÜ×Ñˆà‡v�v�‚{ô	ð €Kô	ð €Kr   c                 ó   — t        | d«      S r¬   ©ry  r   s    r   Úshuffle_implr|  ¦  ó   € ä˜1˜dÓ#Ð#r   c                 ó   — t        | d«      S r–   r{  r   s    r   r|  r|  «  r}  r   c                 ó†   — t        | t        j                  «      rd„ }|S t        | t        j                  «      rd„ }|S d }|S )Nc                 ón   — t        j                  | «      }t         j                  j                  |«       |S r   )r   Úaranger¾   Úshuffle)r   rg   s     r   Úpermutation_implz*permutation_impl.<locals>.permutation_impl³  s&   € Ü—	‘	˜!“ˆAÜ�I‰I×Ñ˜aÔ ØˆHr   c                 ód   — | j                  «       }t        j                  j                  |«       |S r   )ru  r   r¾   r‚  )r   Úarr_copys     r   rƒ  z*permutation_impl.<locals>.permutation_impl¸  s$   € Ø—v‘v“xˆHÜ�I‰I×Ñ˜hÔ'ØˆOr   )r‘   r   r’   ÚArray)r   rƒ  s     r   rƒ  rƒ  °  sH   € ä�!”U—]‘]Ô#ò	ð Ðô 
�A”u—{‘{Ô	#ò	ð Ðð  ÐØÐr   c                  ó2   — t        | «      dk(  rd„ }|S d„ }|S )Nr   c                  ó>   — t         j                  j                  «       S r   r½   r¿   s    r   Ú	rand_implzrand.<locals>.rand_implÈ  s   € Ü—9‘9×#Ñ#Ó%Ð%r   c                  ó@   — t         j                  j                  | «      S r   r½   r¿   s    r   r‰  zrand.<locals>.rand_implÍ  s   € Ü—9‘9×#Ñ# DÓ)Ð)r   ©Úlen)rÀ   r‰  s     r   rs  rs  Ä  s'   € ä
ˆ4ƒy�A‚~ò	&ð Ðò	*ð Ðr   c                  ó2   — t        | «      dk(  rd„ }|S d„ }|S )Nr   c                  ó>   — t         j                  j                  «       S r   rô   r¿   s    r   Ú
randn_implzrandn.<locals>.randn_impl×  s   € Ü—9‘9×,Ñ,Ó.Ð.r   c                  ó@   — t         j                  j                  | «      S r   rô   r¿   s    r   r�  zrandn.<locals>.randn_implÜ  s   € Ü—9‘9×,Ñ,¨TÓ2Ð2r   r‹  )rÀ   r�  s     r   Úrandnr‘  Ó  s'   € ä
ˆ4ƒy�A‚~ò	/ð Ðò	3ð Ðr   c                 óÈ  ‡‡‡— t        | t        j                  «      rB| j                  dk(  sJ ‚| j                  Št
        d„ «       Št
        d„ «       }t
        d„ «       Šn]t        | t        j                  «      r5t        j                  Št
        d„ «       Št
        d„ «       }t
        d„ «       Šnt        d| ›�«      ‚|d t        j                  fv r	dˆˆfd	„	}|S dˆˆˆfd
„	}|S )NrD   c                 ó   — t        | «      S r   r‹  r0  s    r   Úget_source_sizezchoice.<locals>.get_source_sizeí  s   € ä�q“6ˆMr   c                 ó"   — | j                  «       S r   )ru  r0  s    r   Úcopy_sourcezchoice.<locals>.copy_sourceñ  s   € à—6‘6“8ˆOr   c                 ó   — | |   S r   r    ©rq   Úa_is     r   Úgetitemzchoice.<locals>.getitemõ  s   € à�S‘6ˆMr   c                 ó   — | S r   r    r0  s    r   r”  zchoice.<locals>.get_source_sizeý  s   € àˆHr   c                 ó,   — t        j                  | «      S r   )r   r�  r0  s    r   r–  zchoice.<locals>.copy_source  s   € ä—9‘9˜Q“<Ðr   c                 ó   — |S r   r    r˜  s     r   rš  zchoice.<locals>.getitem  s   € àˆJr   z>np.random.choice() first argument should be int or array, got c                 óf   •—  ‰| «      }t         j                  j                  d|«      } ‰| |«      S )zs
            choice() implementation returning a single sample
            (note *replace* is ignored)
            r   r‘  )rq   rÀ   ÚreplacerL  rq  r”  rš  s        €€r   Úchoice_implzchoice.<locals>.choice_impl  s1   ø€ ñ
   Ó"ˆAÜ—	‘	×!Ñ! ! QÓ'ˆAÙ˜1˜a“=Ð r   c                 óæ  •—  ‰
| «      }|rit        j                  |‰	«      }|j                  }t        t	        |«      «      D ].  }t         j
                  j                  d|«      } ‰| |«      ||<   Œ0 |S t        j                  |‰	«      }|j                  |kD  rt        d«      ‚t         j
                  j                  | «      }|j                  }t        t	        |«      «      D ]
  }||   ||<   Œ |S )zO
            choice() implementation returning an array of samples
            r   z@Cannot take a larger sample than population when 'replace=False')
r   rÄ   rÅ   rÆ   rŒ  r¾   r’  rÀ   r]  Úpermutation)rq   rÀ   rŸ  rL  rÈ   Úflrq  rr  Ú
permuted_arÌ   r”  rš  s            €€€r   r   zchoice.<locals>.choice_impl  sÞ   ø€ ñ   Ó"ˆAÙÜ—h‘h˜t UÓ+�Ø—X‘X�Üœs 2›wž�AÜŸ	™	×)Ñ)¨!¨QÓ/�AÙ# A q›M�B�q’Eð (ð �
ô —h‘h˜t UÓ+�Ø—8‘8˜a’<Ü$ð &Gó Hð Hô  ŸY™Y×2Ñ2°1Ó5�
Ø—X‘X�Üœs 2›wž�AØ& q™M�B�q’Eð (à�
r   ©NT)r‘   r   r†  rw  rÌ   r   r’   r   r–  r   r�   )rq   rÀ   rŸ  r–  r   rÌ   r”  rš  s        @@@r   Úchoicer¦  å  sþ   ú€ ô �!”U—[‘[Ô!à�v‰v˜Š{Ðˆ{Ø—‘ˆä	ñ	ó 
ð	ô 
ñ	ó 
ð	ô 
ñ	ó 
ñ	ô 
�A”u—}‘}Ô	%ä—‘ˆä	ñ	ó 
ð	ô 
ñ	 ó 
ð	 ô 
ñ	ó 
ñ	õ Ù78ð;ó <ð 	<ð �”e—j‘jÐ!Ñ!ö	!ðP Ð÷=	ð< Ðr   c                 óà  ‡‡— t         j                  Št        d„ «       Št        | t        j
                  «      st        d| ›�«      ‚t        |t        j                  t        j                  f«      st        d|›�«      ‚|d t        j                  fv r	dˆˆfd„	}|S t        |t        j
                  «      r	dˆˆfd„	}|S t        |t        j                  «      r	dˆˆfd„	}|S t        d|›�«      ‚)	Nc                 óB  — |j                   }|j                  }t        |«      }t        d||«      D ]l  }d}| }t        d|dz
  «      D ]C  }	||	   }
t        j
                  j                  ||
|z  «      x}|||	z   <   ||z  }|dk  r n||
z  }ŒE |dkD  sŒb||||z   dz
  <   Œn y )Nr   rá   rD   )rÅ   rÀ   rŒ  rÆ   r   r¾   r’  )rL  ÚpvalsrÈ   r£  ÚszÚplenrq  Úp_sumÚn_experimentsrr  Úp_jÚn_js               r   Úmultinomial_innerz&multinomial.<locals>.multinomial_innerA  s¿   € ð �X‰XˆØ�X‰XˆÜ�5‹zˆä�q˜"˜dÖ#ˆAð
 ˆEàˆMô
 ˜1˜d Q™hÖ'�Ø˜A‘h�Ü"$§)¡)×"4Ñ"4°]ÀCÈ%ÁKÓ"PÐP��b˜˜Q™‘iØ Ñ$�Ø  AÒ%áØ˜‘‘ð (ð ˜qÓ à#0��1�t‘8˜a‘<Ò ñ- $r   z5np.random.multinomial(): n should be an integer, got zCnp.random.multinomial(): pvals should be an array or sequence, got c                 óZ   •— t        j                  t        |«      ‰«      } ‰| ||«       |S )z5
            multinomial(..., size=None)
            ©r   ÚzerosrŒ  ©rL  r©  rÀ   rÈ   rÌ   r°  s       €€r   Úmultinomial_implz%multinomial.<locals>.multinomial_impli  s*   ø€ ô —(‘(œ3˜u›: uÓ-ˆCÙ˜a ¨Ô,ØˆJr   c                 ó^   •— t        j                  |t        |«      f‰«      } ‰| ||«       |S )z4
            multinomial(..., size=int)
            r²  r´  s       €€r   rµ  z%multinomial.<locals>.multinomial_implr  s/   ø€ ô —(‘(˜D¤# e£*Ð-¨uÓ5ˆCÙ˜a ¨Ô,ØˆJr   c                 ób   •— t        j                  |t        |«      fz   ‰«      } ‰| ||«       |S )z6
            multinomial(..., size=tuple)
            r²  r´  s       €€r   rµ  z%multinomial.<locals>.multinomial_impl{  s1   ø€ ô —(‘(˜4¤3 u£: -Ñ/°Ó7ˆCÙ˜a ¨Ô,ØˆJr   zBnp.random.multinomial(): size should be int or tuple or None, got r   )r   r–  r   r‘   r   r’   r   ÚSequencer†  r�   Ú	BaseTuple)rL  r©  rÀ   rµ  rÌ   r°  s       @@r   Úmultinomialrº  <  sé   ù€ ô �G‰G€Eäñ1ó ð1ô< �aœŸ™Ô'ÝÙ23ð6ó 7ð 	7ô �eœeŸn™n¬e¯k©kÐ:Ô;ÝÙ<AðDó Eð 	Eð �”e—j‘jÐ!Ñ!ö	ð< Ðô- 
�Dœ%Ÿ-™-Ô	(ö	ð* Ðô 
�Dœ%Ÿ/™/Ô	*ö	ð Ðõ Ù8<ð?ó @ð 	@r   c                 ób   — t        | t        j                  t        j                  f«      rd„ }|S y )Nc                 óZ   — t        j                  t        | «      «      }t        | |«       |S r   ©r   rÄ   rŒ  Údirichlet_arr)rß  rÈ   s     r   Údirichlet_implz!dirichlet.<locals>.dirichlet_impl�  ó#   € Ü—(‘(œ3˜u›:Ó&ˆCÜ˜% Ô%ØˆJr   )r‘   r   r¸  r†  )rß  r¿  s     r   Ú	dirichletrÁ  �  s+   € ä�%œ%Ÿ.™.¬%¯+©+Ð6Ô7ò	ð Ðð 8r   c                 ó   — t        | t        j                  t        j                  f«      st	        d| ›�«      ‚|d t        j
                  fv st        |«      rdd„}|S t        |t        j                  «      rdd„}|S t        |t        j                  «      r*t        |j                  t        j                  «      rdd„}|S t	        d|z  «      ‚)NzAnp.random.dirichlet(): alpha should be an array or sequence, got c                 óZ   — t        j                  t        | «      «      }t        | |«       |S r   r½  ©rß  rÀ   rÈ   s      r   r¿  z!dirichlet.<locals>.dirichlet_impl¡  rÀ  r   c                 ó^   — t        j                  |t        | «      f«      }t        | |«       |S )z2
            dirichlet(..., size=int)
            r½  rÄ  s      r   r¿  z!dirichlet.<locals>.dirichlet_impl¨  s*   € ô —(‘(˜D¤# e£*Ð-Ó.ˆCÜ˜% Ô%ØˆJr   c                 ób   — t        j                  |t        | «      fz   «      }t        | |«       |S )z4
            dirichlet(..., size=tuple)
            r½  rÄ  s      r   r¿  z!dirichlet.<locals>.dirichlet_impl²  s,   € ô —(‘(˜4¤3 u£: -Ñ/Ó0ˆCÜ˜% Ô%ØˆJr   zJnp.random.dirichlet(): size should be int or tuple of ints or None, got %sr   )
r‘   r   r¸  r†  r   r�   r   r’   rË   rÌ   )rß  rÀ   r¿  s      r   rÁ  rÁ  —  sÀ   € ä�eœeŸn™n¬e¯k©kÐ:Ô;Ýá+0ð3ó
ð 	
ð
 �”e—j‘jÐ!Ñ!¤^°DÔ%9ó	ð> Ðô5 
�Dœ%Ÿ-™-Ô	(ó	ð0 Ðô! 
�Dœ%Ÿ.™.Ô	)¬j¸¿¹Ü9>¿¹ô/Hó	ð Ðô ð,Ø.2ñ3ó
ð 	
r   c                 óœ  — t        | «      D ]  }|dk  sŒ	t        d«      ‚ t        | «      }|j                  }|j                  }t        d||«      D ]y  }d}t        | «      D ]D  \  }}	t        j                  j                  |	d«      |||z   <   ||||z      j                  «       z  }ŒF t        | «      D ]  \  }}	|||z   xx   |z  cc<   Œ Œ{ y )Nr   zdirichlet: alpha must be > 0.0rD   )Úiterr]  rŒ  rÀ   rÅ   rÆ   Ú	enumerater   r¾   rå  Úitem)
rß  rÈ   Úa_valÚa_lenrÀ   rÅ   rq  ÚnormrG  rf  s
             r   r¾  r¾  Ã  sË   € ô
 �e–ˆØ�A‹:ÜÐ=Ó>Ð>ð ô �‹J€EØ�8‰8€DØ�8‰8€DÜ�1�d˜EÖ"ˆàˆÜ˜eÖ$‰DˆAˆqÜŸ)™)Ÿ/™/¨!¨QÓ/ˆD��Q‘‰KØ�D˜˜Q™‘K×$Ñ$Ó&Ñ&‰Dð %ô ˜eÖ$‰DˆAˆqØ��Q‘‹K˜4ÑŒKñ %ñ #r   c                 ó¸   — t        | t        j                  t        j                  f«      r0t        |t        j                  t        j                  f«      rd„ }|S y y )Nc                 ó2   — t        | |«       t        | |«      S r   ©Ú#validate_noncentral_chisquare_inputÚnoncentral_chisquare_single©rš  Únoncs     r   Únoncentral_chisquare_implz7noncentral_chisquare.<locals>.noncentral_chisquare_implá  s   € Ü/°°DÔ9Ü.¨r°4Ó8Ð8r   rê   )rš  rÔ  rÕ  s      r   Únoncentral_chisquarerÖ  Ý  sG   € ä�"”u—{‘{¤E§M¡MÐ2Ô3¼
Ø”5—;‘;¤§¡Ð.ô90ò	9ð )Ð(ð90Ð3r   c                 ó0  — |d t         j                  fv rdd„}|S t        |«      rdd„}|S t        |t         j                  «      s>t        |t         j
                  «      r*t        |j                  t         j                  «      rdd„}|S t        d|z  «      ‚)Nc                 ó2   — t        | |«       t        | |«      S r   rÐ  ©rš  rÔ  rÀ   s      r   rÕ  z7noncentral_chisquare.<locals>.noncentral_chisquare_implë  s   € Ü0°°TÔ:Ü/°°DÓ9Ð9r   c                 óX   — t        | |«       t        j                  t        | |«      «      S r   )rÑ  r   rÂ   rÒ  rÙ  s      r   rÕ  z7noncentral_chisquare.<locals>.noncentral_chisquare_implñ  s#   € Ü0°°TÔ:Ü—H‘HÔ8¸¸TÓBÓCÐCr   c                 ó²   — t        | |«       t        j                  |«      }|j                  }t	        |j
                  «      D ]  }t        | |«      ||<   Œ |S r   )rÑ  r   rÄ   rÅ   rÆ   rÀ   rÒ  )rš  rÔ  rÀ   rÈ   rÉ   rd   s         r   rÕ  z7noncentral_chisquare.<locals>.noncentral_chisquare_implù  sI   € Ü0°°TÔ:Ü—8‘8˜D“>ˆSØŸ™ˆXÜ˜cŸh™hž�Ü!<¸RÀÓ!F�˜#’ð (àˆZr   zUnp.random.noncentral_chisquare(): size should be int or tuple of ints or None, got %sr   )r   r�   r   r‘   r’   rË   rÌ   r   )rš  rÔ  rÀ   rÕ  s       r   rÖ  rÖ  è  sŽ   € à�”u—z‘zÐ"Ñ"ó
:ð *Ð	)Ü�tÔó
Dð *Ð	)Ü
�Tœ5Ÿ=™=Ô
)¬j¸¼u¿~¹~Ô.NÜ2<¸T¿Z¹ZÜ=B¿]¹]ô3Ló
ð *Ð	)äð-Ø/3ñ4óð 
r   c                 ó   — t        j                  |«      rt         j                  S d| k  r^t         j                  j	                  | dz
  «      }t         j                  j                  «       t        j                  |«      z   }|||z  z   S t         j                  j                  |dz  «      }t         j                  j	                  | d|z  z   «      S )NrD   r
  rG   )r   ÚisnanÚnanr¾   r   rõ   r  r  )rš  rÔ  Úchi2rL  rq  s        r   rÒ  rÒ  	  s›   € ô
 
‡x�x�„~Ü�v‰vˆàˆ2‚vÜ�y‰y×"Ñ" 2 a¡4Ó(ˆÜ�I‰I×%Ñ%Ó'¬"¯'©'°$«-Ñ7ˆØ�a˜!‘e‰|Ðô �I‰I×Ñ˜d 3™hÓ'ˆÜ�y‰y×"Ñ" 2¨¨A©¡:Ó.Ð.r   c                 óD   — | dk  rt        d«      ‚|dk  rt        d«      ‚y )Nr   zdf <= 0znonc < 0r  rÓ  s     r   rÑ  rÑ  	  s+   € à	ˆQ‚wÜ˜Ó#Ð#Øˆa‚xÜ˜Ó$Ð$ð r   r   r¥  )ÏÚ__doc__r  r¾   Únumpyr   Úllvmliter   Únumba.core.cgutilsr   r   Únumba.core.extendingr   r   r   Únumba.core.imputilsr	   Únumba.core.typingr   Ú
numba.corer   r   Únumba.core.errorsr   Únumba.np.random._constantsr   ÚregistryÚlowerr‰  r   r„   r   r6  rm   rO  r   r\   ÚLiteralStructTypeÚ	ArrayTypeÚrnd_state_tÚPointerTyper$   r0   r4   r7   r9   r@   rE   rH   rK   rS   rh   rs   r�   r—   r”   r“   r´   Úrandom_sampleÚsampleÚranfrº   rÎ   rH  ÚnormalvariaterÜ   rõ   rã   rä   rë   rñ   rû   r  r  rÓ   rÒ   ÚgetrandbitsrJ  rj  rn  rq  rv  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  Úbetavariater
  rà  r  r  r  Úexpovariater  r"  r  r,  r/  r3  r4  r9  r>  rD  ÚlognormvariaterI  r=  ÚparetovariaterO  rW  rT  Úweibullvariater_  rf  rc  ri  Úvonmisesvariatern  r|  rk  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  Únegative_binomialr  r  r  r&  r,  r4  r1  r:  r;  r>  rC  rI  rF  rL  rT  rQ  rW  r_  r\  rc  rk  rh  ry  r‚  r|  r¢  rƒ  rs  r‘  r¦  rº  rÁ  r¾  rÖ  rÒ  rÑ  r    r   r   Ú<module>rý     sG  ðñó
 Û ã å ç :ß FÑ FÝ (Ý 'ß %Ý ,Ý /á�LÓ!€Ø�‰€à
ˆ"�*‰*�R‹.€Ø
ˆ"�*‰*�R‹.€ò#à	ˆ�‰‹€à€Ø
ˆ"�+‰+�g˜qÓ
!€ð #ˆb×"Ñ"àà€B‡L�L�˜!Óàà
àð$ó €ð !�"—.‘. Ó-€ò ò"1ò1ò7ò:ò:ò:ò:òòò21ò.ñb 
ˆ&�+‰+Óñó ðñ 
ˆ"�)‰)�.‰.Óñ ó ð ò
$ñ 
ˆ&�-‰-Óñó ðñ 
ˆ"�)‰)×
Ñ
ÓÙ	ˆ"�)‰)×
!Ñ
!Ó"Ù	ˆ"�)‰)×
Ñ
ÓÙ	ˆ"�)‰)�.‰.Óñó ó ó #ó ðñ 
ˆ"�)‰)×
Ñ
ÓÙ	ˆ"�)‰)×
!Ñ
!Ó"Ù	ˆ"�)‰)×
Ñ
ÓÙ	ˆ"�)‰)�.‰.Óòó ó ó #ó ðñ$ 
ˆ&�,‰,ÓÙ	ˆ&×
Ñ
Óñ	2ó  ó ð	2ñ 
ˆ"�)‰)×
#Ñ
#Ó$Ù	ˆ"�)‰)×
Ñ
Óñ.ó ó %ð.ñ 
ˆ"�)‰)×
Ñ
Óñ6ó ð6ñ
 
ˆ"�)‰)×
Ñ
Óñ	4ó ð	4ñ 
ˆ"�)‰)×
#Ñ
#Ó$ñó %ðñ$ 
ˆ"�)‰)×
Ñ
Óñó ðò0ò$%òPQñ" 
ˆ&×
Ñ
Óñ"ó ð"ò(CEñL 
ˆ&×
Ñ
Óñ;ó ð;ñ
 
ˆ&×
Ñ
ÓñDó ðDò
*ñ 
ˆ&×
Ñ
ÓñBó ðBñ4 
ˆ&�.‰.Óñ:ó ð:ñ
 
ˆ"�)‰)×
Ñ
Óñ5ó ð5ñ
 
ˆ"�)‰)×
Ñ
Óñ2ó ð2ñ0 
ˆ"�)‰)×
Ñ
Óñó ðñ0 
ˆ"�)‰)×
Ñ
Óñ/ó ð/ñ 
ˆ&�.‰.Óñ	(ó ð	(ñ 
ˆ"�)‰)×
Ñ
Óñ	2ó ð	2ò	ñ 
ˆ"�)‰)×
Ñ
Óñó ðñ2 
ˆ&×
Ñ
Óñó ðñ 
ˆ&×
Ñ
Óñó ðñ$ 
ˆ"�)‰)×
Ñ
Óñó  ðñ$ 
ˆ"�)‰)×
Ñ
Óòó  ðñ, 
ˆ&×
Ñ
Óñ1ó ð1ñ 
ˆ"�)‰)×
"Ñ
"Ó#Ù	ˆ"�)‰)�/‰/Óñ9ó ó $ð9ñ
 
ˆ"�)‰)�/‰/Óñó ðò8ñv 
ˆ"�)‰)�/‰/Óñó ðñ$ 
ˆ"�)‰)×
"Ñ
"Ó#ñó $ðñ$ 
ˆ&×
Ñ
Óñ6ó ð6ñ 
ˆ"�)‰)�.‰.Óñó ðòñ 
ˆ"�)‰)�.‰.Óñó ðñ& 
ˆ&×
Ñ
Óñó ðñ 
ˆ"�)‰)×
Ñ
Ó ñó !ðñ 
ˆ"�)‰)×
Ñ
Ó ñó !ðñ$ 
ˆ"�)‰)×
(Ñ
(Ó)Ù	ˆ"�)‰)×
Ñ
Ó ñó !ó *ðñ 
ˆ"�)‰)×
(Ñ
(Ó)ñó *ðñ& 
ˆ"�)‰)×
Ñ
Óñ1ó ð1ñ 
ˆ"�)‰)×
Ñ
Óñ;ó ð;ñ
 
ˆ"�)‰)×
Ñ
Óñ3ó ð3ñ 
ˆ"�)‰)×
Ñ
Óñó ðñ$ 
ˆ&×
Ñ
Ó ñ/ó !ð/ò9ñ 
ˆ&×
Ñ
Óñó  ðñ 
ˆ"�)‰)×
Ò
Óñó ðñ 
ˆ"�)‰)×
Ò
Óñó ðñ$ 
ˆ&×
Ò
Ó ñ	ó !ð	ñ 
ˆ"�)‰)×
Ò
Óñó ðñ 
ˆ"�)‰)×
Ò
Óñó ðñ$ 
ˆ&×
 Ò
 Ó!ñ4ó "ð4ñ
 
ˆ"�)‰)×
Ò
Óñ7ó ð7ò
)ñX 
ˆ"�)‰)×
Ò
Óñó ðñ$ 
ˆ"�)‰)×
Ò
Óñ4ó ð4ñn 
ˆ"�)‰)×
Ò
Óñó ðñ& 
ˆ"�)‰)×
Ò
Óñó ðñ 
ˆ"�)‰)×
Ò
Óñó ðñ" 
ˆ"�)‰)�+Š+Óñó ðñ 
ˆ"�)‰)�+Š+Óñó ðñ, 
ˆ"�)‰)×
Ò
Óñó ðñ. 
ˆ"�)‰)×
Ò
Óñó ðñ$ 
ˆ"�)‰)×
Ò
Óñó ðñ 
ˆ"�)‰)×
Ò
Óñó ðñ$ 
ˆ"�)‰)×
"Ò
"Ó#ñó $ðñ. 
ˆ"�)‰)×
"Ò
"Ó#ñó $ðñ( 
ˆ"�)‰)×
Ò
Óñ/ó ð/ñ 
ˆ"�)‰)×
Ò
Óñ7ó ð7ñ
 
ˆ"�)‰)×
Ò
Óñó ðñ 
ˆ"�)‰)×
Ò
Óñó ðò$3ñ 
ˆ"�)‰)×
Ò
Óñ0ó ð0ñ 
ˆ"�)‰)×
Ò
Óñ8ó ð8ñ
 
ˆ"�)‰)×
Ò
Óñó ðñ 
ˆ"�)‰)×
Ò
Óñó ðò$1ò
ñ* 
ˆ"�)‰)×
Ò
Óñó ðñ
 
ˆ"�)‰)×
Ò
Óñó ðñ" 
ˆ"�)‰)×
%Ò
%Ó&ñó 'ðñ 
ˆ"�)‰)×
Ò
Óñ*ó ð*ñ 
ˆ"�)‰)×
Ò
Óñ>&ó ð>&ñB 
ˆ"�)‰)×
Ò
Óñó ðñ( 
ˆ"�)‰)�/Š/Óñó ðñ 
ˆ"�)‰)�/Š/Óñó ðñ$ 
ˆ"�)‰)×
Ò
Óñ+ó ð+ñ 
ˆ"�)‰)×
Ò
Óñó ðñ 
ˆ"�)‰)×
Ò
Óñó ðñ$ 
ˆ"�)‰)×
#Ò
#Ó$ñó %ðñ 
ˆ"�)‰)×
#Ò
#Ó$ñó %ðñ$ 
ˆ"�)‰)×
Ò
Óñó  ðñ 
ˆ"�)‰)×
Ò
Óñó  ðñ" 
ˆ"�)‰)�.Š.Óñó ðñ( 
ˆ"�)‰)�.Š.Óñó ðñ$ 
ˆ"�)‰)�.Š.Óñó ðñ, 
ˆ"�)‰)�.Š.Óñó ðò"ñ: 
ˆ&�.Š.Óñ$ó ð$ñ 
ˆ"�)‰)×
Ò
Óñ$ó ð$ñ 
ˆ"�)‰)×
Ò
Ó ñó !ðñ& 
ˆ"�)‰)�.Š.Óñó ðñ 
ˆ"�)‰)�/Š/Óñó ðñ" 
ˆ"�)‰)×
Ò
ÓòPó ðPñl 
ˆ"�)‰)×
Ò
Ó òJó !ðJñ` 
ˆ"�)‰)×
Ò
Óñó ðñ 
ˆ"�)‰)×
Ò
Óò(ó ð(ðV ñ ó ð ñ2 
ˆ"�)‰)×
(Ò
(Ó)ñ)ó *ð)ñ 
ˆ"�)‰)×
(Ò
(Ó)òó *ðð> ñ/ó ð/ð" ñ%ó ñ%r   