§
    ƒÛg¸) ã                   óP  — d Z ddlZddlZddlZddlmZ ddlmZ ddl	m
Z
mZmZ ddlmZmZ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j        Z ej        d¦  «        Z ej        d¦  «        Zd„ Z ej         ¦   «         Z!dZ" ej#        ee"¦  «        Z$ ej%        e ej&        ee"¦  «        ee!eg¦  «        Z' ej(        e'¦  «        Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0d„ Z1d„ Z2d„ Z3d„ Z4d„ Z5 eej6        ¦  «        d„ ¦   «         Z7 eej        j6        ¦  «        d„ ¦   «         Z7d„ Z8 eej        ¦  «        d„ ¦   «         Z9 eej        j        ¦  «         eej        j:        ¦  «         eej        j;        ¦  «         eej        j<        ¦  «        d „ ¦   «         ¦   «         ¦   «         ¦   «         Z= eej        j        ¦  «         eej        j:        ¦  «         eej        j;        ¦  «         eej        j<        ¦  «        d—d!„¦   «         ¦   «         ¦   «         ¦   «         Z> eej?        ¦  «         eej@        ¦  «        d"„ ¦   «         ¦   «         ZA eej        jB        ¦  «         eej        jC        ¦  «        d#„ ¦   «         ¦   «         ZD eej        jC        ¦  «        d$„ ¦   «         ZE eej        jC        ¦  «        d%„ ¦   «         ZF eej        jB        ¦  «        d&„ ¦   «         ZG eej        jC        ¦  «        d'„ ¦   «         ZHd(„ ZId)„ ZJd*„ ZK eejL        ¦  «        d+„ ¦   «         ZMd,„ ZN eejO        ¦  «        d-„ ¦   «         ZP eejO        ¦  «        d.„ ¦   «         ZQd/„ ZR eejO        ¦  «        d0„ ¦   «         ZS eejT        ¦  «        d1„ ¦   «         ZU eej        jT        ¦  «        d2„ ¦   «         ZV eej        jT        ¦  «        d3„ ¦   «         ZW eej        jT        ¦  «        d4„ ¦   «         ZX eej        jY        ¦  «        d5„ ¦   «         ZZ eejY        ¦  «        d6„ ¦   «         Z[ eej        jY        ¦  «        d7„ ¦   «         Z\d8„ Z] eej        jY        ¦  «        d9„ ¦   «         Z^ eej_        ¦  «        d:„ ¦   «         Z` eej_        ¦  «        d;„ ¦   «         Za eej        j_        ¦  «        d<„ ¦   «         Za eej        j_        ¦  «        d—d=„¦   «         Zb eejc        ¦  «        d>„ ¦   «         Zd eej        je        ¦  «         eej        jf        ¦  «        d?„ ¦   «         ¦   «         Zg eej        jf        ¦  «        d@„ ¦   «         ZhdA„ Zi eej        jf        ¦  «        dB„ ¦   «         Zj eej        je        ¦  «        dC„ ¦   «         Zk eejl        ¦  «        dD„ ¦   «         Zm eej        jn        ¦  «        dE„ ¦   «         ZodF„ Zp eej        jn        ¦  «        dG„ ¦   «         Zq eejr        ¦  «        dH„ ¦   «         Zs eej        jt        ¦  «        dI„ ¦   «         Zu eej        jt        ¦  «        dJ„ ¦   «         Zu eej        jv        ¦  «         eej        jt        ¦  «        dK„ ¦   «         ¦   «         Zu eej        jv        ¦  «        dL„ ¦   «         Zw eej        jx        ¦  «        dM„ ¦   «         Zy eej        jx        ¦  «        dN„ ¦   «         Zz eej        jx        ¦  «        dO„ ¦   «         Z{ eej        jx        ¦  «        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        jš        ¦  «        dg„ ¦   «         Z› eej        jš        ¦  «        dh„ ¦   «         Z› eej        jœ        ¦  «        di„ ¦   «         Z� eej        jœ        ¦  «        dj„ ¦   «         Zž eej        jœ        ¦  «        dk„ ¦   «         ZŸ eej        jœ        ¦  «        dl„ ¦   «         Z dm„ Z¡ eej        j¢        ¦  «        dn„ ¦   «         Z£ eej        j¢        ¦  «        do„ ¦   «         Z¤ eej        j¢        ¦  «        dp„ ¦   «         Z¥ eej        j¢        ¦  «        dq„ ¦   «         Z¦dr„ Z§ds„ Z¨ eej        j©        ¦  «        dt„ ¦   «         Zª eej        j©        ¦  «        du„ ¦   «         Zª eej        j«        ¦  «        dv„ ¦   «         Z¬ eej        j­        ¦  «        dw„ ¦   «         Z® eej        j­        ¦  «        dx„ ¦   «         Z¯ eej        j­        ¦  «        dy„ ¦   «         Z° eej        j±        ¦  «        dz„ ¦   «         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·        ¦  «        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À        ¦  «        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ÏdS )™z6
Implement the random and np.random module functions.
é    N)Úir)Úis_nonelike)Ú	intrinsicÚoverloadÚregister_jitable)ÚRegistryÚimpl_ret_untrackedÚimpl_ret_new_ref©Ú	signature)ÚtypesÚcgutils)Úarrayobj)ÚNumbaTypeErrorÚ
randomimplé    é@   c                 ó6   — t          j        t          | ¦  «        S ©N)r   ÚConstantÚint32_t©Úxs    úN/granary/edev/quantum/lib/python3.11/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                             d¦  «         |j                             d¦  «         |                     |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_ptrr1   4   s‰   € ð Ð+Ð+Ð+Ð+Ð+Ø+¨dÑ2€IÝŒ?�?¨BÑ/Ô/€DÝ	Ô	'¨¬¸¸iÑ	HÔ	H€Bð „M×Ò�jÑ!Ô!Ð!Ø„M×Ò�jÑ!Ô!Ð!Ø�<Š<˜˜BÑÔÐr   c                 ó$   — t          | |d¦  «        S )z@
    Get a pointer to the thread-local Python random state.
    r   ©r1   ©r+   r,   s     r   Úget_py_state_ptrr5   E   ó   € õ ˜ '¨4Ñ0Ô0Ð0r   c                 ó$   — t          | |d¦  «        S )z?
    Get a pointer to the thread-local Numpy random state.
    r   r3   r4   s     r   Úget_np_state_ptrr8   K   r6   r   c                 ó$   — t          | |d¦  «        S )zB
    Get a pointer to the thread-local internal random state.
    r    r3   r4   s     r   Úget_internal_state_ptrr:   Q   s   € õ ˜ '¨:Ñ6Ô6Ð6r   c                 ó0   — t          j        | |dd¦  «        S ©Nr   ©r   Úgep_inbounds©r,   Ú	state_ptrs     r   Úget_index_ptrrA   X   ó   € ÝÔ ¨°A°qÑ9Ô9Ð9r   c                 ó0   — t          j        | |dd¦  «        S ©Nr   é   r=   r?   s     r   Úget_array_ptrrF   [   rB   r   c                 ó0   — t          j        | |dd¦  «        S )Nr   é   r=   r?   s     r   Úget_has_gauss_ptrrI   ^   rB   r   c                 ó0   — t          j        | |dd¦  «        S )Nr   é   r=   r?   s     r   Úget_gauss_ptrrL   a   rB   r   c                 óÞ   — t          j        t          j        ¦   «         t          f¦  «        }t	          j        | j        j        |d¦  «        }|j        d          	                    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/   r0   s      r   Úget_rnd_shufflerT   d   s\   € õ Œ?�2œ;™=œ=­?Ð*<Ñ=Ô=€DÝ	Ô	'¨Ô(8Ô(?ÀØ(;ñ
=ô 
=€Bà„GˆA„J×Ò˜[Ñ)Ô)Ð)Ø€Ir   c                 óÀ  — t          ||¦  «        }|                     |¦  «        }|                     d|t          ¦  «        }t	          j        ||¦  «        5  t          |¦  «        }|                     ||f¦  «         |                     t          d¦  «        |¦  «         ddd¦  «         n# 1 swxY w Y   |                     |¦  «        }t          ||¦  «        }|                     t	          j        ||d|¦  «        ¦  «        }|                     |t          d¦  «        ¦  «        }|                     ||¦  «         |                     ||                     |t          d¦  «        ¦  «        ¦  «        }|                     ||                     |                     |t          d¦  «        ¦  «        t          d¦  «        ¦  «        ¦  «        }|                     ||                     |                     |t          d¦  «        ¦  «        t          d	¦  «        ¦  «        ¦  «        }|                     ||                     |t          d
¦  «        ¦  «        ¦  «        }|S )zB
    Get the next int32 generated by the PRNG at *state_ptr*.
    ú>=r   NrE   é   é   l   €VX: é   l     Œ_ é   )rA   ÚloadÚicmp_unsignedÚN_constr   Úif_unlikelyrT   r*   Ústorer   rF   r>   r)   ÚxorÚlshrÚand_Úshl)	r+   r,   r@   ÚidxptrÚidxÚneed_reshuffler0   Ú	array_ptrÚys	            r   Úget_next_int32ri   o   s0  € õ ˜7 IÑ.Ô.€FØ
�,Š,�vÑ
Ô
€CØ×*Ò*¨4°µgÑ>Ô>€NÝ	Ô	˜W nÑ	5Ô	5ð ,ð ,Ý˜WÑ%Ô%ˆØ�Š�R˜)˜Ñ&Ô&Ð&Ø�Š•i ‘l”l FÑ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð �,Š,�vÑ
Ô
€CÝ˜g yÑ1Ô1€IØ�Š•WÔ)¨'°9¸aÀÑEÔEÑFÔF€AØ
�+Š+�c�9 Q™<œ<Ñ
(Ô
(€CØ‡M‚M�#�vÑÔÐà�Š�A�w—|’| A¥y°¡}¤}Ñ5Ô5Ñ6Ô6€AØ�Š�A�w—|’| G§K¢K°µ9¸Q±<´<Ñ$@Ô$@Ý$-¨jÑ$9Ô$9ñ;ô ;ñ 	<ô 	<€Aà�Š�A�w—|’| G§K¢K°µ9¸R±=´=Ñ$AÔ$AÝ$-¨jÑ$9Ô$9ñ;ô ;ñ 	<ô 	<€Aà�Š�A�w—|’| A¥y°¡}¤}Ñ5Ô5Ñ6Ô6€AØ€Hs   ÁA
B-Â-B1Â4B1c                 ó  — |                      t          | ||¦  «        t          d¦  «        ¦  «        }|                      t          | ||¦  «        t          d¦  «        ¦  «        }|                     |t          ¦  «        }|                     |t          ¦  «        }|                     |                     ||                     |t          j	        t          d¦  «        ¦  «        ¦  «        t          j	        t          d¦  «        ¦  «        S )zC
    Get the next double generated by the PRNG at *state_ptr*.
    é   é   g      �Ag      @C)
ra   ri   r   ÚuitofpÚdoubleÚfdivÚfaddÚfmulr   r   )r+   r,   r@   ÚaÚbs        r   Úget_next_doublert   ˆ   sÇ   € ð
 	�Š•^ G¨W°iÑ@Ô@Å)ÈAÁ,Ä,ÑOÔO€AØ�Š•^ G¨W°iÑ@Ô@Å)ÈAÁ,Ä,ÑOÔO€Að 	�Š�q�&Ñ!Ô!€AØ�Š�q�&Ñ!Ô!€AØ�<Š<Ø�Š�Q˜Ÿš Q­¬µF¸JÑ(GÔ(GÑHÔHÑIÔIÝ
Œ•FÐ.Ñ/Ô/ñ1ô 1ð 1r   c                 óú  ‡ ‡‡‡‡— t          j        |j        d¦  «        Šˆˆˆ ˆˆfd„}t          j        ‰t          j        t
          d¦  «        ¦  «        }‰                     d|‰¦  «        }‰                     |¦  «        5 \  }}	|5   ||¦  «        }
‰                     ‰ 	                    |
t
          ¦  «        |¦  «         ddd¦  «         n# 1 swxY w Y   |	5  ‰r |‰ 
                    |‰¦  «        ¦  «        }t          ‰ ‰‰¦  «        }
‰s |‰ 
                    |‰¦  «        ¦  «        }‰                     ‰ 	                    |
t
          ¦  «        ‰                     ‰ 	                    |t
          ¦  «        t          j        t
          d¦  «        ¦  «        ¦  «        }‰                     ||¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ‰                     |¦  «        S )z2
    Get the next integer with width *nbits*.
    r   c                 ó
  •— ‰                      ‰| ¦  «        }t          ‰‰‰¦  «        }| j        j        |j        j        k     r‰                     ||j        ¦  «        }n5| j        j        |j        j        k    r‰                     ||j        ¦  «        }‰rY‰                     t          j        |j        d¦  «        ¦  «        }‰ 	                    ||¦  «        }‰ 
                    ||¦  «        S ‰ 	                    ||¦  «        S r<   )Úsubri   ÚtypeÚwidthÚzextÚtruncÚnot_r   r   ra   rb   )	ÚnbitsÚshiftrh   Úmaskr,   Úc32r+   Úis_numpyr@   s	       €€€€€r   Úget_shifted_intz%get_next_int.<locals>.get_shifted_intœ   sá   ø€ Ø—’˜C Ñ'Ô'ˆÝ˜7 G¨YÑ7Ô7ˆð Œ:Ô˜aœfœlÒ*Ð*Ø—L’L ¨¬Ñ/Ô/ˆEˆEØŒZÔ ¤¤Ò,Ð,Ø—M’M %¨¬Ñ0Ô0ˆEàð 	*à—<’<¥¤¨A¬F°AÑ 6Ô 6Ñ7Ô7ˆDØ—<’<  eÑ,Ô,ˆDØ—<’<  4Ñ(Ô(Ð(ð —<’<  5Ñ)Ô)Ð)r   r   ú<=N)r   r   rx   r   Úalloca_once_valueÚint64_tr\   Úif_elser_   rz   rw   ri   r)   rc   r[   )r+   r,   r@   r}   r�   r‚   ÚretÚis_32bÚifsmallÚiflargeÚlowÚhighÚtotalr€   s   ``` `        @r   Úget_next_intrŽ   —   s­  øøøøø€ õ Œ+�e”j "Ñ
%Ô
%€Cð*ð *ð *ð *ð *ð *ð *ð *ð *õ& Ô
# G­R¬[½À!Ñ-DÔ-DÑ
EÔ
E€Cà×"Ò" 4¨°Ñ4Ô4€FØ	�Š˜Ñ	 Ô	 ð &Ñ$6 W¨gØð 	;ð 	;Ø!�/ %Ñ(Ô(ˆCØ�MŠM˜'Ÿ,š, s­GÑ4Ô4°cÑ:Ô:Ð:ð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;ð ð 	&ð 	&àð @à&� w§{¢{°5¸#Ñ'>Ô'>Ñ?Ô?�Ý  ¨'°9Ñ=Ô=ˆCØð @à&� w§{¢{°5¸#Ñ'>Ô'>Ñ?Ô?�Ø—K’KØ—’˜S¥'Ñ*Ô*Ø—’˜GŸLšL¨­wÑ7Ô7ÝœK­°Ñ4Ô4ñ6ô 6ñ7ô 7ˆEð �MŠM˜% Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð	&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð& �<Š<˜ÑÔÐs[   ÂGÂ;CÃGÃC	ÃGÃC	ÃGÃCGÆ:GÇG
	Ç
GÇG
	ÇGÇG!Ç$G!c                 ó‚   ‡— t          | t          j        ¦  «        r#t          t	          d¦  «        ¦  «        Šˆfd„}|S d S )Nr   c                 ó   •—  ‰| ¦  «        S r   r!   )rr   r0   s    €r   Úimplzseed_impl.<locals>.implÌ   s   ø€ Ø�2�a‘5”5ˆLr   )Ú
isinstancer   ÚIntegerr   Ú
_seed_impl)rr   r‘   r0   s     @r   Ú	seed_implr•   È   sT   ø€ å�!•U”]Ñ#Ô#ð Ý�j¨Ñ.Ô.Ñ/Ô/ˆð	ð 	ð 	ð 	ð 	àˆð	ð r   c                 óX   — t          | t          j        ¦  «        rt          d¦  «        S d S ©Nr   )r’   r   r“   r”   )Úseeds    r   r•   r•   Ñ   s.   € å�$�œÑ&Ô&ð  Ý˜$ÑÔÐð ð  r   c                 ó4   ‡ ‡— t           ˆ fd„¦   «         Šˆfd„S )Nc                 óZ   •— ˆfd„}t          t          j        t          j        ¦  «        |fS )Nc                 ó>  •— |\  }t          j        t          j        ¦   «         t          t          f¦  «        }t          j        |j        j        |d¦  «        }| 	                    |t          | |‰¦  «        |f¦  «         |                      t          j        d ¦  «        S )NÚnumba_rnd_init)r   r$   rP   r%   r   r   r&   rQ   r'   r*   r1   Úget_constantr   Únone)r+   r,   ÚsigrR   Ú
seed_valuer/   r0   Ú
state_types          €r   Úcodegenz*_seed_impl.<locals>._impl.<locals>.codegenÚ   s�   ø€ Ø‰KˆJÝ”?¥2¤;¡=¤=µ?ÅGÐ2LÑMÔMˆDÝÔ/°Ô0@Ô0GÈØ0@ñBô BˆBà�LŠL˜�m¨G°W¸jÑIÔIØ(ð*ñ +ô +ð +à×'Ò'­¬
°DÑ9Ô9Ð9r   )r   r   ÚvoidÚuint32)Útypingcontextr˜   r¢   r¡   s      €r   Ú_implz_seed_impl.<locals>._implØ   s7   ø€ ð	:ð 	:ð 	:ð 	:ð 	:õ �œ¥U¤\Ñ2Ô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”   ×   s8   øø€ Ýð	<ð 	<ð 	<ð 	<ñ „Yð	<ð $Ð#Ð#Ð#Ð#r   c                  ó.   ‡ — t           d„ ¦   «         Š ˆ fd„S )Nc                 ó>   — d„ }t          t          j        ¦  «        |fS )Nc                 óF   — t          | |d¦  «        }t          | ||¦  «        S ©Nr   ©r1   rt   ©r+   r,   rŸ   rR   r@   s        r   r¢   z+random_impl.<locals>._impl.<locals>.codegenê   ó%   € Ý% g¨w¸Ñ=Ô=ˆIÝ" 7¨G°YÑ?Ô?Ð?r   )r   r   rn   ©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�5‘7”7€ r   r©   r³   s   @r   Úrandom_implrµ   æ   s*   ø€ åð0ð 0ñ „Yð0ð
 ˆ?ˆ?ˆ?Ðr   c                  ó.   ‡ — t           d„ ¦   «         Š ˆ fd„S )Nc                 ó>   — d„ }t          t          j        ¦  «        |fS )Nc                 óF   — 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ñ „Yð1ð
 ˆ?ˆ?ˆ?Ðr   c                 óâ   — t          | ¦  «        rdd„S t          | t          j        ¦  «        s9t          | t          j        ¦  «        r%t          | j        t          j        ¦  «        rdd„}|S d S d S )Nc                 ó>   — t           j                             ¦   «         S r   ©r   Úrandom©Úsizes    r   r¨   zrandom_impl1.<locals>.<lambda>  s   € ¥¤×!1Ò!1Ñ!3Ô!3€ r   c                 ó¬   — t          j        | ¦  «        }|j        }t          |j        ¦  «        D ]#}t           j                             ¦   «         ||<   Œ$|S r   )r   ÚemptyÚflatÚrangerÁ   r¿   ©rÁ   ÚoutÚout_flatre   s       r   r¦   zrandom_impl1.<locals>._impl	  sK   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð 3ð 3�Ý "¤	× 0Ò 0Ñ 2Ô 2�˜‘�ØˆJr   r   ©r   r’   r   r“   ÚUniTupleÚdtype©rÁ   r¦   s     r   Úrandom_impl1rÍ   ÿ   s“   € õ
 �4ÑÔð 4Ø3Ð3Ð3Ð3Ý�$�œÑ&Ô&ð 	­:°d½E¼NÑ+KÔ+Kð 	Ý/9¸$¼*Ý:?¼-ñ0Iô 0Ið	ð	ð 	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 óÎ   ‡— t          | t          j        t          j        f¦  «        r;t          |t          j        t          j        f¦  «        rt          d„ ¦   «         Šˆfd„S d S d S )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  sL   € å3°BÑ7Ô7ÐÝ!5°eÑ!<Ô!<ÐÝ�Uœ]¨B°Ñ6Ô6Ý˜tÐ%5Ð7IÑJÔJðKð Kr   c                 ó   •—  ‰| |¦  «        S r   r!   ©rÓ   rÔ   r¦   s     €r   r¨   zgauss_impl.<locals>.<lambda>  s   ø€    r¨5Ñ!1Ô!1€ r   ©r’   r   ÚFloatr“   r   rØ   s     @r   Ú
gauss_implrÛ     s€   ø€ õ �"•u”{¥E¤MÐ2Ñ3Ô3ð 2½
Ø•E”K¥¤Ð/ñ91ô 91ð 2å	ð	Kð 	Kñ 
Œð	Kð
 2Ð1Ð1Ð1Ð1ð2ð 2ð 2ð 2r   c                  ó   — d„ S )Nc                  óB   — t           j                             dd¦  «        S ©Nç        ç      ð?©r   r¿   Únormalr!   r   r   r¨   z np_gauss_impl0.<locals>.<lambda>#  s   € •2”9×#Ò# C¨Ñ-Ô-€ r   r!   r!   r   r   Únp_gauss_impl0rã      s   € ð .Ð-Ð-r   c                 óX   — t          | t          j        t          j        f¦  «        rd„ S d S )Nc                 óB   — t           j                             | d¦  «        S ©Nrà   rá   ©Úlocs    r   r¨   z np_gauss_impl1.<locals>.<lambda>)  s   € �2œ9×+Ò+¨C°Ñ5Ô5€ r   ©r’   r   rÚ   r“   rç   s    r   Únp_gauss_impl1rê   &  s0   € å�#�œ¥U¤]Ð3Ñ4Ô4ð 6Ø5Ð5Ð5ð6ð 6r   c                 óÎ   ‡— t          | t          j        t          j        f¦  «        r;t          |t          j        t          j        f¦  «        rt          d„ ¦   «         Šˆfd„S d S d S )Nc                 ó–   — t          |¦  «        }t          |¦  «        }t          t          j        ||¦  «        t	          d||¦  «        fS r—   rÐ   )r¥   rè   ÚscalerÕ   rÖ   s        r   r¦   znp_gauss_impl2.<locals>._impl0  sL   € å3°CÑ8Ô8ÐÝ!5°eÑ!<Ô!<ÐÝ�Uœ]¨C°Ñ7Ô7Ý˜tÐ%5Ð7IÑJÔJðKð Kr   c                 ó   •—  ‰| |¦  «        S r   r!   ©rè   rí   r¦   s     €r   r¨   z np_gauss_impl2.<locals>.<lambda>6  s   ø€  % %¨¨UÑ"3Ô"3€ r   rÙ   rï   s     @r   Únp_gauss_impl2rð   ,  s~   ø€ å�#�œ¥U¤]Ð3Ñ4Ô4ð 4½Ø•E”K¥¤Ð/ñ:1ô :1ð 4å	ð	Kð 	Kñ 
Œð	Kð
 4Ð3Ð3Ð3Ð3ð4ð 4ð 4ð 4r   c                 óÞ   — t          | ¦  «        rd„ S t          | t          j        ¦  «        s9t          | t          j        ¦  «        r$t          | j        t          j        ¦  «        rd„ }|S d S d S )Nc                 ó>   — t           j                             ¦   «         S r   ©r   r¿   Ústandard_normalrÀ   s    r   r¨   z'standard_normal_impl1.<locals>.<lambda><  ó   € �BœI×5Ò5Ñ7Ô7€ r   c                 ó¬   — t          j        | ¦  «        }|j        }t          |j        ¦  «        D ]#}t           j                             ¦   «         ||<   Œ$|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   rô   rÆ   s       r   r¦   z$standard_normal_impl1.<locals>._impl@  óK   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð <ð <�Ý "¤	× 9Ò 9Ñ ;Ô ;�˜‘�ØˆJr   rÉ   rÌ   s     r   Ústandard_normal_impl1rø   9  s‰   € å�4ÑÔð 8Ø7Ð7Ð7Ý�$�œÑ&Ô&ð 	­:°d½E¼NÑ+KÔ+Kð 	Ý+5°d´jÝ6;´mñ,Eô ,Eð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	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¦  «        r~t          |t          j        t          j        f¦  «        rZt          |t          j        ¦  «        s9t          |t          j        ¦  «        r(t          |j        t          j        ¦  «        rd„ }|S d S d S d S d S )Nc                 óB   — t           j                             | |¦  «        S r   rá   ©rè   rí   rÁ   s      r   r¨   z np_gauss_impl3.<locals>.<lambda>N  ó   € ­¬	×(8Ò(8¸¸eÑ(DÔ(D€ r   c                 ó°   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]%}t           j                             | |¦  «        ||<   Œ&|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   râ   ©rè   rí   rÁ   rÇ   rÈ   re   s         r   r¦   znp_gauss_impl3.<locals>._implT  óO   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð =ð =�Ý "¤	× 0Ò 0°°eÑ <Ô <�˜‘�ØˆJr   ©r’   r   rÚ   r“   r   rÊ   rË   ©rè   rí   rÁ   r¦   s       r   Únp_gauss_impl3r  I  s  € å�3�œ¥e¤mÐ4Ñ5Ô5ð E½*Ø•E”K¥¤Ð/ñ;1ô ;1ð Eå�4ÑÔðEð EÐDÐDÝ�3�œ¥e¤mÐ4Ñ5Ô5ð ½*Ø•E”K¥¤Ð/ñ;1ô ;1ð å�4�œÑ'Ô'ðå,6°t½U¼^Ñ,LÔ,Lðõ 1;¸4¼:Ý;@¼=ñ1Jô 1Jðð
	ð 	ð 	ð ˆðð ð ð ð ð ð ð r   c                 ó   ‡ — ˆ fd„}|S )Nc                  óä   •— 	 d ‰¦   «         z  dz
  } d ‰¦   «         z  dz
  }| | z  ||z  z   }|dk     r|dk    rnŒ9t          j        dt          j        |¦  «        z  |z  ¦  «        }|| z  ||z  fS )zG
        Compute a pair of numbers on the normal distribution.
        Tç       @rà   rß   ç       À)ÚmathÚsqrtÚlog)Úx1Úx2Úr2ÚfÚ_randoms       €r   Úcompute_gauss_pairz,_gauss_pair_impl.<locals>.compute_gauss_pair^  s�   ø€ ð	Ø�w�w‘y”y‘ 3Ñ&ˆBØ�w�w‘y”y‘ 3Ñ&ˆBØ�B‘˜˜B™‘ˆBØ�CŠxˆx˜B #šI˜IØð	õ ŒI�d�TœX b™\œ\Ñ)¨BÑ.Ñ/Ô/ˆØ�2‰v�q˜2‘vˆ~Ðr   r!   )r  r  s   ` r   Ú_gauss_pair_implr  ]  s$   ø€ ðð ð ð ð ð Ðr   c                 ó   ‡ ‡‡— ˆˆˆ fd„}|S )Nc                 óÊ  •— |j         }|                      |¦  «        }t          j        t          j        j        dœ‰         }t	          | |‰¦  «        }t          j        ||d¬¦  «        }t          ||¦  «        }	t          ||¦  «        }
t          j	        || 
                    |
¦  «        ¦  «        }|                     |¦  «        5 \  }}|5  |                     | 
                    |	¦  «        |¦  «         |                     t          d¦  «        |
¦  «         d d d ¦  «         n# 1 swxY w Y   |5  |                      |t          |¦  «        t!          t#          j        |d¦  «        ¦  «        d¦  «        }t          j        ||d¦  «        \  }}|                     ||	¦  «         |                     ||¦  «         |                     t          d¦  «        |
¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |\  }}|                      ‰||¦  «        |                      ‰||¦  «        | 
                    |¦  «        ¦  «        ¦  «        S )N)r   r   Úresult©r-   r   rH   r!   rE   )Úreturn_typeÚget_data_typer¿   r   r1   r   Úalloca_oncerL   rI   Úis_truer[   r†   r_   r   Úcompile_internalr  r   r   rÊ   Úunpack_tuplerp   rq   )r+   r,   rŸ   rR   Ú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>._implp  sù  ø€ àŒ_ˆØ×$Ò$ RÑ(Ô(ˆÝœÝœÔ)ð+ð +Ø+0ô2ˆõ " '¨7°EÑ:Ô:ˆ	åÔ! '¨4°hÐ?Ñ?Ô?ˆå! '¨9Ñ5Ô5ˆ	Ý)¨'°9Ñ=Ô=ˆÝ”O G¨W¯\ª\¸-Ñ-HÔ-HÑIÔIˆ	Ø�_Š_˜YÑ'Ô'ð 	;Ñ+<¨D°)Øð ;ð ;à—’˜gŸlšl¨9Ñ5Ô5°sÑ;Ô;Ð;Ø—’�i¨™lœl¨MÑ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ð ;ð ;ð ×/Ò/°Ý0@ÀÑ0IÔ0IÝ09½%¼.ÈÈQÑ:OÔ:OÑ0PÔ0PØ02ñ4ô 4�õ
 !(Ô 4°W¸dÀAÑ FÔ F‘��vØ—’˜e YÑ/Ô/Ð/Ø—’˜f cÑ*Ô*Ð*Ø—’�i¨™lœl¨MÑ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;ð$ ‰	ˆˆEØ�|Š|Ð,Ð,¨W°bÑ9Ô9Ø#ŸLšLÐ);Ð);¸GÀUÑ)KÔ)KØ)0¯ª°cÑ):Ô):ñ<ô <ñ=ô =ð 	=s\   ÃHÃAD&ÄHÄ&D*	Ä*HÄ-D*	Ä.HÄ3B.G-Ç!HÇ-G1	Ç1HÇ4G1	Ç5HÈHÈHr!   )r%  rÕ   rÖ   r¦   s   ``` r   rÒ   rÒ   o  s0   øøø€ ð#=ð #=ð #=ð #=ð #=ð #=ð #=ðH €Lr   c                 ó  ‡— t           j                             ¦   «         Št          | t          j        ¦  «        r| j        rˆfd„S ˆfd„S t          | t          j        ¦  «        r| j        dk    rˆfd„S d„ S t          d| z  ¦  «        ‚)Nc                 ó0   •— |                       |‰¦  «        S r   )Úsitofp©r,   Úvr  s     €r   r¨   z&_double_preprocessor.<locals>.<lambda>œ  ó   ø€  g§n¢n°Q¸Ñ&;Ô&;€ r   c                 ó0   •— |                       |‰¦  «        S r   )rm   r)  s     €r   r¨   z&_double_preprocessor.<locals>.<lambda>ž  r+  r   r   c                 ó0   •— |                       |‰¦  «        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   €  q€ r   z(Cannot convert {} to floating point type)	r   r   Ú
DoubleTyper’   r“   ÚsignedrÚ   ÚbitwidthÚ	TypeError)Úvaluer  s    @r   rÑ   rÑ   —  s¡   ø€ Ý	Œ×	Ò	Ñ	Ô	€Bå�%�œÑ'Ô'ð LØŒ<ð 	<Ø;Ð;Ð;Ð;Ð;à;Ð;Ð;Ð;Ð;Ý	�E�5œ;Ñ	'Ô	'ð LØŒ>˜RÒÐØ:Ð:Ð:Ð:Ð:à(Ð(Ð(åÐBÀUÑJÑKÔKÐKr   c                 óf   ‡— t          | t          j        ¦  «        rt          d„ ¦   «         Šˆfd„S d S )Nc                 ó@   — d„ }t          t          j        |¦  «        |fS )Nc                 ó¬  — |\  }|                      d|t          d¦  «        ¦  «        }|                      d|t          d¦  «        ¦  «        }t          j        ||                     ||¦  «        ¦  «        5  d}| j                             |t          |f¦  «         d d d ¦  «         n# 1 swxY w Y   t          | |d¦  «        }t          | |||d¦  «        S )NrV   éA   ú==r   z getrandbits() limited to 64 bitsr   F)
r\   r   r   r^   Úor_Ú	call_convÚreturn_user_excÚOverflowErrorr1   rŽ   )	r+   r,   rŸ   rR   r}   Ú	too_largeÚ	too_smallÚmsgr@   s	            r   r¢   z0getrandbits_impl.<locals>._impl.<locals>.codegen­  s  € Ø‘�à#×1Ò1°$¸½yÈ¹}¼}ÑMÔM�	Ø#×1Ò1°$¸½yÈ¹|¼|ÑLÔL�	ÝÔ(¨°'·+²+¸iØ>Gñ3Iô 3Iñ Jô Jð >ð >à<�CØÔ%×5Ò5°g½}Ø7:°fñ>ô >ð >ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >õ
 *¨'°7¸DÑAÔA�	Ý# G¨W°iÀÈÑNÔNÐNs   Á6%B'Â'B+Â.B+)r   r   Úuint64)r¥   Úkr¢   s      r   r¦   zgetrandbits_impl.<locals>._impl«  s-   € ðOð Oð Oõ �Uœ\¨1Ñ-Ô-¨wÐ6Ð6r   c                 ó   •—  ‰| ¦  «        S r   r!   ©rC  r¦   s    €r   r¨   z"getrandbits_impl.<locals>.<lambda>º  s   ø€ ˜˜˜q™œ€ r   )r’   r   r“   r   rE  s    @r   Úgetrandbits_implrF  ¨  sK   ø€ å�!•U”]Ñ#Ô#ð "Ý	ð	7ð 	7ñ 
Œð	7ð "Ð!Ð!Ð!Ð!ð!"ð "r   c                 ój  ‡ ‡‡‡‡‡‡‡— t          ‰ ‰‰¦  «        Št          j        ‰d¦  «        }t          j        ‰d¦  «        }	t          j        ‰‰d¬¦  «        }
‰                     ‰                     ||¦  «        |
¦  «         ‰                     ‰                     d||¦  «        ¦  «        5  ‰ 	                    ‰ 	                    ‰ 
                    |
¦  «        |¦  «        |	¦  «        }‰                     ||¦  «        Š‰                     ‰|
¦  «         d d d ¦  «         n# 1 swxY w Y   ‰                     ‰                     d||	¦  «        ¦  «        5  ‰                     ‰ 	                    ‰ 
                    |
¦  «        |¦  «        |	¦  «        }‰                     ||¦  «        Š‰                     ‰|
¦  «         d d d ¦  «         n# 1 swxY w Y   ‰ 
                    |
¦  «        Št          j        ‰‰                     d‰|¦  «        ¦  «        5  d}‰ j                             ‰t          |f¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        ‰‰t          j        j        g¦  «        }t          j        ‰j        j        |d	‰z  ¦  «        }‰d
k    r‰                     ‰|	¦  «        n‰}‰                     ‰                     ||t          j        g¦  «        t0          ¦  «        Š‰                     t          j        t0          ‰j        ¦  «        ‰¦  «        Št          j        ‰‰d¬¦  «        Šˆˆ ˆˆˆˆˆˆfd„}‰d
k    rš‰                     ‰                     d‰|	¦  «        ¦  «        5 \  }}|5  ‰                     |‰¦  «         d d d ¦  «         n# 1 swxY w Y   |5   |¦   «          d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   n
 |¦   «          ‰ 	                    |‰                     ‰ 
                    ‰¦  «        |¦  «        ¦  «        S )Nr   rE   Únr  ú<ú>rƒ   zempty range for randrange()zllvm.ctlz.%sr   Úrc                  ó¼  •— ‰                      d¦  «        } ‰                      d¦  «        }‰                     | ¦  «         ‰                     | ¦  «         t          ‰‰‰
‰‰	dk    ¦  «        }‰                     |‰¦  «        }‰                     d|‰¦  «        }‰                     || |¦  «         ‰                     |¦  «         ‰                     |‰¦  «         d S )NÚwhilez	while.endr   rV   )Úappend_basic_blockÚbranchÚposition_at_endrŽ   r{   Úicmp_signedÚcbranchr_   )ÚbbwhileÚbbendrK  r?  r,   r+   rH  r}   Úrptrr%  r@   r  s       €€€€€€€€r   Úget_numz _randrange_impl.<locals>.get_numè  sÖ   ø€ Ø×,Ò,¨WÑ5Ô5ˆØ×*Ò*¨;Ñ7Ô7ˆØ�Š�wÑÔÐà×Ò Ñ(Ô(Ð(Ý˜ '¨9°e¸UÀdº]ÑKÔKˆØ�MŠM˜!˜RÑ Ô ˆØ×'Ò'¨¨a°Ñ3Ô3ˆ	Ø�Š˜	 7¨EÑ2Ô2Ð2à×Ò Ñ&Ô&Ð&Ø�Š�a˜ÑÔÐÐÐr   r:  )r1   r   r   r   r  r_   rw   Úif_thenrQ  r)   r[   Úsdivr^   r<  r=  Ú
ValueErrorr$   Útrue_bitrx   r&   rQ   r'   r{   r*   r   ry   r†   Úmul)r+   r,   ÚstartÚstopÚstepr  r2  r%  ÚzeroÚoneÚnptrÚwrA  r/   r0   Únm1rV  Úis_oneÚ
is_not_onerH  r}   rU  r@   s   ``   ` `           @@@@r   Ú_randrange_implrf  ½  sl  øøøøøøøø€ Ý˜g w°Ñ6Ô6€IÝŒ;�r˜1ÑÔ€DÝ
Œ+�b˜!Ñ
Ô
€CÝÔ˜w¨°Ð5Ñ5Ô5€Dð ‡M‚M�'—+’+˜d EÑ*Ô*¨DÑ1Ô1Ð1à	�Š˜×,Ò,¨S°$¸Ñ=Ô=Ñ	>Ô	>ð ð à�KŠK˜Ÿš G§L¢L°Ñ$6Ô$6¸Ñ=Ô=¸sÑCÔCˆØ�LŠL˜˜DÑ!Ô!ˆØ�Š�a˜ÑÔÐð	ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð
 
�Š˜×,Ò,¨S°$¸Ñ<Ô<Ñ	=Ô	=ð ð à�KŠK˜Ÿš G§L¢L°Ñ$6Ô$6¸Ñ=Ô=¸sÑCÔCˆØ�LŠL˜˜DÑ!Ô!ˆØ�Š�a˜ÑÔÐð	ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð 	�Š�TÑÔ€AÝ	Ô	˜W g×&9Ò&9¸$ÀÀ4Ñ&HÔ&HÑ	IÔ	Ið Gð Gà+ˆØÔ×)Ò)¨'µ:À¸vÑFÔFÐFðGð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gõ
 Œ?˜2 ¥GÔ$4Ô$9Ð:Ñ;Ô;€DÝ	Ô	'¨Ô(8Ô(?ÀØ(6¸Ñ(;ñ
=ô 
=€Bð "'¨$¢ ˆ'�+Š+�a˜Ñ
Ô
Ð
°A€CØ�MŠM˜'Ÿ,š, r¨CµÔ1AÐ+BÑCÔCÅWÑMÔM€EØ�KŠK�œ¥G¨R¬XÑ6Ô6¸Ñ>Ô>€EåÔ˜w¨°Ð5Ñ5Ô5€Dðð ð ð ð ð ð ð ð ð ð ð ð �‚}€}à�_Š_˜W×0Ò0°°q¸#Ñ>Ô>Ñ?Ô?ð 	ÑCWÀFÈJØð *ð *Ø—’˜d DÑ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *àð ð Ø�‘	”	�	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øð 	ˆ‰	Œ	ˆ	à�;Š;�u˜gŸkšk¨'¯,ª,°tÑ*<Ô*<¸dÑCÔCÑDÔDÐDs’   Â/A*D%Ä%D)Ä,D)ÅA*GÇGÇGÈ%IÉIÉIÍ>O"ÎN'ÎO"Î'N+	Î+O"Î.N+	Î/O"Î4OÎ?O"ÏO	ÏO"ÏO	ÏO"Ï"O&Ï)O&c                 ó@   — t          | t          j        ¦  «        rd„ S d S )Nc                 ó.   — t          j        d| d¦  «        S rD   ©r¿   Ú	randrange©r\  s    r   r¨   z"randrange_impl_1.<locals>.<lambda>  s   € �VÔ-¨a°¸Ñ:Ô:€ r   ©r’   r   r“   rk  s    r   Úrandrange_impl_1rm    s)   € å�%�œÑ'Ô'ð ;Ø:Ð:Ð:ð;ð ;r   c                 óx   — t          | t          j        ¦  «        rt          |t          j        ¦  «        rd„ S d S d S )Nc                 ó.   — t          j        | |d¦  «        S ©NrE   ri  ©r\  r]  s     r   r¨   z"randrange_impl_2.<locals>.<lambda>  s   € ¥6Ô#3°E¸4ÀÑ#CÔ#C€ r   rl  rq  s     r   Úrandrange_impl_2rr  	  sL   € å�%�œÑ'Ô'ð D­J°t½U¼]Ñ,KÔ,Kð DØCÐCÐCðDð Dð Dð Dr   c                 óp   — |j         | k    r)|j        rt          j        j        nt          j        j        S d„ S )Nc                 ó   — |S r   r!   )r0  r*  Ú_tys      r   r¨   z)_randrange_preprocessor.<locals>.<lambda>  s   € ¨€ r   )r3  r2  r   Ú	IRBuilderÚsextrz   )r3  r  s     r   Ú_randrange_preprocessorrx    s;   € Ø	„{�hÒÐØ%'¤Yð '•”Ô!Ð!Ý”\Ô&ð	(ð *Ð)Ð)r   c                 ó8  ‡‡‡‡‡‡	‡
— t          | t          j        ¦  «        rôt          |t          j        ¦  «        rÜt          |t          j        ¦  «        rÄt          | j        |j        |j        ¦  «        Št          | j        |j        |j        ¦  «        }t          j                             |‰¦  «        Št          j        |¦  «        Št          || ¦  «        Št          ||¦  «        Š
t          ||¦  «        Š	t          ˆˆˆˆˆ	ˆ
fd„¦   «         Šˆfd„S d S d S d S )Nc                 ó>   •— ˆˆˆˆ	ˆ
fd„}t          ‰|||¦  «        |fS )Nc           
      óŠ   •— |\  }}} ‰	||‰¦  «        } ‰||‰¦  «        } ‰
||‰¦  «        }t          | ||||‰‰d¦  «        S r­   )rf  )r+   r,   rŸ   rR   r\  r]  r^  Ú	llvm_typer2  Ústart_preprocessorÚstep_preprocessorÚstop_preprocessors          €€€€€r   r¢   z0randrange_impl_3.<locals>._impl.<locals>.codegen&  sq   ø€ Ø$(Ñ!��t˜Tà*Ð*¨7°E¸9ÑEÔE�Ø(Ð(¨°$¸	ÑBÔB�Ø(Ð(¨°$¸	ÑBÔB�Ý& w°¸ÀÀdØ'0°&¸$ñ@ô @ð @r   r   )r¥   r\  r]  r^  r¢   Úint_tyr|  r2  r}  r~  r  s        €€€€€€r   r¦   zrandrange_impl_3.<locals>._impl$  sT   ø€ ð@ð @ð @ð @ð @ð @ð @ð @ð @õ ˜V U¨D°$Ñ7Ô7¸Ð@Ð@r   c                 ó   •—  ‰| ||¦  «        S r   r!   )r\  r]  r^  r¦   s      €r   r¨   z"randrange_impl_3.<locals>.<lambda>/  s   ø€ ¨¨¨u°d¸DÑ)AÔ)A€ r   ©r’   r   r“   Úmaxr2  r3  Úfrom_bitwidthr   ÚIntTyperx  r   )r\  r]  r^  r3  r¦   r€  r|  r2  r}  r~  r  s       @@@@@@@r   Úrandrange_impl_3r†    sG  øøøøøøø€ å�5�%œ-Ñ(Ô(ð B­Z¸½e¼mÑ-LÔ-Lð BÝ�$�œÑ&Ô&ðBå�U”\ 4¤;°´Ñ<Ô<ˆÝ�u”~ t¤}°d´mÑDÔDˆÝ”×,Ò,¨X°vÑ>Ô>ˆÝ”J˜xÑ(Ô(ˆ	å4°X¸uÑEÔEÐÝ3°H¸dÑCÔCÐÝ3°H¸dÑCÔCÐå	ð		Að 		Að 		Að 		Að 		Að 		Að 		Að 		Að 		Añ 
Œð		Að BÐAÐAÐAÐAð-Bð Bð Bð Bð Bð Br   c                 óx   — t          | t          j        ¦  «        rt          |t          j        ¦  «        rd„ S d S d S )Nc                 ó4   — t          j        | |dz   d¦  «        S rp  ri  ©rr   rs   s     r   r¨   z randint_impl_1.<locals>.<lambda>5  s   € �FÔ,¨Q°°A±°qÑ9Ô9€ r   rl  r‰  s     r   Úrandint_impl_1rŠ  2  sF   € å�!•U”]Ñ#Ô#ð :­
°1µe´mÑ(DÔ(Dð :Ø9Ð9Ð9ð:ð :ð :ð :r   c                 ó@   — t          | t          j        ¦  «        rd„ S d S )Nc                 óB   — t           j                             d| ¦  «        S r<   ©r   r¿   Úrandint©r‹   s    r   r¨   z#np_randint_impl_1.<locals>.<lambda>;  s   € �2œ9×,Ò,¨Q°Ñ4Ô4€ r   rl  r�  s    r   Únp_randint_impl_1r�  8  s)   € å�#•u”}Ñ%Ô%ð 5Ø4Ð4Ð4ð5ð 5r   c                 óÄ  ‡‡‡‡‡‡— t          | t          j        ¦  «        r½t          |t          j        ¦  «        r¥t          | j        |j        ¦  «        Št          | j        |j        ¦  «        }t          j                             |‰¦  «        Št          j        |¦  «        Št          || ¦  «        Št          ||¦  «        Št          ˆˆˆˆˆfd„¦   «         Šˆfd„S d S d S )Nc                 ó:   •— ˆˆˆˆfd„}t          ‰||¦  «        |fS )Nc           
      ó˜   •— |\  }} ‰	||‰¦  «        } ‰
||‰¦  «        }t          j        ‰d¦  «        }t          | ||||‰‰d¦  «        S )NrE   r   )r   r   rf  )r+   r,   rŸ   rR   r\  r]  r^  r|  r2  r}  r  s          €€€€r   r¢   z1np_randint_impl_2.<locals>._impl.<locals>.codegenK  sk   ø€ Ø"‘��tà*Ð*¨7°E¸9ÑEÔE�Ø(Ð(¨°$¸	ÑBÔB�Ý”{ 9¨aÑ0Ô0�Ý& w°¸ÀÀdØ'0°&¸$ñ@ô @ð @r   r   )	r¥   r‹   rŒ   r¢   r€  r|  r2  r}  r  s	       €€€€€r   r¦   z np_randint_impl_2.<locals>._implI  sL   ø€ ð@ð @ð @ð @ð @ð @ð @ð @õ ˜V S¨$Ñ/Ô/°Ð8Ð8r   c                 ó   •—  ‰| |¦  «        S r   r!   ©r‹   rŒ   r¦   s     €r   r¨   z#np_randint_impl_2.<locals>.<lambda>T  ó   ø€    s¨DÑ!1Ô!1€ r   r‚  )	r‹   rŒ   r3  r¦   r€  r|  r2  r}  r  s	      @@@@@@r   Únp_randint_impl_2r—  >  s÷   øøøøøø€ å�#•u”}Ñ%Ô%ð 2­*°T½5¼=Ñ*IÔ*Ið 2Ý�S”Z ¤Ñ-Ô-ˆÝ�s”| T¤]Ñ3Ô3ˆÝ”×,Ò,¨X°vÑ>Ô>ˆÝ”J˜xÑ(Ô(ˆ	å4°X¸sÑCÔCÐÝ3°H¸dÑCÔCÐå	ð		9ð 		9ð 		9ð 		9ð 		9ð 		9ð 		9ð 		9ñ 
Œð		9ð 2Ð1Ð1Ð1Ð1ð)2ð 2ð 2ð 2r   c                 ó   ‡— t          | t          j        ¦  «        r,t          |t          j        ¦  «        rt          |¦  «        rd„ S t          | t          j        ¦  «        r¦t          |t          j        ¦  «        rŽt          |t          j        ¦  «        s9t          |t          j        ¦  «        r\t          |j        t          j        ¦  «        r?t          | j        |j        ¦  «        }t          t          d|› �¦  «        Šˆfd„}|S d S d S d S d S )Nc                 óB   — t           j                             | |¦  «        S r   r�  ©r‹   rŒ   rÁ   s      r   r¨   z#np_randint_impl_3.<locals>.<lambda>[  ó   € ¥r¤y×'8Ò'8¸¸dÑ'CÔ'C€ r   Úintc                 ó¶   •— t          j        |‰¬¦  «        }|j        }t          |j        ¦  «        D ]%}t           j                             | |¦  «        ||<   Œ&|S ©N)rË   )r   rÃ   rÄ   rÅ   rÁ   r¿   rŽ  )r‹   rŒ   rÁ   rÇ   rÈ   re   Úresult_types         €r   r¦   z np_randint_impl_3.<locals>._implc  sW   ø€ Ý”(˜4 {Ð3Ñ3Ô3ˆCØ”xˆHÝ˜SœX‘”ð =ð =�Ý "¤	× 1Ò 1°#°tÑ <Ô <�˜‘�ØˆJr   )
r’   r   r“   r   rÊ   rË   rƒ  r3  Úgetattrr   )r‹   rŒ   rÁ   r3  r¦   rŸ  s        @r   Únp_randint_impl_3r¡  W  s'  ø€ å�3�œÑ&Ô&ð D­:°d½E¼MÑ+JÔ+Jð DÝ�4ÑÔðDàCÐCÐCÝ�3�œÑ&Ô&ð ­:°d½E¼MÑ+JÔ+Jð Ý�4�œÑ'Ô'ðÝ,6°t½U¼^Ñ,LÔ,Lðå0:¸4¼:Ý;@¼=ñ1Jô 1Jðõ �s”| T¤]Ñ3Ô3ˆÝ�bÐ"2¨Ð"2Ð"2Ñ3Ô3ˆð	ð 	ð 	ð 	ð 	ð ˆðð ð ð ð ð ð ð r   c                  ó   — d„ S )Nc                  óB   — t           j                             dd¦  «        S rÞ   ©r   r¿   Úuniformr!   r   r   r¨   z"np_uniform_impl0.<locals>.<lambda>n  ó   € •2”9×$Ò$ S¨#Ñ.Ô.€ r   r!   r!   r   r   Únp_uniform_impl0r§  l  ó   € à.Ð.Ð.r   c                 óÎ   ‡— t          | t          j        t          j        f¦  «        r;t          |t          j        t          j        f¦  «        rt          d„ ¦   «         Šˆfd„S d S d S )Nc                 ó–   — t          |¦  «        }t          |¦  «        }t          t          j        ||¦  «        t	          d||¦  «        fS r­   ©rÑ   r   r   r¹   Úuniform_impl)r¥   rr   rs   Úlow_preprocessorÚhigh_preprocessors        r   r¦   zuniform_impl2.<locals>._implu  sN   € å3°AÑ6Ô6ÐÝ 4°QÑ 7Ô 7ÐÝ�Uœ]¨A¨qÑ1Ô1µ<ØÐ&Ð(9ñ4;ô 4;ð ;ð ;r   c                 ó   •—  ‰| |¦  «        S r   r!   ©rr   rs   r¦   s     €r   r¨   zuniform_impl2.<locals>.<lambda>{  s   ø€ ˜E˜E ! Q™KœK€ r   rÙ   r°  s     @r   Úuniform_impl2r±  q  s{   ø€ å�!•e”k¥5¤=Ð1Ñ2Ô2ð (µzØ•”�Uœ]Ð+ñ8-ô 8-ð (å	ð	;ð 	;ñ 
Œð	;ð
 (Ð'Ð'Ð'Ð'ð(ð (ð (ð (r   c                 óÎ   ‡— t          | t          j        t          j        f¦  «        r;t          |t          j        t          j        f¦  «        rt          d„ ¦   «         Šˆfd„S d S d S )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‚  sN   € å3°CÑ8Ô8ÐÝ 4°TÑ :Ô :ÐÝ�Uœ]¨C°Ñ6Ô6½ØÐ&Ð(9ñ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µ  ~  s{   ø€ å�#�œ¥U¤]Ð3Ñ4Ô4ð 2½Ø•5”;¥¤Ð.ñ:0ô :0ð 2å	ð	;ð 	;ñ 
Œð	;ð
 2Ð1Ð1Ð1Ð1ð2ð 2ð 2ð 2r   c                 ó   ‡ ‡‡— ˆˆˆ fd„}|S )Nc                 ó  •— t          | |‰¦  «        }|\  }} ‰	||¦  «        } ‰
||¦  «        }|                     ||¦  «        }t          | ||¦  «        }|                     ||                     ||¦  «        ¦  «        S r   )r1   Úfsubrt   rp   rq   )r+   r,   rŸ   rR   r@   rr   rs   ry   rK  Úa_preprocessorÚb_preprocessorr%  s            €€€r   r‘   zuniform_impl.<locals>.implŒ  s…   ø€ Ý! '¨7°EÑ:Ô:ˆ	Ø‰ˆˆ1ØˆN˜7 AÑ&Ô&ˆØˆN˜7 AÑ&Ô&ˆØ—’˜Q Ñ"Ô"ˆÝ˜G W¨iÑ8Ô8ˆØ�|Š|˜A˜wŸ|š|¨E°1Ñ5Ô5Ñ6Ô6Ð6r   r!   )r%  r¹  rº  r‘   s   ``` r   r¬  r¬  ‹  s/   øøø€ ð7ð 7ð 7ð 7ð 7ð 7ð 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¦  «        r~t          |t          j        t          j        f¦  «        rZt          |t          j        ¦  «        s9t          |t          j        ¦  «        r(t          |j        t          j        ¦  «        rd„ }|S d S d S d S d S )Nc                 óB   — t           j                             | |¦  «        S r   r¤  rš  s      r   r¨   z"np_uniform_impl3.<locals>.<lambda>œ  r›  r   c                 ó°   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]%}t           j                             | |¦  «        ||<   Œ&|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   r¥  )r‹   rŒ   rÁ   rÇ   rÈ   re   s         r   r¦   znp_uniform_impl3.<locals>._impl¢  sO   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð =ð =�Ý "¤	× 1Ò 1°#°tÑ <Ô <�˜‘�ØˆJr   r   )r‹   rŒ   rÁ   r¦   s       r   Únp_uniform_impl3r¾  —  s  € å�3�œ¥e¤mÐ4Ñ5Ô5ð D½*Ø•5”;¥¤Ð.ñ;0ô ;0ð Då�4ÑÔðDð DÐCÐCÝ�3�œ¥e¤mÐ4Ñ5Ô5ð ½*Ø•5”;¥¤Ð.ñ;0ô ;0ð å�4�œÑ'Ô'ðå,6°t½U¼^Ñ,LÔ,Lðõ 1;¸4¼:Ý;@¼=ñ1Jô 1Jðð
	ð 	ð 	ð ˆðð ð ð ð ð ð ð r   c                 ó¬   — d„ }t          | t          j        t          j        f¦  «        r(t          |t          j        t          j        f¦  «        r|S d S d S )Nc                 óŠ   — t          j         ¦   «         }d}||k    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­  sO   € ÝŒM‰OŒOˆØˆØˆqŠ5ˆ5Ø�a‘ˆAØ˜c�ˆCØ�d˜S‘j¥D¤I¨a°!©eÑ$4Ô$4Ñ4Ñ4Ð4r   ré   r•  s      r   Útriangular_impl_2rÅ  «  sf   € ð5ð 5ð 5õ �#�œ¥U¤]Ð3Ñ4Ô4ð ½Ø•5”;¥¤Ð.ñ:0ô :0ð àˆðð ð ð r   c                 óü   — t          | t          j        t          j        f¦  «        rQt          |t          j        t          j        f¦  «        r-t          |t          j        t          j        f¦  «        r	d„ }|S d S d S d S )Nc                 ó¶   — || k    r| S t          j         ¦   «         }|| z
  || z
  z  }||k    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¿  ss   € Ø�sŠ{ˆ{Ø�
Ý”‘”ˆAØ˜‘  s¡
Ñ+ˆAØ�1ŠuˆuØ˜!‘G�Ø˜!‘G�Ø  #�T�Ø˜$ ™*­¬	°!°a±%Ñ(8Ô(8Ñ8Ñ8Ð8r   ré   )r‹   rŒ   rÈ  r¦   s       r   Útriangular_impl_3rÉ  º  s‹   € å�3�œ¥e¤mÐ4Ñ5Ô5ð ½*Ø•5”;¥¤Ð.ñ;0ô ;0ð å�$�œ¥e¤mÐ4Ñ5Ô5ðð		9ð 		9ð 		9ð ˆðð ð ð ð ð r   c                 óü   — t          | t          j        t          j        f¦  «        rQt          |t          j        t          j        f¦  «        r-t          |t          j        t          j        f¦  «        r	d„ }|S d S d S d S )Nc                 óÌ   — || k    r| S t           j                             ¦   «         }|| z
  || z
  z  }||k    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Ò  s{   € Ø˜Š}ˆ}Ø�Ý”	× Ò Ñ"Ô"ˆAØ˜‘ ¨¡Ñ.ˆAØ�1ŠuˆuØ˜!‘G�Ø˜!‘G�Ø# T�e�Ø˜5 4™<­4¬9°Q¸±UÑ+;Ô+;Ñ;Ñ;Ð;r   ré   )rÌ  rÈ  rÍ  r¦   s       r   rÉ  rÉ  Í  s‹   € å�4�%œ+¥u¤}Ð5Ñ6Ô6ð ½:Ø•5”;¥¤Ð.ñ<0ô <0ð å�u�uœ{­E¬MÐ:Ñ;Ô;ðð		<ð 		<ð 		<ð ˆðð ð ð ð ð r   c                 óâ   — t          |¦  «        rdd„S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r%t          |j        t          j        ¦  «        rdd„}|S d S d S )Nc                 óD   — t           j                             | ||¦  «        S r   )r   r¿   Ú
triangular)rÌ  rÈ  rÍ  rÁ   s       r   r¨   z!triangular_impl.<locals>.<lambda>ã  s"   € µB´I×4HÒ4HÈØIMØINñ5Pô 5P€ r   c                 ó²   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]&}t           j                             | ||¦  «        ||<   Œ'|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   rÐ  )rÌ  rÈ  rÍ  rÁ   rÇ   rÈ   re   s          r   r¦   ztriangular_impl.<locals>._implé  sS   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð Hð H�Ý "¤	× 4Ò 4°T¸4ÀÑ GÔ G�˜‘�ØˆJr   r   rÉ   )rÌ  rÈ  rÍ  rÁ   r¦   s        r   Útriangular_implrÒ  à  s    € å�4ÑÔð PðPð Pð Pð 	Põ 	�4�œÑ'Ô'ð 	­J°t½U¼^Ñ,LÔ,Lð 	Ý,6°t´zÝ7<´}ñ-Fô -Fð	ð	ð 	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 óÔ   — t          | t          j        t          j        f¦  «        r?t          |t          j        t          j        f¦  «        rt	          t
          j        ¦  «        S d S d S r   )r’   r   rÚ   r“   Ú_gammavariate_implr¿   ©ÚalphaÚbetas     r   Úgammavariate_implrØ  ò  s`   € å�%�%œ+¥u¤}Ð5Ñ6Ô6ð 1½:Ø•5”;¥¤Ð.ñ<0ô <0ð 1å!¥&¤-Ñ0Ô0Ð0ð1ð 1ð 1ð 1r   c                 óX   — t          | t          j        t          j        f¦  «        rd„ S d S )Nc                 óB   — t           j                             | d¦  «        S ræ   ©r   r¿   Úgamma©Úshapes    r   r¨   z%ol_np_random_gamma1.<locals>.<lambda>ý  s   € �RœYŸ_š_¨U°CÑ8Ô8€ r   ré   rÝ  s    r   Úol_np_random_gamma1rß  ù  s2   € õ �%�%œ+¥u¤}Ð5Ñ6Ô6ð 9Ø8Ð8Ð8ð9ð 9r   c                 ó  ‡— t          | t          j        t          j        f¦  «        rXt          |t          j        t          j        f¦  «        r4t	          t          t          j        j        ¦  «        ¦  «        Šˆfd„}|S d S d S )Nc                 ó   •—  ‰| |¦  «        S r   r!   )rÞ  rí   r0   s     €r   r‘   z!ol_np_random_gamma2.<locals>.impl  s   ø€ Ø�2�e˜UÑ#Ô#Ð#r   )r’   r   rÚ   r“   r   rÔ  r   r¿   )rÞ  rí   r‘   r0   s      @r   Úol_np_random_gamma2râ     sŠ   ø€ å�%�%œ+¥u¤}Ð5Ñ6Ô6ð ½:Ø•E”K¥¤Ð/ñ<1ô <1ð åÕ0µ´Ô1AÑBÔBÑCÔCˆð	$ð 	$ð 	$ð 	$ð 	$àˆðð ð ð r   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó’  •— dt          j        d¦  «        z   }| dk    s|dk    rt          d¦  «        ‚| dk    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k    r||	| dz
  z  k    rnn|t          j        |	 ¦  «        k    rnŒŽ|	|z  S )
z1Gamma distribution.  Taken from CPython.
        rà   g      @rß   z*gammavariate: alpha and beta must be > 0.0r  g      @rE   gH¯¼šò×z>gËPÊÿÿï?)r  r	  rY  r  ÚexpÚe)rÖ  r×  ÚSG_MAGICCONSTÚainvÚbbbÚcccÚu1Úu2r*  r   ÚzrK  rÃ  rs   Úpr  s                  €r   r¦   z!_gammavariate_impl.<locals>._impl  s"  ø€ ð �dœh s™mœmÑ+ˆð
 �CŠ<ˆ<˜4 3š;˜;ÝÐIÑJÔJÐJà�3Š;ˆ;õ ”9˜S 5™[¨3Ñ.Ñ/Ô/ˆDØ�$œ( 3™-œ-Ñ'ˆCØ˜$‘,ˆCð
$Ø�W‘Y”Y�Ø˜bÐ+Ð+Ò+Ð+ 8Ò+Ð+Ð+Ð+ØØ˜7˜7™9œ9‘_�Ý”H˜R  R¡™[Ñ)Ô)¨$Ñ.�Ø�$œ( 1™+œ+Ñ%�Ø�r‘E˜"‘H�Ø˜˜A™‘I˜a‘K�Ø�}Ñ$ s¨1¡uÑ,°Ò3Ð3°q½D¼HÀQ¹K¼KÒ7GÐ7GØ˜t™8�Oð
$ð �cŠ\ˆ\õ
 ”H˜S 7 7¡9¤9™_Ñ-Ô-Ð-°Ñ4Ð4ðØ�G‘I”I�Ý”V˜e‘^¥T¤VÑ+�Ø�a‘C�Ø˜’8�8Ø˜c %™iÑ(�A�Aåœ 1 Q¡3¨¡+Ñ.Ô.Ð.�AØ�W‘Y”Y�Ø�s’7�7Ø˜Q 5¨3¡;Ñ/Ò/Ð/Øð 0à�4œ8 Q B™<œ<Ò'Ð'Øðð �t‘8ˆOr   r!   ©r  r¦   s   ` r   rÔ  rÔ  
  s$   ø€ ð6ð 6ð 6ð 6ð 6ðn €Lr   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 óB   — t           j                             | |¦  «        S r   rÛ  )rÞ  rí   rÁ   s      r   r¨   zgamma_impl.<locals>.<lambda>H  s   € ­"¬)¯/ª/¸%ÀÑ*GÔ*G€ r   c                 ó°   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]%}t           j                             | |¦  «        ||<   Œ&|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   rÜ  )rÞ  rí   rÁ   rÇ   rÈ   re   s         r   r¦   zgamma_impl.<locals>._implL  sM   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð >ð >�Ý "¤	§¢°°uÑ =Ô =�˜‘�ØˆJr   rÉ   )rÞ  rí   rÁ   r¦   s       r   Ú
gamma_implró  E  sŠ   € å�4ÑÔð HØGÐGÐGÝ�$�œÑ&Ô&ð 	­:°d½E¼NÑ+KÔ+Kð 	Ý+5°d´jÝ6;´mñ,Eô ,Eð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 ó@   — t           j                             | ¦  «        S r   ©r   r¿   Ústandard_gamma)rÞ  rÁ   s     r   r¨   z%standard_gamma_impl.<locals>.<lambda>X  s   € ¥2¤9×#;Ò#;¸EÑ#BÔ#B€ r   c                 ó®   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]$}t           j                             | ¦  «        ||<   Œ%|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   r÷  )rÞ  rÁ   rÇ   rÈ   re   s        r   r¦   z"standard_gamma_impl.<locals>._impl\  sO   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð @ð @�Ý "¤	× 8Ò 8¸Ñ ?Ô ?�˜‘�ØˆJr   rÉ   )rÞ  rÁ   r¦   s      r   Ústandard_gamma_implrù  U  sŠ   € å�4ÑÔð CØBÐBÐBÝ�4�œÑ'Ô'ð 	­J°t½U¼^Ñ,LÔ,Lð 	Ý0:¸4¼:Ý;@¼=ñ1Jô 1Jð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 óÔ   — t          | t          j        t          j        f¦  «        r?t          |t          j        t          j        f¦  «        rt	          t
          j        ¦  «        S d S d S r   )r’   r   rÚ   r“   Ú_betavariate_implr¿   ÚgammavariaterÕ  s     r   Úbetavariate_implrý  e  sa   € å�%�%œ+¥u¤}Ð5Ñ6Ô6ð 6½:Ø•5”;¥¤Ð.ñ<0ô <0ð 6å ¥Ô!4Ñ5Ô5Ð5ð6ð 6ð 6ð 6r   c                 ó  ‡— t          | t          j        t          j        f¦  «        rXt          |t          j        t          j        f¦  «        r4t	          t          t          j        j        ¦  «        ¦  «        Šˆfd„}|S d S d S )Nc                 ó   •—  ‰| |¦  «        S r   r!   )rr   rs   r0   s     €r   r‘   zol_np_random_beta.<locals>.implq  s   ø€ Ø�2�a˜‘8”8ˆOr   )	r’   r   rÚ   r“   r   rû  r   r¿   rÜ  )rr   rs   r‘   r0   s      @r   Úol_np_random_betar   l  s‰   ø€ å�!•e”k¥5¤=Ð1Ñ2Ô2ð µzØ•”�Uœ]Ð+ñ8-ô 8-ð åÕ0µ´´ÑAÔAÑBÔBˆð	ð 	ð 	ð 	ð 	àˆðð ð ð r   c                 ó   ‡ — ˆ fd„}|S )Nc                 óP   •—  ‰| d¦  «        }|dk    rdS || ‰|d¦  «        z   z  S )z0Beta distribution.  Taken from CPython.
        rà   rß   r!   )rÖ  r×  rh   rÜ  s      €r   r¦   z _betavariate_impl.<locals>._implw  s>   ø€ ð
 ˆE�%˜ÑÔˆØ�Š8ˆ8Ø�3à˜˜E˜E $¨™OœOÑ+Ñ,Ð,r   r!   )rÜ  r¦   s   ` r   rû  rû  v  s#   ø€ ð	-ð 	-ð 	-ð 	-ð 	-ð €Lr   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 óB   — t           j                             | |¦  «        S r   )r   r¿   r×  )rr   rs   rÁ   s      r   r¨   zbeta_impl.<locals>.<lambda>‡  s   € ¥"¤)§.¢.°°AÑ"6Ô"6€ r   c                 ó°   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]%}t           j                             | |¦  «        ||<   Œ&|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   r×  )rr   rs   rÁ   rÇ   rÈ   re   s         r   r¦   zbeta_impl.<locals>._impl‹  sM   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð 5ð 5�Ý "¤	§¢¨q°!Ñ 4Ô 4�˜‘�ØˆJr   rÉ   )rr   rs   rÁ   r¦   s       r   Ú	beta_implr  „  s‰   € å�4ÑÔð 7Ø6Ð6Ð6Ý�4�œÑ'Ô'ð 	­J°t½U¼^Ñ,LÔ,Lð 	Ý0:¸4¼:Ý;@¼=ñ1Jô 1Jð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 óD   — t          | t          j        ¦  «        rd„ }|S d S )Nc                 óZ   — 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˜S¥6¤=¡?¤?Ñ2Ñ3Ô3Ð3°eÑ;Ð;r   ©r’   r   rÚ   )r	  r¦   s     r   Úexpovariate_implr  ”  s6   € å�%�œÑ%Ô%ð ð	<ð 	<ð 	<ð ˆðð r   c                 ó\   — t          | t          j        t          j        f¦  «        rd„ }|S d S )Nc                 óp   — t          j        dt          j                             ¦   «         z
  ¦  «         | z  S ræ   ©r  r	  r   r¿   ©rí   s    r   r¦   zexponential_impl.<locals>._impl§  s-   € Ý”H˜S¥2¤9×#3Ò#3Ñ#5Ô#5Ñ5Ñ6Ô6Ð6¸Ñ>Ð>r   ré   )rí   r¦   s     r   Úexponential_implr  ¤  s;   € å�%�%œ+¥u¤}Ð5Ñ6Ô6ð ð	?ð 	?ð 	?àˆðð r   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 ó@   — t           j                             | ¦  «        S r   )r   r¿   Úexponential©rí   rÁ   s     r   r¨   z"exponential_impl.<locals>.<lambda>¯  s   € ¥2¤9×#8Ò#8¸Ñ#?Ô#?€ r   c                 ó®   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]$}t           j                             | ¦  «        ||<   Œ%|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   r  ©rí   rÁ   rÇ   rÈ   re   s        r   r¦   zexponential_impl.<locals>._impl³  sM   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð =ð =�Ý "¤	× 5Ò 5°eÑ <Ô <�˜‘�ØˆJr   rÉ   ©rí   rÁ   r¦   s      r   r  r  ¬  sŠ   € å�4ÑÔð @Ø?Ð?Ð?Ý�4�œÑ'Ô'ð 	­J°t½U¼^Ñ,LÔ,Lð 	Ý,6°t´zÝ7<´}ñ-Fô -Fð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                  ó   — d„ } | S )Nc                  ój   — t          j        dt          j                             ¦   «         z
  ¦  «         S ræ   r  r!   r   r   r¦   zexponential_impl.<locals>._impl¿  s(   € Ý”˜�rœy×/Ò/Ñ1Ô1Ñ1Ñ2Ô2Ð2Ð2r   r!   r³   s    r   r  r  ¼  s   € ð3ð 3ð 3à€Lr   c                 óÞ   — t          | ¦  «        rd„ S t          | t          j        ¦  «        s9t          | t          j        ¦  «        r$t          | j        t          j        ¦  «        rd„ }|S d S d S )Nc                 ó>   — t           j                             ¦   «         S r   )r   r¿   Ústandard_exponentialrÀ   s    r   r¨   z+standard_exponential_impl.<locals>.<lambda>Ç  s   € �BœI×:Ò:Ñ<Ô<€ r   c                 ó¬   — t          j        | ¦  «        }|j        }t          |j        ¦  «        D ]#}t           j                             ¦   «         ||<   Œ$|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   r  rÆ   s       r   r¦   z(standard_exponential_impl.<locals>._implÌ  sM   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð Að A�Ý "¤	× >Ò >Ñ @Ô @�˜‘�ØˆJr   rÉ   rÌ   s     r   Ústandard_exponential_implr  Ä  sŠ   € å�4ÑÔð =Ø<Ð<Ð<Ý�4�œÑ'Ô'ð 
Ý�4�œÑ(Ô(ð
Ý-7¸¼
Ý8=¼ñ.Gô .Gð
ð	ð 	ð 	ð ˆð
ð 
ð 
ð 
r   c                  ó   — d„ S )Nc                  óB   — t           j                             dd¦  «        S rÞ   ©r   r¿   Ú	lognormalr!   r   r   r¨   z$np_lognormal_impl0.<locals>.<lambda>×  s   € •2”9×&Ò& s¨CÑ0Ô0€ r   r!   r!   r   r   Únp_lognormal_impl0r#  Õ  s   € à0Ð0Ð0r   c                 óX   — t          | t          j        t          j        f¦  «        rd„ S d S )Nc                 óB   — t           j                             | d¦  «        S ræ   r!  ©Úmeans    r   r¨   z%np_log_normal_impl1.<locals>.<lambda>Ý  s   € �BœI×/Ò/°°cÑ:Ô:€ r   ré   r&  s    r   Únp_log_normal_impl1r(  Ú  s0   € å�$�œ¥e¤mÐ4Ñ5Ô5ð ;Ø:Ð:Ð:ð;ð ;r   c                 ó  ‡— t          | t          j        t          j        f¦  «        rVt          |t          j        t          j        f¦  «        r2t	          t          t          j        j        ¦  «        ¦  «        Šˆfd„S d S d S )Nc                 ó   •—  ‰| |¦  «        S r   r!   ©r'  rÔ   r0   s     €r   r¨   z%np_log_normal_impl2.<locals>.<lambda>å  s   ø€  2 2 d¨E¡?¤?€ r   )	r’   r   rÚ   r“   r   Ú_lognormvariate_implr   r¿   râ   r+  s     @r   Únp_log_normal_impl2r-  à  s{   ø€ å�$�œ¥e¤mÐ4Ñ5Ô5ð 3½*Ø•E”K¥¤Ð/ñ;1ô ;1ð 3åÕ2µ2´9Ô3CÑDÔDÑEÔEˆØ2Ð2Ð2Ð2Ð2ð3ð 3ð 3ð 3r   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 óB   — t           j                             | |¦  «        S r   r!  )r'  rÔ   rÁ   s      r   r¨   z lognormal_impl.<locals>.<lambda>ë  s   € ­¬×)<Ò)<¸TÀ5Ñ)IÔ)I€ r   c                 ó°   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]%}t           j                             | |¦  «        ||<   Œ&|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   r"  )r'  rÔ   rÁ   rÇ   rÈ   re   s         r   r¦   zlognormal_impl.<locals>._implï  sQ   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð Að A�Ý "¤	× 3Ò 3°D¸%Ñ @Ô @�˜‘�ØˆJr   rÉ   )r'  rÔ   rÁ   r¦   s       r   Úlognormal_implr1  è  sŠ   € å�4ÑÔð JØIÐIÐIÝ�4�œÑ'Ô'ð 	­J°t½U¼^Ñ,LÔ,Lð 	Ý,6°t´zÝ7<´}ñ-Fô -Fð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 óÊ   ‡— t          | t          j        ¦  «        rEt          |t          j        ¦  «        r-t          t	          t
          j        ¦  «        ¦  «        Šˆfd„S d S d S )Nc                 ó   •—  ‰| |¦  «        S r   r!   ©rÓ   rÔ   r0   s     €r   r¨   z%lognormvariate_impl.<locals>.<lambda>ü  s   ø€    B¨¡¤€ r   )r’   r   rÚ   r   r,  r¿   Úgaussr4  s     @r   Úlognormvariate_implr6  ø  se   ø€ å�"•e”kÑ"Ô"ð /¥z°%½¼Ñ'EÔ'Eð /ÝÕ2µ6´<Ñ@Ô@ÑAÔAˆØ.Ð.Ð.Ð.Ð.ð/ð /ð /ð /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 f f¨R°Ñ&7Ô&7Ñ8Ô8€ r   r!   )r9  s   `r   r,  r,  ÿ  s   ø€ Ø8Ð8Ð8Ð8Ð8r   c                 óD   — t          | t          j        ¦  «        rd„ }|S d S )Nc                 óD   — 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>._impl  s(   € ð •f”m‘o”oÑ%ˆAØ˜˜s 5™yÑ)Ñ)Ð)r   r
  )rÖ  r¦   s     r   Úparetovariate_implr<    s6   € å�%�œÑ%Ô%ð ð	*ð 	*ð 	*ð ˆðð r   c                 óD   — t          | t          j        ¦  «        rd„ }|S d S )Nc                 ó`   — dt           j                             ¦   «         z
  }d|d| z  z  z  dz
  S )Nrà   rE   r¾   ©rr   rÃ  s     r   r¦   zpareto_impl.<locals>._impl  s2   € à•b”i×&Ò&Ñ(Ô(Ñ(ˆAØ˜˜s 1™u™Ñ%¨Ñ)Ð)r   r
  ©rr   r¦   s     r   Úpareto_implrA    s6   € å�!•U”[Ñ!Ô!ð ð	*ð 	*ð 	*ð
 ˆðð r   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 ó@   — t           j                             | ¦  «        S r   )r   r¿   Úpareto©rr   rÁ   s     r   r¨   zpareto_impl.<locals>.<lambda>  s   € �rœy×/Ò/°Ñ2Ô2€ r   c                 ó®   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]$}t           j                             | ¦  «        ||<   Œ%|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   rD  ©rr   rÁ   rÇ   rÈ   re   s        r   r¦   zpareto_impl.<locals>._impl!  sM   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð 4ð 4�Ý "¤	× 0Ò 0°Ñ 3Ô 3�˜‘�ØˆJr   rÉ   ©rr   rÁ   r¦   s      r   rA  rA    s‰   € å�4ÑÔð 3Ø2Ð2Ð2Ý�4�œÑ'Ô'ð 	­J°t½U¼^Ñ,LÔ,Lð 	Ý,6°t´zÝ7<´}ñ-Fô -Fð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 ó¬   — t          | t          j        t          j        f¦  «        r+t          |t          j        t          j        f¦  «        rd„ }|S d S d S )Nc                 ój   — 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‘o”oÑ%ˆAØ�TœX a™[œ[˜L¨c°$©hÑ7Ñ7Ð7r   ré   )rÖ  r×  r¦   s      r   Úweibullvariate_implrK  *  sf   € å�%�%œ+¥u¤}Ð5Ñ6Ô6ð ½:Ø•5”;¥¤Ð.ñ<0ô <0ð ð	8ð 	8ð 	8ð ˆðð ð ð r   c                 ó\   — t          | t          j        t          j        f¦  «        rd„ }|S d S )Nc                 óz   — dt           j                             ¦   «         z
  }t          j        |¦  «         d| z  z  S ræ   ©r   r¿   r  r	  r?  s     r   r¦   zweibull_impl.<locals>._impl:  s3   € à•b”i×&Ò&Ñ(Ô(Ñ(ˆAÝ”X˜a‘[”[�L c¨!¡eÑ,Ð,r   ré   r@  s     r   Úweibull_implrO  7  s=   € å�!•e”k¥5¤=Ð1Ñ2Ô2ð ð	-ð 	-ð 	-ð
 ˆðð r   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 ó@   — t           j                             | ¦  «        S r   )r   r¿   ÚweibullrE  s     r   r¨   zweibull_impl2.<locals>.<lambda>E  s   € �rœy×0Ò0°Ñ3Ô3€ r   c                 ó®   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]$}t           j                             | ¦  «        ||<   Œ%|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   rR  rG  s        r   r¦   zweibull_impl2.<locals>._implI  sM   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð 5ð 5�Ý "¤	× 1Ò 1°!Ñ 4Ô 4�˜‘�ØˆJr   rÉ   rH  s      r   Úweibull_impl2rT  B  s‰   € å�4ÑÔð 4Ø3Ð3Ð3Ý�4�œÑ'Ô'ð 	­J°t½U¼^Ñ,LÔ,Lð 	Ý,6°t´zÝ7<´}ñ-Fô -Fð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 ó¤   — t          | t          j        ¦  «        r3t          |t          j        ¦  «        rt          t          j        ¦  «        S d S d S r   )r’   r   rÚ   Ú_vonmisesvariate_implr¿   ©rÓ   Úkappas     r   Úvonmisesvariate_implrY  R  sM   € å�"•e”kÑ"Ô"ð 4¥z°%½¼Ñ'EÔ'Eð 4Ý$¥V¤]Ñ3Ô3Ð3ð4ð 4ð 4ð 4r   c                 ó®   — t          | t          j        ¦  «        r8t          |t          j        ¦  «        r t          t          j        j        ¦  «        S d S d S r   )r’   r   rÚ   rV  r   r¿   rW  s     r   rY  rY  X  sP   € å�"•e”kÑ"Ô"ð 7¥z°%½¼Ñ'EÔ'Eð 7Ý$¥R¤YÔ%5Ñ6Ô6Ð6ð7ð 7ð 7ð 7r   c                 ó   ‡ — ˆ fd„}|S )Nc                 óD  •— |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Œid|z  }||z   d||z  z   z  }	 ‰¦   «         }
|
dk    r(| t          j        |	¦  «        z   dt           j        z  z  }n'| 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Ó   rX  ÚsrK  rë  rí  Údrì  Úqr  Úu3Úthetar  s               €r   r¦   z$_vonmisesvariate_impl.<locals>._impl_  s3  ø€ ð �DŠ=ˆ=Ø�œ‘= 7 7¡9¤9Ñ,Ð,à�%‰KˆØ•”	˜#  A¡™+Ñ&Ô&Ñ&ˆð	Ø�‘”ˆBÝ”�œ 2™Ñ&Ô&ˆAà�Q˜‘U‘ˆAØ�‘”ˆBØ�C˜!˜a™%‘KÒÐ 2¨#°©'µT´X¸a±[´[Ñ)@Ò#@Ð#@Øð	ð �!‰GˆØ�‰U�s˜Q ™U‘{Ñ#ˆØˆW‰YŒYˆØ�Š8ˆ8Ø�$œ) A™,œ,Ñ&¨3µ´©=Ñ9ˆEˆEà�$œ) A™,œ,Ñ&¨3µ´©=Ñ9ˆEàˆr   r!   rï  s   ` r   rV  rV  ^  s$   ø€ ð&ð &ð &ð &ð &ðP €Lr   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 óB   — t           j                             | |¦  «        S r   )r   r¿   Úvonmises)rÓ   rX  rÁ   s      r   r¨   zvonmises_impl.<locals>.<lambda>�  s   € ¥r¤y×'9Ò'9¸"¸eÑ'DÔ'D€ r   c                 ó°   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]%}t           j                             | |¦  «        ||<   Œ&|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   rg  )rÓ   rX  rÁ   rÇ   rÈ   re   s         r   r¦   zvonmises_impl.<locals>._impl‘  sO   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð >ð >�Ý "¤	× 2Ò 2°2°uÑ =Ô =�˜‘�ØˆJr   rÉ   )rÓ   rX  rÁ   r¦   s       r   Úvonmises_implri  Š  óŠ   € å�4ÑÔð EØDÐDÐDÝ�4�œÑ'Ô'ð 	­J°t½U¼^Ñ,LÔ,Lð 	Ý0:¸4¼:Ý;@¼=ñ1Jô 1Jð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 ó”   — t          | t          j        ¦  «        r+t          |t          j        t          j        f¦  «        rd„ }|S d S d S )Nc           	      óN  — | dk     rt          d¦  «        ‚d|cxk    rdk    sn t          d¦  «        ‚|dk    rdS |dk    r| S |dk    }|rd|z
  }d|z
  }d}|| z  }|dk    r|d	z  }| d	z  } || z  }| dk    sJ ‚|dk    °| |z  }t          | |d
t          j        ||z  dz   ¦  «        z  z   ¦  «        }d}|dk    rjd}	t          j                             ¦   «         }
|}|	|k    r<|
|k    r||r| |	z
  n|	z  }|dz  }n$|
|z  }
|	dz  }	| |	z
  dz   |z  |z  |	|z  z  }|	|k    °<|dk    °j|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Á  rE   gÒèxÖ0 rH   ç      $@)rY  Úminr  r  r   r¿   )rH  rî  Úflippedrb  ÚnitersÚqnÚnp_prodÚboundr�   ÚXÚUÚpxs               r   r¦   zbinomial_impl.<locals>._implž  s±  € ð �1ŠuˆuÝ Ð!5Ñ6Ô6Ð6Ø˜1�O�O’O�O ’O�O�O�OÝ Ð!BÑCÔCÐCØ�CŠxˆxØ�qØ�CŠxˆxØ�à˜#’gˆGØð Ø˜!‘G�Ø�a‘ˆAàˆFØ�a‘ˆBØ˜’,�,ð ˜1‘�Ø�a‘�Ø˜!‘V�Ø˜1’u�u�u�uð ˜’,�,ð ˜!‘eˆGÝ˜˜7 T­D¬I°gÀ±kÀA±oÑ,FÔ,FÑ%FÑFÑGÔGˆEàˆEØ˜1’*�*Ø�Ý”I×$Ò$Ñ&Ô&�Ø�Ø˜5’j�jØ˜B’w�wØ¨'Ð!8  Q¡ °qÑ8˜Ø !™˜ØØ˜‘G�AØ˜‘F�AØ˜q™5 1™9¨™/¨BÑ.°1°q±5Ñ9�Bð ˜5’j�jð	 ˜1’*�*ð ˆLr   ©r’   r   r“   rÚ   ©rH  rî  r¦   s      r   Úbinomial_implry  š  sa   € å�!•U”]Ñ#Ô#ð 3­
Ø•”�Uœ]Ð+ñ)-ô )-ð 3ð/	ð /	ð /	ðb ˆðg3ð 3ð 3ð 3r   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 óB   — t           j                             | |¦  «        S r   )r   r¿   Úbinomial)rH  rî  rÁ   s      r   r¨   zbinomial_impl.<locals>.<lambda>Õ  s   € ¥"¤)×"4Ò"4°Q¸Ñ":Ô":€ r   c                 óÈ   — t          j        |t           j        ¬¦  «        }|j        }t	          |j        ¦  «        D ]%}t           j                             | |¦  «        ||<   Œ&|S rž  )r   rÃ   ÚintprÄ   rÅ   rÁ   r¿   r|  )rH  rî  rÁ   rÇ   rÈ   re   s         r   r¦   zbinomial_impl.<locals>._implÙ  sX   € Ý”(˜4¥r¤wÐ/Ñ/Ô/ˆCØ”xˆHÝ˜SœX‘”ð 9ð 9�Ý "¤	× 2Ò 2°1°aÑ 8Ô 8�˜‘�ØˆJr   rÉ   )rH  rî  rÁ   r¦   s       r   ry  ry  Ò  s‰   € å�4ÑÔð ;Ø:Ð:Ð:Ý�4�œÑ'Ô'ð 	­J°t½U¼^Ñ,LÔ,Lð 	Ý,6°t´zÝ7<´}ñ-Fô -Fð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 ó\   — t          | t          j        t          j        f¦  «        rd„ }|S d S )Nc                 óL   — dt           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Ð2Ñ3Ô3ð ð	<ð 	<ð 	<ð ˆð	ð r   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 ó@   — t           j                             | ¦  «        S r   ©r   r¿   Ú	chisquare)r‚  rÁ   s     r   r¨   z!chisquare_impl2.<locals>.<lambda>î  s   € ¥¤	× 3Ò 3°BÑ 7Ô 7€ r   c                 ó®   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]$}t           j                             | ¦  «        ||<   Œ%|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   rˆ  ©r‚  rÁ   rÇ   rÈ   re   s        r   r¦   zchisquare_impl2.<locals>._implò  sM   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð 8ð 8�Ý "¤	× 3Ò 3°BÑ 7Ô 7�˜‘�ØˆJr   rÉ   ©r‚  rÁ   r¦   s      r   Úchisquare_impl2rŒ  ë  s‰   € å�4ÑÔð 8Ø7Ð7Ð7Ý�4�œÑ'Ô'ð 	­J°t½U¼^Ñ,LÔ,Lð 	Ý,6°t´zÝ7<´}ñ-Fô -Fð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 ó¬   — t          | t          j        t          j        f¦  «        r+t          |t          j        t          j        f¦  «        rd„ }|S d S d S )Nc                 óŒ   — t           j                             | ¦  «        |z  t           j                             |¦  «        | z  z  S r   r‡  )ÚdfnumÚdfdens     r   r¦   zf_impl.<locals>._implÿ  s<   € Ý”Y×(Ò(¨Ñ/Ô/°%Ñ7Ý”Y×(Ò(¨Ñ/Ô/°%Ñ7ñ9ð :r   ré   )r�  r�  r¦   s      r   Úf_implr‘  û  sf   € å�%�%œ+¥u¤}Ð5Ñ6Ô6ð ½:Ø•E”K¥¤Ð/ñ<1ô <1ð ð	:ð 	:ð 	:ð ˆðð ð ð r   c                 óv  — t          | t          j        t          j        f¦  «        r8t          |t          j        t          j        f¦  «        rt	          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 óB   — t           j                             | |¦  «        S r   )r   r¿   r  )r�  r�  rÁ   s      r   r¨   zf_impl.<locals>.<lambda>  s   € ­"¬)¯+ª+°e¸UÑ*CÔ*C€ r   c                 ó°   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]%}t           j                             | |¦  «        ||<   Œ&|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   r  )r�  r�  rÁ   rÇ   rÈ   re   s         r   r¦   zf_impl.<locals>._impl  sM   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð :ð :�Ý "¤	§¢¨E°5Ñ 9Ô 9�˜‘�ØˆJr   r   )r�  r�  rÁ   r¦   s       r   r‘  r‘    sÉ   € å�5�5œ;­¬Ð6Ñ7Ô7ð D½JØ•E”K¥¤Ð/ñ=1ô =1ð Då�4ÑÔðDð DÐCÐCÝ�4�œÑ'Ô'ð 	­J°t½U¼^Ñ,LÔ,Lð 	Ý0:¸4¼:Ý;@¼=ñ1Jô 1Jð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 ó\   — t          | t          j        t          j        f¦  «        rd„ }|S d S )Nc                 óž  — | dk    s| dk    rt          d¦  «        ‚d| z
  }| dk    rNt          d¦  «        }| x}}t          j                             ¦   «         }||k    r||z  }||z  }|dz  }||k    °|S t	          j        t	          j        dt          j                             ¦   «         z
  ¦  «        t	          j        |¦  «        z  ¦  «        S )Nrß   rà   z geometric(): p outside of (0, 1]gUUUUUUÕ?rE   )rY  rœ  r   r¿   r  Úceilr	  )rî  rb  rt  ÚsumÚprodru  s         r   r¦   zgeometric_impl.<locals>._impl  s×   € à�CŠxˆx˜1˜sš7˜7Ý Ð!CÑDÔDÐDØ�a‘ˆAØÐ.Ò.Ð.Ý˜‘F”F�Ø���dÝ”I×$Ò$Ñ&Ô&�Ø˜#’g�gØ˜A‘I�DØ˜4‘K�CØ˜‘F�Að ˜#’g�gð �å”y¥¤¨#µ´	×0@Ò0@Ñ0BÔ0BÑ*BÑ!CÔ!CÝ!%¤¨!¡¤ñ"-ñ .ô .ð .r   ré   )rî  r¦   s     r   Úgeometric_implrš    s=   € å�!•e”k¥5¤=Ð1Ñ2Ô2ð ð	.ð 	.ð 	.ð$ ˆð'ð r   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 ó@   — t           j                             | ¦  «        S r   )r   r¿   Ú	geometric©rî  rÁ   s     r   r¨   z geometric_impl.<locals>.<lambda>3  ó   € �rœy×2Ò2°1Ñ5Ô5€ r   c                 óÆ   — t          j        |t           j        ¬¦  «        }|j        }t	          |j        ¦  «        D ]$}t           j                             | ¦  «        ||<   Œ%|S rž  )r   rÃ   Úint64rÄ   rÅ   rÁ   r¿   r�  ©rî  rÁ   rÇ   rÈ   re   s        r   r¦   zgeometric_impl.<locals>._impl7  óV   € Ý”(˜4¥r¤xÐ0Ñ0Ô0ˆCØ”xˆHÝ˜SœX‘”ð 7ð 7�Ý "¤	× 3Ò 3°AÑ 6Ô 6�˜‘�ØˆJr   rÉ   ©rî  rÁ   r¦   s      r   rš  rš  0  s‰   € å�4ÑÔð 6Ø5Ð5Ð5Ý�4�œÑ'Ô'ð 	­J°t½U¼^Ñ,LÔ,Lð 	Ý,6°t´zÝ7<´}ñ-Fô -Fð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 ó¬   — t          | t          j        t          j        f¦  «        r+t          |t          j        t          j        f¦  «        rd„ }|S d S d S )Nc                 óž   — dt           j                             ¦   «         z
  }| |t          j        t          j        |¦  «         ¦  «        z  z
  S ræ   rN  ©rè   rí   ru  s      r   r¦   zgumbel_impl.<locals>._implD  s>   € Ø•b”i×&Ò&Ñ(Ô(Ñ(ˆAØ˜¥¤­4¬8°A©;¬;¨,Ñ!7Ô!7Ñ7Ñ7Ð7r   ré   rï   s      r   Úgumbel_implr¨  @  sf   € å�#�œ¥U¤]Ð3Ñ4Ô4ð ½Ø•E”K¥¤Ð/ñ:1ô :1ð ð	8ð 	8ð 	8ð ˆðð ð ð r   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 óB   — t           j                             | |¦  «        S r   )r   r¿   Úgumbelrû   s      r   r¨   zgumbel_impl3.<locals>.<lambda>N  rü   r   c                 ó°   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]%}t           j                             | |¦  «        ||<   Œ&|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   r«  rþ   s         r   r¦   zgumbel_impl3.<locals>._implR  rÿ   r   rÉ   r  s       r   Úgumbel_impl3r­  K  rj  r   c                 óü   — t          | t          j        t          j        f¦  «        rQt          |t          j        t          j        f¦  «        r-t          |t          j        t          j        f¦  «        r	d„ }|S d S d S d S )Nc                 óÆ  — t          |¦  «        t          | ¦  «        z   t          |¦  «        z
  }t          t          || ¦  «        ¦  «        }|}t          |¦  «        }|dk    rS|dk    rM|t          j        t
          j                             ¦   «         |||z   z  z   ¦  «        z  }|dz  }|dk    r|dk    °Mt          ||z
  ¦  «        }| |k    rt          |¦  «        |z
  S |S )z'Numpy's algorithm for hypergeometric().rß   r   rE   )rœ  Úfloatrn  r  Úfloorr   r¿   )ÚngoodÚnbadÚnsampleÚd1Úd2ÚYÚKÚZs           r   r¦   z"hypergeometric_impl.<locals>._impl`  sÖ   € å�T‘”�S ™ZœZÑ'­#¨g©,¬,Ñ6ˆBÝ•s˜4 Ñ'Ô'Ñ(Ô(ˆBàˆAÝ�G‘”ˆAØ�c’'�'˜a !še˜eØ•T”Z¥¤	× 0Ò 0Ñ 2Ô 2°Q¸"¸q¹&±\Ñ AÑBÔBÑB�Ø�Q‘�ð �c’'�'˜a !še˜eõ �B˜‘F‘”ˆAØ�tŠ|ˆ|Ý˜7‘|”| aÑ'Ð'à�r   ré   )r²  r³  r´  r¦   s       r   Úhypergeometric_implrº  [  s‹   € å�5�5œ;­¬Ð6Ñ7Ô7ð ½JØ•5”;¥¤Ð.ñ=0ô =0ð å�g¥¤­U¬]Ð;Ñ<Ô<ðð	ð 	ð 	ð  ˆð'ð ð ð ð ð r   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 óD   — t           j                             | ||¦  «        S r   )r   r¿   Úhypergeometric)r²  r³  r´  rÁ   s       r   r¨   z%hypergeometric_impl.<locals>.<lambda>v  s   € ÝŒI×$Ò$ U¨D°'Ñ:Ô:ð r   c                 óÊ   — t          j        |t           j        ¬¦  «        }|j        }t	          |j        ¦  «        D ]&}t           j                             | ||¦  «        ||<   Œ'|S rž  )r   rÃ   r~  rÄ   rÅ   rÁ   r¿   r½  )r²  r³  r´  rÁ   rÇ   rÈ   re   s          r   r¦   z"hypergeometric_impl.<locals>._impl{  s\   € Ý”(˜4¥r¤wÐ/Ñ/Ô/ˆCØ”xˆHÝ˜SœX‘”ð Oð O�Ý "¤	× 8Ò 8¸ÀÀgÑ NÔ N�˜‘�ØˆJr   rÉ   )r²  r³  r´  rÁ   r¦   s        r   rº  rº  s  s�   € å�4ÑÔð ;ð;ð ;ð 	;å�4�œÑ'Ô'ð 	­J°t½U¼^Ñ,LÔ,Lð 	Ý0:¸4¼:Ý;@¼=ñ1Jô 1Jð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                  ó   — d„ S )Nc                  óB   — t           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                 óX   — t          | t          j        t          j        f¦  «        rd„ S d S )Nc                 óB   — t           j                             | d¦  «        S ræ   rÁ  rç   s    r   r¨   zlaplace_impl1.<locals>.<lambda>Œ  s   € �2œ9×,Ò,¨S°#Ñ6Ô6€ r   ré   rç   s    r   Úlaplace_impl1rÆ  ‰  s0   € å�#�œ¥U¤]Ð3Ñ4Ô4ð 7Ø6Ð6Ð6ð7ð 7r   c                 ó°   — t          | t          j        t          j        f¦  «        r-t          |t          j        t          j        f¦  «        r	t          S d S d S r   )r’   r   rÚ   r“   Úlaplace_impl©rè   rí   s     r   Úlaplace_impl2rÊ  �  sV   € å�#�œ¥U¤]Ð3Ñ4Ô4ð ½Ø•E”K¥¤Ð/ñ:1ô :1ð åÐðð ð ð r   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 óB   — t           j                             | |¦  «        S r   rÁ  rû   s      r   r¨   zlaplace_impl3.<locals>.<lambda>™  s   € ­¬	×(9Ò(9¸#¸uÑ(EÔ(E€ r   c                 ó°   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]%}t           j                             | |¦  «        ||<   Œ&|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   rÂ  rþ   s         r   r¦   zlaplace_impl3.<locals>._impl�  sO   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð >ð >�Ý "¤	× 1Ò 1°#°uÑ =Ô =�˜‘�ØˆJr   rÉ   r  s       r   Úlaplace_impl3rÎ  –  sŠ   € å�4ÑÔð FØEÐEÐEÝ�$�œÑ&Ô&ð 	­:°d½E¼NÑ+KÔ+Kð 	Ý+5°d´jÝ6;´mñ,Eô ,Eð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 óÄ   — t           j                             ¦   «         }|dk     r| |t          j        ||z   ¦  «        z  z   S | |t          j        d|z
  |z
  ¦  «        z  z
  S )NrÁ  r  rN  r§  s      r   rÈ  rÈ  ¦  s\   € Ý
Œ	×ÒÑÔ€AØˆ3‚w€wØ�U�TœX a¨!¡e™_œ_Ñ,Ñ,Ð,à�U�TœX c¨A¡g°¡kÑ2Ô2Ñ2Ñ2Ð2r   c                  ó   — d„ S )Nc                  óB   — t           j                             dd¦  «        S rÞ   ©r   r¿   Úlogisticr!   r   r   r¨   z logistic_impl0.<locals>.<lambda>°  s   € •2”9×%Ò% c¨3Ñ/Ô/€ r   r!   r!   r   r   Úlogistic_impl0rÔ  ®  s   € à/Ð/Ð/r   c                 óX   — t          | t          j        t          j        f¦  «        rd„ S d S )Nc                 óB   — t           j                             | d¦  «        S ræ   rÒ  rç   s    r   r¨   z logistic_impl1.<locals>.<lambda>¶  s   € �2œ9×-Ò-¨c°3Ñ7Ô7€ r   ré   rç   s    r   Úlogistic_impl1r×  ³  s0   € å�#�œ¥U¤]Ð3Ñ4Ô4ð 8Ø7Ð7Ð7ð8ð 8r   c                 ó°   — t          | t          j        t          j        f¦  «        r-t          |t          j        t          j        f¦  «        r	t          S d S d S r   )r’   r   rÚ   r“   Úlogistic_implrÉ  s     r   Úlogistic_impl2rÚ  ¹  sV   € å�#�œ¥U¤]Ð3Ñ4Ô4ð ½Ø•E”K¥¤Ð/ñ:1ô :1ð åÐðð ð ð r   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 óB   — t           j                             | |¦  «        S r   rÒ  rû   s      r   r¨   z logistic_impl3.<locals>.<lambda>Ã  s   € ­¬	×(:Ò(:¸3ÀÑ(FÔ(F€ r   c                 ó°   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]%}t           j                             | |¦  «        ||<   Œ&|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   rÓ  rþ   s         r   r¦   zlogistic_impl3.<locals>._implÇ  sO   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð ?ð ?�Ý "¤	× 2Ò 2°3¸Ñ >Ô >�˜‘�ØˆJr   rÉ   r  s       r   Úlogistic_impl3rÞ  À  sŠ   € å�4ÑÔð GØFÐFÐFÝ�4�œÑ'Ô'ð 	­J°t½U¼^Ñ,LÔ,Lð 	Ý0:¸4¼:Ý;@¼=ñ1Jô 1Jð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 ó~   — t           j                             ¦   «         }| |t          j        |d|z
  z  ¦  «        z  z   S ræ   rN  r§  s      r   rÙ  rÙ  Ð  s7   € Ý
Œ	×ÒÑÔ€AØ��œ ! s¨Q¡w¡-Ñ0Ô0Ñ0Ñ0Ð0r   c                 óÆ  — | dk    s| dk    rt          d¦  «        ‚t          j        d| z
  ¦  «        }	 t          j                             ¦   «         }|| k    rdS t          j                             ¦   «         }dt          j        ||z  ¦  «        z
  }|||z  k    r>t          j        dt          j        |¦  «        t          j        |¦  «        z  z   ¦  «        S ||k    rdS dS )z"Numpy's algorithm for logseries().rß   rà   z logseries(): p outside of (0, 1]rE   rH   )rY  r  r	  r   r¿   rå  r¡  )rî  rK  ÚVru  rb  s        r   Ú_logseries_implrâ  Õ  sÎ   € àˆC‚x€x�1�s’7�7ÝÐ;Ñ<Ô<Ð<ÝŒ��q‘ÑÔ€AðÝŒI×ÒÑÔˆØ�Š6ˆ6Ø�1ÝŒI×ÒÑÔˆØ•$”(˜1˜q™5‘/”/Ñ!ˆØ��A‘Š:ˆ:å”8˜C¥$¤(¨1¡+¤+µ´¸±´Ñ";Ñ;Ñ<Ô<Ð<Ø�!ŠVˆVØ�1à�1r   c                 ó`   — t          | t          j        t          j        f¦  «        rt          S d S r   )r’   r   rÚ   r“   râ  )rî  s    r   Úlogseries_implrä  ê  s-   € å�!•e”k¥5¤=Ð1Ñ2Ô2ð ÝÐðð r   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 ó@   — t           j                             | ¦  «        S r   )r   r¿   Ú	logseriesrž  s     r   r¨   z logseries_impl.<locals>.<lambda>ó  rŸ  r   c                 óÆ   — t          j        |t           j        ¬¦  «        }|j        }t	          |j        ¦  «        D ]$}t           j                             | ¦  «        ||<   Œ%|S rž  )r   rÃ   r¡  rÄ   rÅ   rÁ   r¿   rç  r¢  s        r   r¦   zlogseries_impl.<locals>._impl÷  r£  r   rÉ   r¤  s      r   rä  rä  ð  s‰   € å�4ÑÔð 6Ø5Ð5Ð5Ý�$�œÑ&Ô&ð 	­:°d½E¼NÑ+KÔ+Kð 	Ý+5°d´jÝ6;´mñ,Eô ,Eð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 ó”   — t          | t          j        ¦  «        r+t          |t          j        t          j        f¦  «        rd„ }|S d S d S )Nc                 óì   — | dk    rt          d¦  «        ‚|dk     s|dk    rt          d¦  «        ‚t          j                             | d|z
  |z  ¦  «        }t          j                             |¦  «        S )Nr   znegative_binomial(): n <= 0rß   rà   z(negative_binomial(): p outside of [0, 1])rY  r   r¿   rÜ  Úpoisson)rH  rî  r·  s      r   r¦   z%negative_binomial_impl.<locals>._impl  sm   € Ø�AŠvˆvÝ Ð!>Ñ?Ô?Ð?Ø�3Šwˆw˜!˜cš'˜'Ý Ð!KÑLÔLÐLÝ”	—’  C¨!¡G¨q¡=Ñ1Ô1ˆAÝ”9×$Ò$ QÑ'Ô'Ð'r   rw  rx  s      r   Únegative_binomial_implrì     s_   € å�!•U”]Ñ#Ô#ð 
­
Ø�uŒ{�EœMÐ*ñ),ô ),ð 
ð	(ð 	(ð 	(ð ˆð
ð 
ð 
ð 
r   c                  ó   — d„ S )Nc                  ó@   — t           j                             d¦  «        S ræ   ©r   r¿   rë  r!   r   r   r¨   zpoisson_impl0.<locals>.<lambda>  s   € •2”9×$Ò$ SÑ)Ô)€ r   r!   r!   r   r   Úpoisson_impl0rð    s   € à)Ð)Ð)r   c                 ó~   ‡— t          | t          j        t          j        f¦  «        rt          d„ ¦   «         Šˆfd„S d S )Nc                 ód   ‡— t          |¦  «        Šˆfd„}t          t          j        |¦  «        |fS )Nc                 ó  •‡‡— t          | |¦  «        }t          j        |t          d¬¦  «        }|                     d¦  «        }|                     d¦  «        }|\  } ‰||¦  «        }|                     d|t          j        t          d¦  «        ¦  «        }	| 	                    |	¦  «        5  t          j
        t          t          t          f¦  «        }
t          j        |j        j        |
d¦  «        }|                     |||f¦  «        }|                     ||¦  «         |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     |¦  «         |                     |¦  «         t&          j        j        Št*          j        Šˆˆfd„}|                      ||||¦  «        }|                     ||¦  «         |                     |¦  «         |                     |¦  «         |                     |¦  «        S )	Nr‡   r  ÚbbcontrT  rV   rm  Únumba_poisson_ptrsc                 óš   •— | dk     rt          d¦  «        ‚| dk    rdS  ‰|  ¦  «        }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à   rE   ©rY  )ÚlamÚenlamrt  r™  ru  Ú_expr  s        €€r   Úpoisson_implzCpoisson_impl1.<locals>._impl.<locals>.codegen.<locals>.poisson_impl7  sy   ø€ ð ˜S’y�yÝ(Ð)@ÑAÔAÐAØ˜c’z�zØ ˜qØ ˜D # ™JœJ�EØ�AØ�DðØ#˜G™IœI˜Ø ™	˜Ø 5š=˜=Ø#$˜HØ˜Q™˜ðr   )r8   r   r  r…   rN  Úfcmp_orderedr   r   rn   rW  r$   r%   r&   rQ   r'   r*   r_   rO  rP  r   r¿   r  rå  r  r[   )r+   r,   rŸ   rR   r@   Úretptrrô  rT  rø  Úbig_lamr/   r0   r‡   rû  rú  r  Úlam_preprocessors                 @@€r   r¢   z-poisson_impl1.<locals>._impl.<locals>.codegen  s3  øøø€ Ý,¨W°gÑ>Ô>�	å Ô,¨WµgÀEÐJÑJÔJ�Ø ×3Ò3°HÑ=Ô=�Ø×2Ò2°7Ñ;Ô;�à‘�Ø&Ð& w°Ñ4Ô4�Ø!×.Ò.¨t°SÝ/1¬{½6À4Ñ/HÔ/HñJô J�à—_’_ WÑ-Ô-ð 	*ð 	*õ œ?­7µ_ÅfÐ4MÑNÔN�DÝ Ô7¸Ô8HÔ8OØ8<Ø8LñNô N�Bð "Ÿ,š, r¨I°sÐ+;Ñ<Ô<�CØ—M’M # vÑ.Ô.Ð.Ø—N’N 5Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð —’˜vÑ&Ô&Ð&Ø×'Ò'¨Ñ/Ô/Ð/åœ)Ô*�Ý”x�ðð ð ð ð ð ð, ×.Ò.¨w¸ÀcÈ4ÑPÔP�Ø—’˜c 6Ñ*Ô*Ð*Ø—’˜uÑ%Ô%Ð%Ø×'Ò'¨Ñ.Ô.Ð.Ø—|’| FÑ+Ô+Ð+s   Â.B
EÅEÅE)rÑ   r   r   r¡  )r¥   rø  r¢   rÿ  s      @r   r¦   zpoisson_impl1.<locals>._impl  sD   ø€ å3°CÑ8Ô8Ðð6,ð 6,ð 6,ð 6,ð 6,õn �Uœ[¨#Ñ.Ô.°Ð7Ð7r   c                 ó   •—  ‰| ¦  «        S r   r!   ©rø  r¦   s    €r   r¨   zpoisson_impl1.<locals>.<lambda>S  s   ø€ ˜5˜5 ™:œ:€ r   rÙ   r  s    @r   Úpoisson_impl1r    sT   ø€ å�#�œ¥U¤]Ð3Ñ4Ô4ð =&Ý	ð:	8ð :	8ñ 
Œð:	8ðv &Ð%Ð%Ð%Ð%ð{=&ð =&r   c                 óz  — t          | t          j        t          j        f¦  «        rt	          |¦  «        rd„ S t          | t          j        t          j        f¦  «        rXt          |t          j        ¦  «        s9t          |t          j        ¦  «        r&t          |j        t          j        ¦  «        r	d„ }|S d S d S d S )Nc                 ó@   — t           j                             | ¦  «        S r   rï  )rø  rÁ   s     r   r¨   zpoisson_impl2.<locals>.<lambda>Y  s   € ¥¤×!2Ò!2°3Ñ!7Ô!7€ r   c                 óÆ   — t          j        |t           j        ¬¦  «        }|j        }t	          |j        ¦  «        D ]$}t           j                             | ¦  «        ||<   Œ%|S rž  )r   rÃ   r~  rÄ   rÅ   rÁ   r¿   rë  )rø  rÁ   rÇ   rÈ   re   s        r   r¦   zpoisson_impl2.<locals>._impl_  sV   € Ý”(˜4¥r¤wÐ/Ñ/Ô/ˆCØ”xˆHÝ˜SœX‘”ð 7ð 7�Ý "¤	× 1Ò 1°#Ñ 6Ô 6�˜‘�ØˆJr   r   )rø  rÁ   r¦   s      r   Úpoisson_impl2r  V  sÉ   € å�#�œ¥U¤]Ð3Ñ4Ô4ð 8½ÀTÑ9JÔ9Jð 8Ø7Ð7Ð7Ý�#�œ¥U¤]Ð3Ñ4Ô4ð Ý�t�Uœ]Ñ+Ô+ðå�4�œÑ(Ô(ðå-7¸¼
Ý8=¼ñ.Gô .Gðð
	ð 	ð 	ð ˆðð ð ð ð ð r   c                 ó\   — t          | t          j        t          j        f¦  «        rd„ }|S d S )Nc                 óÀ   — | dk    rt          d¦  «        ‚t          j        dt          j        t          j                             ¦   «          ¦  «        z
  d| z  ¦  «        S )Nrß   zpower(): a <= 0rE   rà   )rY  r  Úpowrå  r   r¿   r  ©rr   s    r   r¦   zpower_impl.<locals>._implk  sW   € Ø�CŠxˆxÝ Ð!2Ñ3Ô3Ð3Ý”8˜A¥¤­"¬)×*HÒ*HÑ*JÔ*JÐ)JÑ KÔ KÑKØ˜q™Dñ"ô "ð "r   ré   r@  s     r   Ú
power_implr  h  s=   € å�!•e”k¥5¤=Ð1Ñ2Ô2ð ð	"ð 	"ð 	"ð ˆðð r   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 ó@   — t           j                             | ¦  «        S r   )r   r¿   ÚpowerrE  s     r   r¨   zpower_impl.<locals>.<lambda>w  s   € �rœyŸš¨qÑ1Ô1€ r   c                 ó®   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]$}t           j                             | ¦  «        ||<   Œ%|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   r  rG  s        r   r¦   zpower_impl.<locals>._impl{  sK   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð 3ð 3�Ý "¤	§¢°Ñ 2Ô 2�˜‘�ØˆJr   rÉ   rH  s      r   r  r  t  s‰   € å�4ÑÔð 2Ø1Ð1Ð1Ý�$�œÑ&Ô&ð 	­:°d½E¼NÑ+KÔ+Kð 	Ý+5°d´jÝ6;´mñ,Eô ,Eð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                  ó   — d„ S )Nc                  ó@   — t           j                             d¦  «        S ræ   ©r   r¿   Úrayleighr!   r   r   r¨   z rayleigh_impl0.<locals>.<lambda>†  s   € •2”9×%Ò% cÑ*Ô*€ r   r!   r!   r   r   Úrayleigh_impl0r  „  s   € à*Ð*Ð*r   c                 ó\   — t          | t          j        t          j        f¦  «        rd„ }|S d S )Nc           	      óÂ   — | dk    rt          d¦  «        ‚| t          j        dt          j        dt          j                             ¦   «         z
  ¦  «        z  ¦  «        z  S )Nrß   zrayleigh(): scale <= 0r  rà   )rY  r  r  r	  r   r¿   r  s    r   r‘   zrayleigh_impl1.<locals>.implŒ  sQ   € Ø˜Š|ˆ|Ý Ð!9Ñ:Ô:Ð:Ø�4œ9 T­D¬H°S½2¼9×;KÒ;KÑ;MÔ;MÑ5MÑ,NÔ,NÑ%NÑOÔOÑOÐOr   ré   )rí   r‘   s     r   Úrayleigh_impl1r  ‰  s@   € å�%�%œ+¥u¤}Ð5Ñ6Ô6ð ð	Pð 	Pð 	Pð ˆðð r   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 ó@   — t           j                             | ¦  «        S r   r  r  s     r   r¨   z rayleigh_impl2.<locals>.<lambda>˜  s   € ¥2¤9×#5Ò#5°eÑ#<Ô#<€ r   c                 ó®   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]$}t           j                             | ¦  «        ||<   Œ%|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   r  r  s        r   r¦   zrayleigh_impl2.<locals>._implœ  sM   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð :ð :�Ý "¤	× 2Ò 2°5Ñ 9Ô 9�˜‘�ØˆJr   rÉ   r  s      r   Úrayleigh_impl2r  •  s‰   € å�4ÑÔð =Ø<Ð<Ð<Ý�$�œÑ&Ô&ð 	­:°d½E¼NÑ+KÔ+Kð 	Ý+5°d´jÝ6;´mñ,Eô ,Eð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                  ó   — d„ } | S )Nc                  ó|   — t           j                             ¦   «         t           j                             ¦   «         z  S r   ró   r!   r   r   r¦   zcauchy_impl.<locals>._impl§  s)   € ÝŒy×(Ò(Ñ*Ô*­R¬Y×-FÒ-FÑ-HÔ-HÑHÐHr   r!   r³   s    r   Úcauchy_implr  ¥  s   € ðIð Ið Ið €Lr   c                 óÞ   — t          | ¦  «        rd„ S t          | t          j        ¦  «        s9t          | t          j        ¦  «        r$t          | j        t          j        ¦  «        rd„ }|S d S d S )Nc                 ó>   — t           j                             ¦   «         S r   )r   r¿   Ústandard_cauchyrÀ   s    r   r¨   z&standard_cauchy_impl.<locals>.<lambda>°  rõ   r   c                 ó¬   — t          j        | ¦  «        }|j        }t          |j        ¦  «        D ]#}t           j                             ¦   «         ||<   Œ$|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   r!  rÆ   s       r   r¦   z#standard_cauchy_impl.<locals>._impl´  r÷   r   rÉ   rÌ   s     r   Ústandard_cauchy_implr#  ­  s‰   € å�4ÑÔð 8Ø7Ð7Ð7Ý�$�œÑ&Ô&ð 	­:°d½E¼NÑ+KÔ+Kð 	Ý/9¸$¼*Ý:?¼-ñ0Iô 0Ið	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 ó\   — t          | t          j        t          j        f¦  «        rd„ }|S d S )Nc                 óä   — t           j                             ¦   «         }t           j                             | dz  ¦  «        }t	          j        | dz  ¦  «        |z  t	          j        |¦  «        z  }|S r�  )r   r¿   rô   r÷  r  r  )r‚  ÚNÚGrt  s       r   r¦   zstandard_t_impl.<locals>._implÀ  sX   € Ý”	×)Ò)Ñ+Ô+ˆAÝ”	×(Ò(¨¨c©Ñ2Ô2ˆAÝ”	˜"˜s™(Ñ#Ô# aÑ'­$¬)°A©,¬,Ñ6ˆAØˆHr   ré   rƒ  s     r   Ústandard_t_implr(  ½  s=   € å�"•u”{¥E¤MÐ2Ñ3Ô3ð ð	ð 	ð 	ð ˆðð r   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 ó@   — t           j                             | ¦  «        S r   )r   r¿   Ú
standard_trž  s     r   r¨   z"standard_t_impl2.<locals>.<lambda>Ì  s   € �rœy×3Ò3°AÑ6Ô6€ r   c                 ó®   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]$}t           j                             | ¦  «        ||<   Œ%|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   r+  rŠ  s        r   r¦   zstandard_t_impl2.<locals>._implÐ  sM   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð 9ð 9�Ý "¤	× 4Ò 4°RÑ 8Ô 8�˜‘�ØˆJr   rÉ   r‹  s      r   Ústandard_t_impl2r-  É  s‰   € å�4ÑÔð 7Ø6Ð6Ð6Ý�$�œÑ&Ô&ð 	­:°d½E¼NÑ+KÔ+Kð 	Ý+5°d´jÝ6;´mñ,Eô ,Eð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 ó|   — t          | t          j        ¦  «        rt          |t          j        ¦  «        rd„ }|S d S d S )Nc                 ól  — | dk    rt          d¦  «        ‚|dk    rt          d¦  «        ‚| d|z  z  }t          j                             ¦   «         }| |z  |z  }| ||t	          j        d|z  |z  ||z  z   ¦  «        z
  z  z   }t          j                             ¦   «         }|| | |z   z  k    r|S | | z  |z  S )Nrß   zwald(): mean <= 0zwald(): scale <= 0r  é   )rY  r   r¿   rô   r  r  )r'  rí   Úmu_2lr·  rt  ru  s         r   r¦   zwald_impl.<locals>._implÜ  sÉ   € Ø�sŠ{ˆ{Ý Ð!4Ñ5Ô5Ð5Ø˜Š|ˆ|Ý Ð!5Ñ6Ô6Ð6Ø˜C %™KÑ(ˆEÝ”	×)Ò)Ñ+Ô+ˆAØ�q‘˜1‘ˆAØ�u ¥D¤I¨a°%©i¸!©m¸aÀ!¹eÑ.CÑ$DÔ$DÑ DÑEÑEˆAÝ”	× Ò Ñ"Ô"ˆAØ�D˜D 1™HÑ%Ò%Ð%Ø�à˜d‘{ Q‘Ð&r   r
  )r'  rí   r¦   s      r   Ú	wald_implr2  Ù  sS   € å�$�œÑ$Ô$ð ­°E½5¼;Ñ)GÔ)Gð ð	'ð 	'ð 	'ð ˆð!ð ð ð r   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 óB   — t           j                             | |¦  «        S r   )r   r¿   Úwald)r'  rí   rÁ   s      r   r¨   zwald_impl2.<locals>.<lambda>ñ  s   € ­¬¯ª¸¸eÑ)DÔ)D€ r   c                 ó°   — t          j        |¦  «        }|j        }t          |j        ¦  «        D ]%}t           j                             | |¦  «        ||<   Œ&|S r   )r   rÃ   rÄ   rÅ   rÁ   r¿   r5  )r'  rí   rÁ   rÇ   rÈ   re   s         r   r¦   zwald_impl2.<locals>._implõ  sM   € Ý”(˜4‘.”.ˆCØ”xˆHÝ˜SœX‘”ð <ð <�Ý "¤	§¢¨t°UÑ ;Ô ;�˜‘�ØˆJr   rÉ   )r'  rí   rÁ   r¦   s       r   Ú
wald_impl2r7  î  sŠ   € å�4ÑÔð EØDÐDÐDÝ�$�œÑ&Ô&ð 	­:°d½E¼NÑ+KÔ+Kð 	Ý+5°d´jÝ6;´mñ,Eô ,Eð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 óD   — t          | t          j        ¦  «        rd„ }|S d S )Nc                 óf  — | dk    rt          d¦  «        ‚| dz
  }d|z  }	 dt          j                             ¦   «         z
  }t          j                             ¦   «         }t          t	          j        |d|z  z  ¦  «        ¦  «        }dd|z  z   |z  }|dk    r||z  |dz
  z  |dz
  z  ||z  k    r|S Œ’)Nrà   zzipf(): a <= 1r  rE   g      ð¿)rY  r   r¿   rœ  r  r±  )rr   Úam1rs   ru  rá  rt  ÚTs          r   r¦   zzipf_impl.<locals>._impl  sÅ   € Ø�CŠxˆxÝ Ð!1Ñ2Ô2Ð2Ø�c‘'ˆCØ�s‘
ˆAðØ�"œ)×*Ò*Ñ,Ô,Ñ,�Ý”I×$Ò$Ñ&Ô&�Ý�œ
 1¨°©Ñ#4Ñ5Ô5Ñ6Ô6�Ø˜3 ™7‘] sÑ*�Ø˜’6�6˜a !™e q¨3¡wÑ/°1°s±7Ñ;ÀÀAÁÒFÐFØ�Hðr   r
  r@  s     r   Ú	zipf_implr<  þ  s6   € å�!•U”[Ñ!Ô!ð ð	ð 	ð 	ð ˆðð r   c                 óÞ   — t          |¦  «        rd„ S t          |t          j        ¦  «        s9t          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rd„ }|S d S d S )Nc                 ó@   — t           j                             | ¦  «        S r   )r   r¿   ÚzipfrE  s     r   r¨   zzipf_impl.<locals>.<lambda>  s   € �rœyŸ~š~¨aÑ0Ô0€ r   c                 óÆ   — t          j        |t           j        ¬¦  «        }|j        }t	          |j        ¦  «        D ]$}t           j                             | ¦  «        ||<   Œ%|S rž  )r   rÃ   r~  rÄ   rÅ   rÁ   r¿   r?  rG  s        r   r¦   zzipf_impl.<locals>._impl  sT   € Ý”(˜4¥r¤wÐ/Ñ/Ô/ˆCØ”xˆHÝ˜SœX‘”ð 2ð 2�Ý "¤	§¢¨qÑ 1Ô 1�˜‘�ØˆJr   rÉ   rH  s      r   r<  r<    s‰   € å�4ÑÔð 1Ø0Ð0Ð0Ý�$�œÑ&Ô&ð 	­:°d½E¼NÑ+KÔ+Kð 	Ý+5°d´jÝ6;´mñ,Eô ,Eð	ð	ð 	ð 	ð ˆð	ð 	ð 	ð 	r   c                 óÚ   ‡— t          | t          j        ¦  «        st          d¦  «        ‚|dk    rt          j        j        Šn|dk    rt
          j        Š| j        dk    rˆfd„}nˆfd„}|S )Nz1The argument to shuffle() should be a buffer typer   r   rE   c                 ó˜   •— | j         d         dz
  }|dk    r2 ‰|dz   ¦  «        }| |         | |         c| |<   | |<   |dz  }|dk    °0d S d S rD   rÝ  ©r   ÚiÚjÚrands      €r   r‘   zdo_shuffle_impl.<locals>.impl+  sc   ø€ Ø”˜”
˜Q‘ˆAØ�a’%�%Ø�D˜˜Q™‘K”K�Ø˜qœT 1 Q¤4�
��!‘�a˜‘dØ�Q‘�ð �a’%�%�%�%�%�%r   c                 óà   •— | j         d         dz
  }|dk    rV ‰|dz   ¦  «        }t          j        | |         ¦  «        t          j        | |         ¦  «        c| |<   | |<   |dz  }|dk    °Td S d S rD   )rÞ  r   ÚcopyrC  s      €r   r‘   zdo_shuffle_impl.<locals>.impl2  ss   ø€ Ø”˜”
˜Q‘ˆAØ�a’%�%Ø�D˜˜Q™‘K”K�ÝœW Q q¤T™]œ]­B¬G°A°a´D©M¬M�
��!‘�a˜‘dØ�Q‘�ð �a’%�%�%�%�%�%r   )	r’   r   ÚBufferr4  r   r¿   rŽ  rj  Úndim)r   Úrngr‘   rF  s      @r   Údo_shuffle_implrL     s–   ø€ å�a�œÑ&Ô&ð MÝÐKÑLÔLÐLà
ˆd‚{€{ÝŒyÔ ˆˆØ	�ŠˆÝÔˆà„v�‚{€{ð	ð 	ð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð €Kr   c                 ó"   — t          | d¦  «        S r­   ©rL  r   s    r   Úshuffle_implrO  <  ó   € å˜1˜dÑ#Ô#Ð#r   c                 ó"   — t          | d¦  «        S r—   rN  r   s    r   rO  rO  A  rP  r   c                 ó‚   — t          | t          j        ¦  «        rd„ }n t          | t          j        ¦  «        rd„ }nd }|S )Nc                 ól   — t          j        | ¦  «        }t           j                             |¦  «         |S r   )r   Úaranger¿   Úshuffle)r   rh   s     r   Úpermutation_implz*permutation_impl.<locals>.permutation_implI  s*   € Ý”	˜!‘”ˆAÝŒI×Ò˜aÑ Ô Ð ØˆHr   c                 ól   — |                       ¦   «         }t          j                             |¦  «         |S r   )rH  r   r¿   rU  )r   Úarr_copys     r   rV  z*permutation_impl.<locals>.permutation_implN  s*   € Ø—v’v‘x”xˆHÝŒI×Ò˜hÑ'Ô'Ð'ØˆOr   )r’   r   r“   ÚArray)r   rV  s     r   rV  rV  F  sb   € å�!•U”]Ñ#Ô#ð  ð	ð 	ð 	ð 	õ 
�A•u”{Ñ	#Ô	#ð  ð	ð 	ð 	ð 	ð
  ÐØÐr   c                  ó:   — t          | ¦  «        dk    rd„ }nd„ }|S )Nr   c                  ó>   — t           j                             ¦   «         S r   r¾   rÀ   s    r   Ú	rand_implzrand.<locals>.rand_impl^  s   € Ý”9×#Ò#Ñ%Ô%Ð%r   c                  ó@   — t           j                             | ¦  «        S r   r¾   rÀ   s    r   r\  zrand.<locals>.rand_implc  s   € Ý”9×#Ò# DÑ)Ô)Ð)r   ©Úlen)rÁ   r\  s     r   rF  rF  Z  s<   € å
ˆ4�y„y�A‚~€~ð	&ð 	&ð 	&ð 	&ð
	*ð 	*ð 	*ð Ðr   c                  ó:   — t          | ¦  «        dk    rd„ }nd„ }|S )Nr   c                  ó>   — t           j                             ¦   «         S r   ró   rÀ   s    r   Ú
randn_implzrandn.<locals>.randn_implm  s   € Ý”9×,Ò,Ñ.Ô.Ð.r   c                  ó@   — t           j                             | ¦  «        S r   ró   rÀ   s    r   rb  zrandn.<locals>.randn_implr  s   € Ý”9×,Ò,¨TÑ2Ô2Ð2r   r^  )rÁ   rb  s     r   Úrandnrd  i  s<   € å
ˆ4�y„y�A‚~€~ð	/ð 	/ð 	/ð 	/ð
	3ð 	3ð 	3ð Ðr   Tc                 óÜ  ‡‡‡— t          | t          j        ¦  «        rE| j        dk    sJ ‚| j        Št
          d„ ¦   «         Št
          d„ ¦   «         }t
          d„ ¦   «         Šnit          | t          j        ¦  «        r=t          j        Št
          d„ ¦   «         Št
          d„ ¦   «         }t
          d„ ¦   «         Šnt          d| ›�¦  «        ‚|d t          j
        fv rdˆˆfd
„	}ndˆˆˆfd„	}|S )NrE   c                 ó    — t          | ¦  «        S r   r^  r
  s    r   Úget_source_sizezchoice.<locals>.get_source_sizeƒ  s   € å�q‘6”6ˆMr   c                 ó*   — |                       ¦   «         S r   )rH  r
  s    r   Úcopy_sourcezchoice.<locals>.copy_source‡  s   € à—6’6‘8”8ˆOr   c                 ó   — | |         S r   r!   ©rr   Úa_is     r   Úgetitemzchoice.<locals>.getitem‹  s   € à�S”6ˆMr   c                 ó   — | S r   r!   r
  s    r   rg  zchoice.<locals>.get_source_size“  s   € àˆHr   c                 ó*   — t          j        | ¦  «        S r   )r   rT  r
  s    r   ri  zchoice.<locals>.copy_source—  s   € å”9˜Q‘<”<Ðr   c                 ó   — |S r   r!   rk  s     r   rm  zchoice.<locals>.getitem›  s   € àˆJr   z>np.random.choice() first argument should be int or array, got Tc                 ór   •—  ‰| ¦  «        }t           j                             d|¦  «        } ‰| |¦  «        S )zs
            choice() implementation returning a single sample
            (note *replace* is ignored)
            r   r�  )rr   rÁ   ÚreplacerH  rD  rg  rm  s        €€r   Úchoice_implzchoice.<locals>.choice_impl¤  s;   ø€ ð
  � Ñ"Ô"ˆAÝ”	×!Ò! ! QÑ'Ô'ˆAØ�7˜1˜a‘=”=Ð r   c                 óø  •—  ‰
| ¦  «        }|rlt          j        |‰	¦  «        }|j        }t          t	          |¦  «        ¦  «        D ]1}t           j                             d|¦  «        } ‰| |¦  «        ||<   Œ2|S t          j        |‰	¦  «        }|j        |k    rt          d¦  «        ‚t           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Á   rY  Úpermutation)rr   rÁ   rr  rH  rÇ   ÚflrD  rE  Ú
permuted_arË   rg  rm  s            €€€r   rs  zchoice.<locals>.choice_impl®  s  ø€ ð  � Ñ"Ô"ˆAØð Ý”h˜t UÑ+Ô+�Ø”X�Ý�s 2™wœw™œð *ð *�AÝœ	×)Ò)¨!¨QÑ/Ô/�AØ#˜G A q™MœM�B�q‘E�EØ�
õ ”h˜t UÑ+Ô+�Ø”8˜a’<�<Ý$ð &Gñ Hô Hð Hõ  œY×2Ò2°1Ñ5Ô5�
Ø”X�Ý�s 2™wœw™œð *ð *�AØ& qœM�B�q‘E�EØ�
r   ©NT)r’   r   rY  rJ  rË   r   r“   r   r~  r4  rž   )rr   rÁ   rr  ri  rs  rË   rg  rm  s        @@@r   Úchoicery  {  sˆ  øøø€ õ �!•U”[Ñ!Ô!ð #7àŒv˜Š{ˆ{ˆ{ˆ{Ø”ˆå	ð	ð 	ñ 
Ô	ð	õ 
ð	ð 	ñ 
Ô	ð	õ 
ð	ð 	ñ 
Ô	ð	ð 	õ 
�A•u”}Ñ	%Ô	%ð 7å”ˆå	ð	ð 	ñ 
Ô	ð	õ 
ð	 ð 	 ñ 
Ô	ð	 õ 
ð	ð 	ñ 
Ô	ð	ð 	õ ˆiØ23°!ð6ñ 7ô 7ð 	7ð �•e”jÐ!Ð!Ð!ð	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð< Ð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„	}nVt          |t          j        ¦  «        rdˆˆfd„	}n4t          |t          j
        ¦  «        rdˆˆfd„	}nt          d|›�¦  «        ‚|S )	Nc                 óH  — |j         }|j        }t          |¦  «        }t          d||¦  «        D ]r}d}| }t          d|dz
  ¦  «        D ]G}	||	         }
t          j                             ||
|z  ¦  «        x}|||	z   <   ||z  }|dk    r n||
z  }ŒH|dk    r||||z   dz
  <   Œsd S )Nr   rà   rE   )rÄ   rÁ   r_  rÅ   r   r¿   r|  )rH  ÚpvalsrÇ   rv  ÚszÚplenrD  Úp_sumÚn_experimentsrE  Úp_jÚn_js               r   Úmultinomial_innerz&multinomial.<locals>.multinomial_inner×  sá   € ð ŒXˆØŒXˆÝ�5‰zŒzˆå�q˜"˜dÑ#Ô#ð 	1ð 	1ˆAð
 ˆEàˆMõ
 ˜1˜d Q™hÑ'Ô'ð ð �Ø˜A”h�Ý"$¤)×"4Ò"4°]ÀCÈ%ÁKÑ"PÔ"PÐP��b˜˜Q™‘iØ Ñ$�Ø  AÒ%Ð%à�EØ˜‘��Ø˜qÒ Ð à#0��1�t‘8˜a‘<Ñ øð-	1ð 	1r   z5np.random.multinomial(): n should be an integer, got zCnp.random.multinomial(): pvals should be an array or sequence, got c                 óf   •— t          j        t          |¦  «        ‰¦  «        } ‰| ||¦  «         |S )z5
            multinomial(..., size=None)
            ©r   Úzerosr_  ©rH  r|  rÁ   rÇ   rË   rƒ  s       €€r   Úmultinomial_implz%multinomial.<locals>.multinomial_implÿ  s6   ø€ õ ”(�3˜u™:œ: uÑ-Ô-ˆCØÐ˜a ¨Ñ,Ô,Ð,ØˆJr   c                 ój   •— t          j        |t          |¦  «        f‰¦  «        } ‰| ||¦  «         |S )z4
            multinomial(..., size=int)
            r…  r‡  s       €€r   rˆ  z%multinomial.<locals>.multinomial_impl  s;   ø€ õ ”(˜D¥# e¡*¤*Ð-¨uÑ5Ô5ˆCØÐ˜a ¨Ñ,Ô,Ð,ØˆJr   c                 ón   •— t          j        |t          |¦  «        fz   ‰¦  «        } ‰| ||¦  «         |S )z6
            multinomial(..., size=tuple)
            r…  r‡  s       €€r   rˆ  z%multinomial.<locals>.multinomial_impl  s=   ø€ õ ”(˜4¥3 u¡:¤: -Ñ/°Ñ7Ô7ˆCØÐ˜a ¨Ñ,Ô,Ð,ØˆJr   zBnp.random.multinomial(): size should be int or tuple or None, got r   )r   r~  r   r’   r   r“   r4  ÚSequencerY  rž   Ú	BaseTuple)rH  r|  rÁ   rˆ  rË   rƒ  s       @@r   Úmultinomialr�  Ò  sz  øø€ õ ŒG€Eåð1ð 1ñ Ôð1õ< �a�œÑ'Ô'ð 2ÝˆiØ-.¨Qð1ñ 2ô 2ð 	2õ �e�eœn­e¬kÐ:Ñ;Ô;ð @ÝˆiØ7<°uð?ñ @ô @ð 	@ð �•e”jÐ!Ð!Ð!ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	õ 
�D�%œ-Ñ	(Ô	(ð ;ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	õ 
�D�%œ/Ñ	*Ô	*ð ;ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	õ ˆiØ37°4ð:ñ ;ô ;ð 	;ð Ðr   c                 ó\   — t          | t          j        t          j        f¦  «        rd„ }|S d S )Nc                 óh   — 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‹  rY  )rÖ  r’  s     r   Ú	dirichletr”  #  s>   € å�%�%œ.­%¬+Ð6Ñ7Ô7ð ð	ð 	ð 	ð Ððð r   c                 ó~  — t          | t          j        t          j        f¦  «        st	          d| ›�¦  «        ‚|d t          j        fv rdd„}not          |t          j        ¦  «        rdd„}nPt          |t          j        ¦  «        r$t          |j        t          j        ¦  «        rdd„}nt	          d|z  ¦  «        ‚|S )NzAnp.random.dirichlet(): alpha should be an array or sequence, got c                 óh   — t          j        t          | ¦  «        ¦  «        }t          | |¦  «         |S r   r�  ©rÖ  rÁ   rÇ   s      r   r’  z!dirichlet.<locals>.dirichlet_impl7  r“  r   c                 ól   — t          j        |t          | ¦  «        f¦  «        }t          | |¦  «         |S )z2
            dirichlet(..., size=int)
            r�  r—  s      r   r’  z!dirichlet.<locals>.dirichlet_impl>  s3   € õ ”(˜D¥# e¡*¤*Ð-Ñ.Ô.ˆCÝ˜% Ñ%Ô%Ð%ØˆJr   c                 óp   — t          j        |t          | ¦  «        fz   ¦  «        }t          | |¦  «         |S )z4
            dirichlet(..., size=tuple)
            r�  r—  s      r   r’  z!dirichlet.<locals>.dirichlet_implH  s5   € õ ”(˜4¥3 u¡:¤: -Ñ/Ñ0Ô0ˆCÝ˜% Ñ%Ô%Ð%ØˆJr   zJnp.random.dirichlet(): size should be int or tuple of ints or None, got %sr   )	r’   r   r‹  rY  r   rž   r“   rÊ   rË   )rÖ  rÁ   r’  s      r   r”  r”  -  s  € å�e�eœn­e¬kÐ:Ñ;Ô;ð 
Ýˆnà+0¨5ð3ñ
ô 
ð 	
ð
 �•e”jÐ!Ð!Ð!ð	ð 	ð 	ð 	ð 	õ
 
�D�%œ-Ñ	(Ô	(ð 
ð	ð 	ð 	ð 	ð 	õ 
�D�%œ.Ñ	)Ô	)ð 
­j¸¼Ý9>¼ñ/Hô /Hð 
ð	ð 	ð 	ð 	ð 	õ ð,Ø.2ñ3ñ
ô 
ð 	
ð
 Ðr   c                 óÀ  — t          | ¦  «        D ]}|dk    rt          d¦  «        ‚Œt          | ¦  «        }|j        }|j        }t          d||¦  «        D ]‡}d}t          | ¦  «        D ]K\  }}	t          j         	                    |	d¦  «        |||z   <   ||||z             
                    ¦   «         z  }ŒLt          | ¦  «        D ]\  }}	|||z   xx         |z  cc<   ŒŒˆd S )Nr   zdirichlet: alpha must be > 0.0rE   )ÚiterrY  r_  rÁ   rÄ   rÅ   Ú	enumerater   r¿   rÜ  Úitem)
rÖ  rÇ   Úa_valÚa_lenrÁ   rÄ   rD  ÚnormrC  rb  s
             r   r‘  r‘  Y  s  € õ
 �e‘”ð ?ð ?ˆØ�AŠ:ˆ:ÝÐ=Ñ>Ô>Ð>ð õ �‰JŒJ€EØŒ8€DØŒ8€DÝ�1�d˜EÑ"Ô"ð  ð  ˆàˆÝ˜eÑ$Ô$ð 	'ð 	'‰DˆAˆqÝœ)Ÿ/š/¨!¨QÑ/Ô/ˆD��Q‘‰KØ�D˜˜Q™”K×$Ò$Ñ&Ô&Ñ&ˆDˆDÝ˜eÑ$Ô$ð 	 ð 	 ‰DˆAˆqØ��Q‘ˆKˆKŒK˜4ÑˆKˆK‰KˆKð	 ð ð  r   c                 ó¬   — t          | t          j        t          j        f¦  «        r+t          |t          j        t          j        f¦  «        rd„ }|S d S d S )Nc                 óB   — t          | |¦  «         t          | |¦  «        S r   ©Ú#validate_noncentral_chisquare_inputÚnoncentral_chisquare_single©r‚  Únoncs     r   Únoncentral_chisquare_implz7noncentral_chisquare.<locals>.noncentral_chisquare_implw  s"   € Ý/°°DÑ9Ô9Ð9Ý.¨r°4Ñ8Ô8Ð8r   ré   )r‚  r§  r¨  s      r   Únoncentral_chisquarer©  s  sg   € å�"•u”{¥E¤MÐ2Ñ3Ô3ð )½
Ø•5”;¥¤Ð.ñ90ô 90ð )ð	9ð 	9ð 	9ð )Ð(ð)ð )ð )ð )r   c                 ó  — |d t           j        fv rdd„}|S t          |t           j        ¦  «        s9t          |t           j        ¦  «        r%t          |j        t           j        ¦  «        rdd„}|S t          d|z  ¦  «        ‚)Nc                 óB   — t          | |¦  «         t          | |¦  «        S r   r£  )r‚  r§  rÁ   s      r   r¨  z7noncentral_chisquare.<locals>.noncentral_chisquare_impl�  s"   € Ý0°°TÑ:Ô:Ð:Ý/°°DÑ9Ô9Ð9r   c                 ó°   — t          | |¦  «         t          j        |¦  «        }|j        }t	          |j        ¦  «        D ]}t          | |¦  «        ||<   Œ|S r   )r¤  r   rÃ   rÄ   rÅ   rÁ   r¥  )r‚  r§  rÁ   rÇ   rÈ   re   s         r   r¨  z7noncentral_chisquare.<locals>.noncentral_chisquare_impl‰  sY   € Ý0°°TÑ:Ô:Ð:Ý”8˜D‘>”>ˆSØœˆXÝ˜cœh™œð Gð G�Ý!<¸RÀÑ!FÔ!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¨  s       r   r©  r©  ~  s¯   € à�•u”zÐ"Ð"Ð"ð
:ð 
:ð 
:ð 
:ð *Ð	)Ý
�T�5œ=Ñ
)Ô
)ð ­j¸½u¼~Ñ.NÔ.Nð Ý2<¸T¼ZÝ=B¼]ñ3Lô 3Lðð
ð 
ð 
ð 
ð *Ð	)åð-Ø/3ñ4ñô ð 
r   c                 ó–  — t          j        |¦  «        rt           j        S d| k     r]t           j                             | dz
  ¦  «        }t           j                             ¦   «         t          j        |¦  «        z   }|||z  z   S t           j                             |dz  ¦  «        }t           j                             | d|z  z   ¦  «        S )NrE   r  rH   )r   ÚisnanÚnanr¿   rˆ  rô   r  rë  )r‚  r§  Úchi2rH  rD  s        r   r¥  r¥  ˜  s¤   € õ
 
„x��~„~ð ÝŒvˆàˆ2‚v€vÝŒy×"Ò" 2 a¡4Ñ(Ô(ˆÝŒI×%Ò%Ñ'Ô'­"¬'°$©-¬-Ñ7ˆØ�a˜!‘e‰|Ðõ ŒI×Ò˜d 3™hÑ'Ô'ˆÝŒy×"Ò" 2¨¨A©¡:Ñ.Ô.Ð.r   c                 óZ   — | dk    rt          d¦  «        ‚|dk     rt          d¦  «        ‚d S )Nr   zdf <= 0znonc < 0r÷  r¦  s     r   r¤  r¤  ª  s7   € à	ˆQ‚w€wÝ˜Ñ#Ô#Ð#Øˆa‚x€xÝ˜Ñ$Ô$Ð$ð €xr   r   rx  )ÐÚ__doc__r  r¿   Únumpyr   Úllvmliter   Únumba.core.cgutilsr   Únumba.core.extendingr   r   r   Únumba.core.imputilsr   r	   r
   Únumba.core.typingr   Ú
numba.corer   r   Únumba.npr   Únumba.core.errorsr   ÚregistryÚlowerr…  r   r…   r   r1  rn   r&  r   r]   ÚLiteralStructTypeÚ	ArrayTypeÚrnd_state_tÚPointerTyper%   r1   r5   r8   r:   rA   rF   rI   rL   rT   ri   rt   rŽ   r˜   r•   r”   rµ   Úrandom_sampleÚsampleÚranfr»   rÍ   r5  ÚnormalvariaterÛ   rô   râ   rã   rê   rð   rø   r  r  rÒ   rÑ   ÚgetrandbitsrF  rf  rj  rm  rr  rx  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  r"  r#  r(  r-  r1  Úlognormvariater6  r,  Úparetovariater<  rD  rA  ÚweibullvariaterK  rR  rO  rT  ÚvonmisesvariaterY  rg  rV  ri  r|  ry  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  r  r  r  r  r  r  r!  r  r#  r+  r(  r-  r5  r2  r7  r?  r<  rL  rU  rO  ru  rV  rF  rd  ry  r�  r”  r‘  r©  r¥  r¤  r!   r   r   ú<module>rÎ     s  ððð ð
 €€€Ø €€€à Ð Ð Ð à Ð Ð Ð Ð Ð à *Ð *Ð *Ð *Ð *Ð *Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fð6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ð ˆ8�LÑ!Ô!€ØŒ€à
ˆ"Œ*�R‰.Œ.€Ø
ˆ"Œ*�R‰.Œ.€ð#ð #ð #à	ˆŒ‰Œ€à€Ø
ˆ"Œ+�g˜qÑ
!Ô
!€ð #ˆbÔ"àà€B„L�˜!ÑÔàà
àð$ñ ô €ð !�"”. Ñ-Ô-€ð ð  ð  ð"1ð 1ð 1ð1ð 1ð 1ð7ð 7ð 7ð:ð :ð :ð:ð :ð :ð:ð :ð :ð:ð :ð :ðð ð ðð ð ð21ð 1ð 1ð.ð .ð .ðb 
€ˆ&Œ+ÑÔðð ñ Ôðð 
€ˆ"Œ)Œ.ÑÔð ð  ñ Ôð ð
$ð $ð $ð 
€ˆ&Œ-ÑÔðð ñ Ôðð 
€ˆ"Œ)Ô
ÑÔØ	€ˆ"Œ)Ô
!Ñ"Ô"Ø	€ˆ"Œ)Ô
ÑÔØ	€ˆ"Œ)Œ.ÑÔðð ñ Ôñ Ôñ #Ô"ñ Ôðð 
€ˆ"Œ)Ô
ÑÔØ	€ˆ"Œ)Ô
!Ñ"Ô"Ø	€ˆ"Œ)Ô
ÑÔØ	€ˆ"Œ)Œ.ÑÔðð ð ñ Ôñ Ôñ #Ô"ñ Ôðð 
€ˆ&Œ,ÑÔØ	€ˆ&Ô
ÑÔð	2ð 	2ñ  Ôñ Ôð	2ð 
€ˆ"Œ)Ô
#Ñ$Ô$Ø	€ˆ"Œ)Ô
ÑÔð.ð .ñ Ôñ %Ô$ð.ð 
€ˆ"Œ)Ô
ÑÔð6ð 6ñ Ôð6ð
 
€ˆ"Œ)Ô
ÑÔð	4ð 	4ñ Ôð	4ð 
€ˆ"Œ)Ô
#Ñ$Ô$ðð ñ %Ô$ðð 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð&ð ð ð$%ð %ð %ðPLð Lð Lð" 
€ˆ&Ô
ÑÔð"ð "ñ Ôð"ð(CEð CEð CEðL 
€ˆ&Ô
ÑÔð;ð ;ñ Ôð;ð
 
€ˆ&Ô
ÑÔðDð Dñ ÔðDð
*ð *ð *ð 
€ˆ&Ô
ÑÔðBð Bñ ÔðBð4 
€ˆ&Œ.ÑÔð:ð :ñ Ôð:ð
 
€ˆ"Œ)Ô
ÑÔð5ð 5ñ Ôð5ð
 
€ˆ"Œ)Ô
ÑÔð2ð 2ñ Ôð2ð0 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð( 
€ˆ"Œ)Ô
ÑÔð/ð /ñ Ôð/ð 
€ˆ&Œ.ÑÔð	(ð 	(ñ Ôð	(ð 
€ˆ"Œ)Ô
ÑÔð	2ð 	2ñ Ôð	2ð	ð 	ð 	ð 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð& 
€ˆ&Ô
ÑÔðð ñ Ôðð 
€ˆ&Ô
ÑÔðð ñ Ôðð$ 
€ˆ"Œ)Ô
ÑÔðð ñ  Ôðð$ 
€ˆ"Œ)Ô
ÑÔðð ð ñ  Ôðð" 
€ˆ&Ô
ÑÔð1ð 1ñ Ôð1ð 
€ˆ"Œ)Ô
"Ñ#Ô#Ø	€ˆ"Œ)Œ/ÑÔð9ð 9ñ Ôñ $Ô#ð9ð
 
€ˆ"Œ)Œ/ÑÔðð ñ Ôðð8ð 8ð 8ðv 
€ˆ"Œ)Œ/ÑÔðð ñ Ôðð 
€ˆ"Œ)Ô
"Ñ#Ô#ðð ñ $Ô#ðð 
€ˆ&Ô
ÑÔð6ð 6ñ Ôð6ð 
€ˆ"Œ)Œ.ÑÔðð ñ Ôððð ð ð 
€ˆ"Œ)Œ.ÑÔðð ñ Ôðð 
€ˆ&Ô
ÑÔðð ñ Ôðð 
€ˆ"Œ)Ô
Ñ Ô ðð ñ !Ô ðð 
€ˆ"Œ)Ô
Ñ Ô ðð ñ !Ô ðð 
€ˆ"Œ)Ô
(Ñ)Ô)Ø	€ˆ"Œ)Ô
Ñ Ô ðð ñ !Ô ñ *Ô)ðð 
€ˆ"Œ)Ô
(Ñ)Ô)ðð ñ *Ô)ðð  
€ˆ"Œ)Ô
ÑÔð1ð 1ñ Ôð1ð 
€ˆ"Œ)Ô
ÑÔð;ð ;ñ Ôð;ð
 
€ˆ"Œ)Ô
ÑÔð3ð 3ñ Ôð3ð 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð 
€ˆ&Ô
Ñ Ô ð/ð /ñ !Ô ð/ð9ð 9ð 9ð 
€ˆ&Ô
ÑÔðð ñ  Ôðð 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð 
€ˆ&Ô
Ñ Ô ð	ð 	ñ !Ô ð	ð 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð 
€ˆ&Ô
 Ñ!Ô!ð4ð 4ñ "Ô!ð4ð
 
€ˆ"Œ)Ô
ÑÔð7ð 7ñ Ôð7ð
)ð )ð )ðX 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð 
€ˆ"Œ)Ô
ÑÔð4ð 4ñ Ôð4ðn 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð 
€ˆ"Œ)Œ+ÑÔðð ñ Ôðð 
€ˆ"Œ)Œ+ÑÔðð ñ Ôðð" 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð. 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð 
€ˆ"Œ)Ô
"Ñ#Ô#ðð ñ $Ô#ðð. 
€ˆ"Œ)Ô
"Ñ#Ô#ðð ñ $Ô#ðð  
€ˆ"Œ)Ô
ÑÔð/ð /ñ Ôð/ð 
€ˆ"Œ)Ô
ÑÔð7ð 7ñ Ôð7ð
 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð3ð 3ð 3ð 
€ˆ"Œ)Ô
ÑÔð0ð 0ñ Ôð0ð 
€ˆ"Œ)Ô
ÑÔð8ð 8ñ Ôð8ð
 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð1ð 1ð 1ð
ð ð ð* 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð
 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð 
€ˆ"Œ)Ô
%Ñ&Ô&ðð ñ 'Ô&ðð 
€ˆ"Œ)Ô
ÑÔð*ð *ñ Ôð*ð 
€ˆ"Œ)Ô
ÑÔð>&ð >&ñ Ôð>&ðB 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð" 
€ˆ"Œ)Œ/ÑÔðð ñ Ôðð 
€ˆ"Œ)Œ/ÑÔðð ñ Ôðð 
€ˆ"Œ)Ô
ÑÔð+ð +ñ Ôð+ð 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð 
€ˆ"Œ)Ô
#Ñ$Ô$ðð ñ %Ô$ðð 
€ˆ"Œ)Ô
#Ñ$Ô$ðð ñ %Ô$ðð 
€ˆ"Œ)Ô
ÑÔðð ñ  Ôðð 
€ˆ"Œ)Ô
ÑÔðð ñ  Ôðð 
€ˆ"Œ)Œ.ÑÔðð ñ Ôðð( 
€ˆ"Œ)Œ.ÑÔðð ñ Ôðð 
€ˆ"Œ)Œ.ÑÔðð ñ Ôðð$ 
€ˆ"Œ)Œ.ÑÔðð ñ Ôððð ð ð8 
€ˆ&Œ.ÑÔð$ð $ñ Ôð$ð 
€ˆ"Œ)Ô
ÑÔð$ð $ñ Ôð$ð 
€ˆ"Œ)Ô
Ñ Ô ðð ñ !Ô ðð& 
€ˆ"Œ)Œ.ÑÔðð ñ Ôðð 
€ˆ"Œ)Œ/ÑÔðð ñ Ôðð" 
€ˆ"Œ)Ô
ÑÔðPð Pð Pñ ÔðPðl 
€ˆ"Œ)Ô
Ñ Ô ðJð Jð Jñ !Ô ðJð` 
€ˆ"Œ)Ô
ÑÔðð ñ Ôðð 
€ˆ"Œ)Ô
ÑÔð(ð (ð (ñ Ôð(ðV ð ð  ñ Ôð ð2 
€ˆ"Œ)Ô
(Ñ)Ô)ð)ð )ñ *Ô)ð)ð 
€ˆ"Œ)Ô
(Ñ)Ô)ðð ð ñ *Ô)ðð2 ð/ð /ñ Ôð/ð" ð%ð %ñ Ôð%ð %ð %r   