
    J/Ph>                    T   d Z ddlZddlZddlZddlmZ ddlmZm	Z	 ddl
mZmZmZ ddlmZ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 Z0d Z1d Z2d Z3d Z4d Z5d Z6 eej7                  d             Z8 eej        j7                  d             Z8d Z9 eej                  d             Z: 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=                  dd!                                                Z? eej@                   eejA                  d"                         ZB eej        jC                   eej        jD                  d#                         ZE eej        jD                  d$             ZF eej        jD                  d%             ZG eej        jC                  d&             ZH eej        jD                  d'             ZId( ZJd) ZKd* ZL eejM                  d+             ZNd, ZO eejP                  d-             ZQ eejP                  d.             ZRd/ ZS eejP                  d0             ZT eejU                  d1             ZV eej        jU                  d2             ZW eej        jU                  d3             ZX eej        jU                  d4             ZY eej        jZ                  d5             Z[ eejZ                  d6             Z\ eej        jZ                  d7             Z]d8 Z^ eej        jZ                  d9             Z_ eej`                  d:             Za eej`                  d;             Zb eej        j`                  d<             Zb eej        j`                  dd=            Zc eejd                  d>             Ze eej        jf                   eej        jg                  d?                         Zh eej        jg                  d@             ZidA Zj eej        jg                  dB             Zk eej        jf                  dC             Zl eejm                  dD             Zn eej        jo                  dE             ZpdF Zq eej        jo                  dG             Zr eejs                  dH             Zt eej        ju                  dI             Zv eej        ju                  dJ             Zv eej        jw                   eej        ju                  dK                         Zv eej        jw                  dL             Zx eej        jy                  dM             Zz eej        jy                  dN             Z{ eej        jy                  dO             Z| eej        jy                  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             Zd[ 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             Zdm Z eej        j                  dn             Z eej        j                  do             Z eej        j                  dp             Z eej        j                  dq             Zdr Zds 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             Zd 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                  dd            Z eej        j                  dd            Z eej        j                  d             Z eej        j                  dd            Zed             Z eej        j                  d             Z eej        j                  dd            Zed             Zed             ZdS )z6
Implement the random and np.random module functions.
    N)ir)is_nonelikeis_empty_tuple)	intrinsicoverloadregister_jitable)Registryimpl_ret_untrackedimpl_ret_new_ref	signature)typescgutils)NumbaTypeError)LONG_MAX
randomimpl    @   c                 6    t          j        t          |           S N)r   Constantint32_txs    X/var/www/html/test/jupyter/venv/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_ptrr2   3   s     ++++++d2I??B//D		'i	H	HB Mj!!!Mj!!!<<Br   c                 $    t          | |d          S )z@
    Get a pointer to the thread-local Python random state.
    r   r2   r,   r-   s     r   get_py_state_ptrr6   D        '4000r   c                 $    t          | |d          S )z?
    Get a pointer to the thread-local Numpy random state.
    r    r4   r5   s     r   get_np_state_ptrr9   J   r7   r   c                 $    t          | |d          S )zB
    Get a pointer to the thread-local internal random state.
    r!   r4   r5   s     r   get_internal_state_ptrr;   P   s     ':666r   c                 0    t          j        | |dd          S Nr   r   gep_inboundsr-   	state_ptrs     r   get_index_ptrrB   W       Aq999r   c                 0    t          j        | |dd          S Nr      r>   r@   s     r   get_array_ptrrG   Z   rC   r   c                 0    t          j        | |dd          S )Nr      r>   r@   s     r   get_has_gauss_ptrrJ   ]   rC   r   c                 0    t          j        | |dd          S )Nr      r>   r@   s     r   get_gauss_ptrrM   `   rC   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-   r0   r1   s      r   get_rnd_shufflerU   c   s\     ?2;==?*<==D		'(8(?(;
= 
=BGAJ[)))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   NrF         l   VX:    l     _    )rB   loadicmp_unsignedN_constr   if_unlikelyrU   r+   storer   rG   r?   r*   xorlshrand_shl)	r,   r-   rA   idxptridxneed_reshuffler1   	array_ptrys	            r   get_next_int32rj   n   s0    7I..F
,,v

C**4g>>N		Wn	5	5 , ,W%%R)&&&illF+++, , , , , , , , , , , , , , , ,,v

Cgy11IW)'9aEEFFA
++c9Q<<
(
(CMM#vAw||Ay}}5566AAw||GKK9Q<<$@$@$-j$9$9; ; 	< 	<AAw||GKK9R==$A$A$-j$9$9; ; 	< 	<AAw||Ay}}5566A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)
rb   rj   r   uitofpdoublefdivfaddfmulr   r   )r,   r-   rA   abs        r   get_next_doubleru      s    
 	^GWi@@)A,,OOA^GWi@@)A,,OOA 	q&!!Aq&!!A<<QQFJ(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=   )subrj   typewidthzexttruncnot_r   r   rb   rc   )	nbitsshiftri   maskr-   c32r,   is_numpyrA   s	       r   get_shifted_intz%get_next_int.<locals>.get_shifted_int   s    C''7GY77 :afl**LL//EEZ,,MM%00E 	*<<AFA 6 677D<<e,,D<<4((( <<5)))r   r   <=N)r   r   ry   r   alloca_once_valueint64_tr]   if_elser`   r{   rx   rj   r*   rd   r\   )r,   r-   rA   r~   r   r   retis_32bifsmalliflargelowhightotalr   s   ``` `        @r   get_next_intr      s    +ej"
%
%C* * * * * * * * *& 
#GR[!-D-D
E
EC""444F		 	  &$6Wg 	; 	;!/%((CMM',,sG44c:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;  	& 	& @&w{{5#'>'>?? '9==C @&w{{5#'>'>??KKS'**GLLw77K446 67 7E MM%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&	& & & & & & & & & & & & & & && <<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"   )rs   r1   s    r   implzseed_impl.<locals>.impl   s    2a55Lr   )
isinstancer   Integerr   
_seed_impl)rs   r   r1   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%   rQ   r&   r   r   r'   rR   r(   r+   r2   get_constantr   none)r,   r-   sigrS   
seed_valuer0   r1   
state_types          r   codegenz*_seed_impl.<locals>._impl.<locals>.codegen   s    KJ?2;==?G2LMMD/0@0G0@B BBLLmGWjII(* + + +''
D999r   )r   r   voiduint32)typingcontextr   r   r   s      r   _implz_seed_impl.<locals>._impl   s7    	: 	: 	: 	: 	: U\22G;;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   r2   ru   r,   r-   r   rS   rA   s        r   r   z+random_impl.<locals>._impl.<locals>.codegen   %    %gw==I"7GY???r   )r   r   ro   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>       5577 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          |           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                 b    t          j        t           j                                                  S r   )r    arrayr   r   s    r   r   zrandom_impl1.<locals>.<lambda>  s    ")*:*:*<*<!=!= r   c                     t          j        |           }|j        }t          |j                  D ]#}t           j                                        ||<   $|S r   )r    emptyflatranger   r   r   outout_flatrf   s       r   r   zrandom_impl1.<locals>._impl  sK    (4..CxHSX 3 3 "	 0 0 2 2Jr   r   r   r   r   r   r   UniTupledtyper   r   s     r   random_impl1r      s    
 4 43333d >====$&& 	:dEN+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    3B77!5e!<!<U]B66t%57IJJK Kr   c                      | |          S r   r"   r   r   r   s     r   r   zgauss_impl.<locals>.<lambda>  s    r5!1!1 r   r   r   Floatr   r   r   s     @r   
gauss_implr     s     "u{EM233 2
EK/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    29##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    29++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>._impl2  sL    3C88!5e!<!<U]C77t%57IJJK Kr   c                      | |          S r   r"   r   r   r   s     r   r   z np_gauss_impl2.<locals>.<lambda>8  s    %%U"3"3 r   r   r   s     @r   np_gauss_impl2r   .  s~    #U]344 4EK/:1 :1 4		K 	K 
	K
 433334 4 4 4r   c                    t          |           rd S 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>>      BI5577 r   c                 b    t          j        t           j                                                  S r   )r    r   r   r   r   s    r   r   z'standard_normal_impl1.<locals>.<lambda>A      BHRY%>%>%@%@AA 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>._implE  K    (4..CxHSX < < "	 9 9 ; ;Jr   r   r   s     r   standard_normal_impl1r   ;  s    4 8777d BAAA$&& 	:dEN+K+K 	+5dj6;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          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>S      	(8(8e(D(D r   c                 f    t          j        t           j                            | |                    S r   )r    r   r   r   r   s      r   r   z np_gauss_impl3.<locals>.<lambda>X  "    1A1A#u1M1M(N(N r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r    r   r   r   r   r   r   r   r   r   r   r   rf   s         r   r   znp_gauss_impl3.<locals>._impl^  O    (4..CxHSX = = "	 0 0e < <Jr   r   r   r   r   r   r   r   r   r   r   r   r   s       r   np_gauss_impl3r	  N  ss   3em455 E*EK/;1 ;1 E4E EDD3em455 O*EK/;1 ;1 OdO ONN3em455 *EK/;1 ;1 4'',6tU^,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_pairh  s    	wwyy3&Bwwyy3&BBBBCxxB#II	 IdTXb\\)B.//2vq2v~r   r"   )r  r  s   ` r   _gauss_pair_implr  g  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   rI   r"   rF   )return_typeget_data_typer   r    r2   r   alloca_oncerM   rJ   is_truer\   r   r`   r   compile_internalr  r   r   r   unpack_tuplerq   rr   )r,   r-   r   rS   tylltyr  rA   r   	gauss_ptrhas_gauss_ptr	has_gaussthen	otherwisepairfirstsecondr   r   r   r   states                      r   r   z_gauss_impl.<locals>._implz  s   _$$R(()+ ++02 "'7E::	!'4h???!'955	)'9==OGW\\--H-HII	__Y'' 	;+<D) ; ;gll955s;;;illM:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;  ; ; //0@0I0I09%.Q:O:O0P0P024 4
 !( 4WdA F FveY///fc***illM:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;$ 	E||,,Wb99#LL););GU)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   y  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>      gnnQ&;&; r   c                 0    |                      |          S r   )rn   r0  s     r   r   z&_double_preprocessor.<locals>.<lambda>  r2  r   r   c                 0    |                      |          S r   )fpextr0  s     r   r   z&_double_preprocessor.<locals>.<lambda>  s    gmmAr&:&: r   c                     |S r   r"   )_builderr1  s     r   r   z&_double_preprocessor.<locals>.<lambda>  s    q r   z(Cannot convert {} to floating point type)	r   r   
DoubleTyper   r   signedr   bitwidthr   )valuer"  s    @r   r   r     s    					B%'' Q< 	<;;;;;;;;;;	E5;	'	' Q>R:::::(((G%OPPPr   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 )NrW   A   ==r   z getrandbits() limited to 64 bitsr   F)
r]   r   r   r_   or_	call_convreturn_user_excOverflowErrorr2   r   )	r,   r-   r   rS   r~   	too_large	too_smallmsgrA   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5g}7:f> > >> > > > > > > > > > > > > > >
 *'7DAA	#GWi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"   rI  r   s    r   r   z"getrandbits_impl.<locals>.<lambda>  s    q r   )r   r   r   r   rK  s    @r   getrandbits_implrL    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   rF   nr  <>r   zempty range for randrange()zllvm.ctlz.%sr    rc                                          d          }                      d          }                    |                                |            t          
	dk              }                    |          }                    d|          }                    || |                               |                               |           d S )Nwhilez	while.endr    rW   )append_basic_blockbranchposition_at_endr   r|   icmp_signedcbranchr`   )bbwhilebbendrQ  rE  r-   r,   rN  r~   rptrr,  rA   r"  s       r   get_numz _randrange_impl.<locals>.get_num  s    ,,W55**;77w((('9eUd]KKMM!R  ''a33		7E222&&&ar   r@  )r2   r   r   r   r  r`   rx   if_thenrW  r*   r\   sdivr_   rB  rC  
ValueErrorr%   true_bitry   r'   rR   r(   r|   r+   r   rz   r   mul)r,   r-   startstopstepr"  r9  r,  zeroonenptrwrG  r0   r1   nm1r\  is_one
is_not_onerN  r~   r[  rA   s   ``   ` `           @@@@r   _randrange_implrl    sl   gw66I;r1D
+b!

Cw555D MM'++dE**D111	,,S$==	>	>  KKGLL$6$6==sCCLLD!!a	              
 
,,S$<<	=	=  KKGLL$6$6==sCCLLD!!a	               	TA		Wg&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


ACMM',,rC1A+BCCWMMEKKGRX66>>Ew555D            }}__W00q#>>?? 	CWFJ * *dD)))* * * * * * * * * * * * * * *  			              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 				;;ugkk',,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 rE   r   	randrangerb  s    r   r   z"randrange_impl_1.<locals>.<lambda>  s    V-a:: r   r   r   r   rq  s    r   randrange_impl_1rs    s)    %'' ;:::; ;r   c                 x    t          | t          j                  rt          |t          j                  rd S d S d S )Nc                 .    t          j        | |d          S NrF   ro  rb  rc  s     r   r   z"randrange_impl_2.<locals>.<lambda>  s    6#3E4#C#C r   rr  rw  s     r   randrange_impl_2rx    sL    %'' DJtU],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"   )r7  r1  _tys      r   r   z)_randrange_preprocessor.<locals>.<lambda>  s     r   )r:  r9  r   	IRBuildersextr{   )r:  r"  s     r   _randrange_preprocessorr~    s;    	{h%'Y '!!\&	( *))r   c                 8  	
 t          | t          j                  rt          |t          j                  rt          |t          j                  rt          | 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   )rl  )r,   r-   r   rS   rb  rc  rd  	llvm_typer9  start_preprocessorstep_preprocessorstop_preprocessors          r   r   z0randrange_impl_3.<locals>._impl.<locals>.codegen0  sq    $(!tT**7E9EE(($	BB(($	BB&wd'0&$@ @ @r   r   )r   rb  rc  rd  r   int_tyr  r9  r  r  r  s        r   r   zrandrange_impl_3.<locals>._impl.  sT    @ @ @ @ @ @ @ @ @ VUD$77@@r   c                      | ||          S r   r"   )rb  rc  rd  r   s      r   r   z"randrange_impl_3.<locals>.<lambda>9  s    udD)A)A r   r   r   r   maxr9  r:  from_bitwidthr   IntTyper~  r   )rb  rc  rd  r:  r   r  r  r9  r  r  r  s       @@@@@@@r   randrange_impl_3r  !  sG   5%-(( BZem-L-L B$&&BU\4;<<u~t}dmDD,,Xv>>Jx((	4XuEE3HdCC3Hd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 rv  ro  rs   rt   s     r   r   z randint_impl_1.<locals>.<lambda>?  s    F,QAq99 r   rr  r  s     r   randint_impl_1r  <  sF    !U]## :
1em(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>E  s    29,,Q44 r   rr  r  s    r   np_randint_impl_1r  B  s)    #u}%% 54445 5r   c                    t          | t          j                  rt          |t          j                  rt          | 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 )NrF   r    )r   r   rl  )r,   r-   r   rS   rb  rc  rd  r  r9  r  r  s          r   r   z1np_randint_impl_2.<locals>._impl.<locals>.codegenU  sk    "t**7E9EE(($	BB{9a00&wd'0&$@ @ @r   r   )	r   r   r   r   r  r  r9  r  r  s	       r   r   z np_randint_impl_2.<locals>._implS  sL    @ @ @ @ @ @ @ @ VS$//88r   c                      | |          S r   r"   r   r   r   s     r   r   z#np_randint_impl_2.<locals>.<lambda>^      sD!1!1 r   r  )	r   r   r:  r   r  r  r9  r  r  s	      @@@@@@r   np_randint_impl_2r  H  s    #u}%% 2*T5=*I*I 2SZ--s|T]33,,Xv>>Jx((	4XsCC3Hd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	          |          rd S t          | t          j                  rt          |t          j                  rt          |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>e      ry'8'8d'C'C r   c                 f    t          j        t           j                            | |                    S r   )r    r   r   r  r  s      r   r   z#np_randint_impl_3.<locals>.<lambda>i  "    rx	0A0A#t0L0L'M'M 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   rf   result_types         r   r   z np_randint_impl_3.<locals>._implq  sW    (4{333CxHSX = = "	 1 1#t < <Jr   )r   r   r   r   r   r   r   r  r:  getattrr    )r   r   r   r:  r   r  s        @r   np_randint_impl_3r  a  sm   3&& D:dEM+J+J D4DCCC3&& N:dEM+J+J NdN NMM3&& :dEM+J+J 4'',6tU^,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>|      29$$S#.. r   r"   r"   r   r   np_uniform_impl0r  z      ...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   rs   rt   low_preprocessorhigh_preprocessors        r   r   zuniform_impl2.<locals>._impl  sN    3A66 4Q 7 7U]Aq11<&(94; 4; ; ;r   c                      | |          S r   r"   rs   rt   r   s     r   r   zuniform_impl2.<locals>.<lambda>  s    EE!QKK r   r   r  s     @r   uniform_impl2r    s{    !ek5=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    3C88 4T : :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   )r2   fsubru   rq   rr   )r,   r-   r   rS   rA   rs   rt   rz   rQ  a_preprocessorb_preprocessorr,  s            r   r   zuniform_impl.<locals>.impl  s    !'7E::	1N7A&&N7A&&Q""GWi88||Aw||E1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          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                 f    t          j        t           j                            | |                    S r   )r    r   r   r  r  s      r   r   z"np_uniform_impl3.<locals>.<lambda>  r  r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r    r   r   r   r   r   r  )r   r   r   r   r   rf   s         r   r   znp_uniform_impl3.<locals>._impl  sO    (4..CxHSX = = "	 1 1#t < <Jr   r  )r   r   r   r   s       r   np_uniform_impl3r    ss   3em455 D*5;.;0 ;0 D4D DCC3em455 N*5;.;0 ;0 NdN
 NMM3em455 *5;.;0 ;0 4'',6tU^,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    MOOq55aAcCdSjDIa!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1uu!G!G #T$*	!a%(8(8888r   r   )r   r   r  r   s       r   triangular_impl_3r    s    3em455 *5;.;0 ;0 $em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1uu!G!G#Te54<49QU+;+;;;;r   r   )r  r  r  r   s       r   r  r    s    4%+u}566 :5;.<0 <0 uu{EM:;;		< 		< 		<      r   c                    t          |          rddS 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"    BI4H4HIMIN5P 5P r   c                 h    t          j        t           j                            | ||                    S r   )r    r   r   r  r  s       r   r   z!triangular_impl.<locals>.<lambda>  s)    BHI  tU335
 5
 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   rf   s          r   r   ztriangular_impl.<locals>._impl  sS    (4..CxHSX H H "	 4 4T4 G GJr   r   r   )r  r  r  r   r   s        r   triangular_implr    s    4 PP P P 	P d 

 
 
 	
 	4'' 	JtU^,L,L 	,6tz7<}-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    RY__UC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   r1   s     r   r   z!ol_np_random_gamma2.<locals>.impl  s    2eU###r   )r   r   r   r   r   r  r    r   )r  r   r   r1   s      @r   ol_np_random_gamma2r    s    %%+u}566 :EK/<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    rt          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      @rF   gHz>gP?)r  r  r_  r  expe)r  r  SG_MAGICCONSTainvbbbcccu1u2r1  r   zrQ  r  rt   pr  s                  r   r   z!_gammavariate_impl.<locals>._impl$  s"    dhsmm+
 C<<43;;IJJJ3;; 9S5[3.//D$(3--'C$,C
$WYYb++++8++++7799_HRR[))$.$(1++%rE"HAIaK}$s1u,33qDHQKK7G7Gt8O
$ c\\
 HS7799_---44GIIVe^TV+aC88c%i(AA1Q3+...AWYYs77Q53;/// 048QB<<'' t8Or   r"   r  r   s   ` r   r  r  #  s$    6 6 6 6 6n Lr   c                    t          |          rd S 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>a  s    ")//%*G*G r   c                 f    t          j        t           j                            | |                    S r   )r    r   r   r  r  s      r   r   zgamma_impl.<locals>.<lambda>d  s     "(29??5%3P3P*Q*Q r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r    r   r   r   r   r   r  )r  r   r   r   r   rf   s         r   r   zgamma_impl.<locals>._implh  sM    (4..CxHSX > > "	u = =Jr   r   )r  r   r   r   s       r   
gamma_implr   ^  s    4 HGGGd RQQQ$&& 	:dEN+K+K 	+5dj6;m,E ,E		 	 	 	 	 	 	r   c                    t          |          rd S 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>t  s    29#;#;E#B#B r   c                 d    t          j        t           j                            |                     S r   )r    r   r   r  r  s     r   r   z%standard_gamma_impl.<locals>.<lambda>w  s     28BI,D,DU,K,K#L#L r   c                     t          j        |          }|j        }t          |j                  D ]$}t           j                            |           ||<   %|S r   )r    r   r   r   r   r   r  )r  r   r   r   rf   s        r   r   z"standard_gamma_impl.<locals>._impl{  sO    (4..CxHSX @ @ "	 8 8 ? ?Jr   r   )r  r   r   s      r   standard_gamma_implr  q  s    4 CBBBd MLLL4'' 	JtU^,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    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"   )rs   rt   r1   s     r   r   zol_np_random_beta.<locals>.impl  s    2a88Or   )	r   r   r   r   r   r
  r    r   r  )rs   rt   r   r1   s      @r   ol_np_random_betar    s    !ek5=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  ri   r  s      r   r   z _betavariate_impl.<locals>._impl  s>    
 E%883EE$OO+,,r   r"   )r  r   s   ` r   r
  r
    s#    	- 	- 	- 	- 	- Lr   c                    t          |          rd S 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  rs   rt   r   s      r   r   zbeta_impl.<locals>.<lambda>  s    ")..A"6"6 r   c                 f    t          j        t           j                            | |                    S r   )r    r   r   r  r  s      r   r   zbeta_impl.<locals>.<lambda>  s     "(29>>!Q+?+?"@"@ r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r    r   r   r   r   r   r  )rs   rt   r   r   r   rf   s         r   r   zbeta_impl.<locals>._impl  sM    (4..CxHSX 5 5 "	q! 4 4Jr   r   )rs   rt   r   r   s       r   	beta_implr    s    4 7666d A A@@4'' 	JtU^,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'     HS6=??2333e;;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-    HS29#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          |          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    29#8#8#?#? r   c                 d    t          j        t           j                            |                     S r   )r    r   r   r$  r%  s     r   r   z"exponential_impl.<locals>.<lambda>  s     28BI,A,A%,H,H#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   rf   s        r   r   zexponential_impl.<locals>._impl  sM    (4..CxHSX = = "	 5 5e < <Jr   r   r   r   r   s      r   r!  r!    s    4 @???d JIII4'' 	JtU^,L,L 	,6tz7<}-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(    ry//1112222r   r"   r   s    r   r!  r!    s    3 3 3Lr   c                    t          |           rd S 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    BI::<< r   c                 b    t          j        t           j                                                  S r   )r    r   r   r.  r   s    r   r   z+standard_exponential_impl.<locals>.<lambda>  s    BHRY%C%C%E%E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(standard_exponential_impl.<locals>._impl  sM    (4..CxHSX A A "	 > > @ @Jr   r   r   s     r   standard_exponential_implr1    s    4 =<<<d GFFF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    29&&sC00 r   r"   r"   r   r   np_lognormal_impl0r6    s    000r   c                 X    t          | t          j        t          j        f          rd S d S )Nc                 B    t           j                            | d          S r   r4  means    r   r   z%np_log_normal_impl1.<locals>.<lambda>  s    BI//c:: r   r   r9  s    r   np_log_normal_impl1r;    s0    $em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   r1   s     r   r   z%np_log_normal_impl2.<locals>.<lambda>  s    22dE?? r   )	r   r   r   r   r   _lognormvariate_implr    r   r   r>  s     @r   np_log_normal_impl2r@  	  s{    $em455 3*EK/;1 ;1 32293CDDEE222223 3 3 3r   c                    t          |          rd S 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   r4  r:  r   r   s      r   r   z lognormal_impl.<locals>.<lambda>  s    )<)<T5)I)I r   c                 f    t          j        t           j                            | |                    S r   )r    r   r   r5  rC  s      r   r   z lognormal_impl.<locals>.<lambda>  s"    ")2E2EdE2R2R)S)S r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r    r   r   r   r   r   r5  )r:  r   r   r   r   rf   s         r   r   zlognormal_impl.<locals>._impl  sQ    (4..CxHSX A A "	 3 3D% @ @Jr   r   )r:  r   r   r   s       r   lognormal_implrF    s    4 JIIId TSSS4'' 	JtU^,L,L 	,6tz7<}-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   r1   s     r   r   z%lognormvariate_impl.<locals>.<lambda>(  s    B r   )r   r   r   r   r?  r   gaussrI  s     @r   lognormvariate_implrK  $  se    "ek"" /z%'E'E /26<@@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    TXffR&7&788 r   r"   )rN  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>._impl2  s(     fmoo%As5y)))r   r  )r  r   s     r   paretovariate_implrQ  /  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   rF   r   rs   r  s     r   r   zpareto_impl.<locals>._impl>  s2    bi&&(((As1u%))r   r  rs   r   s     r   pareto_implrV  ;  s6    !U[!! 	* 	* 	*
  r   c                    t          |          rd S 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rs   r   s     r   r   zpareto_impl.<locals>.<lambda>I  s    ry//22 r   c                 d    t          j        t           j                            |                     S r   )r    r   r   rY  rZ  s     r   r   zpareto_impl.<locals>.<lambda>L  s     rx	(8(8(;(;<< r   c                     t          j        |          }|j        }t          |j                  D ]$}t           j                            |           ||<   %|S r   )r    r   r   r   r   r   rY  rs   r   r   r   rf   s        r   r   zpareto_impl.<locals>._implP  sM    (4..CxHSX 4 4 "	 0 0 3 3Jr   r   rs   r   r   s      r   rV  rV  F  s    4 3222d =<<<4'' 	JtU^,L,L 	,6tz7<}-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     fmoo%ATXa[[Lc$h777r   r   )r  r  r   s      r   weibullvariate_implra  Y  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  rT  s     r   r   zweibull_impl.<locals>._impli  s3    bi&&(((AXa[[Lc!e,,r   r   rU  s     r   weibull_implre  f  s=    !ek5=122 	- 	- 	-
  r   c                    t          |          rd S 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   weibullrZ  s     r   r   zweibull_impl2.<locals>.<lambda>t  s    ry0033 r   c                 d    t          j        t           j                            |                     S r   )r    r   r   rh  rZ  s     r   r   zweibull_impl2.<locals>.<lambda>w  s     rx	(9(9!(<(<== r   c                     t          j        |          }|j        }t          |j                  D ]$}t           j                            |           ||<   %|S r   )r    r   r   r   r   r   rh  r]  s        r   r   zweibull_impl2.<locals>._impl{  sM    (4..CxHSX 5 5 "	 1 1! 4 4Jr   r   r^  s      r   weibull_impl2rk  q  s    4 4333d >===4'' 	JtU^,L,L 	,6tz7<}-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_implrp    sM    "ek"" 4z%'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   rm  r    r   rn  s     r   rp  rp    sP    "ek"" 7z%'E'E 7$RY%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 )zCircular 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   ro  srQ  r  r  dr  qr  u3thetar  s               r   r   z$_vonmisesvariate_impl.<locals>._impl  s3    D===7799,,%K	#A+&&&	B2&&AQUABC!a%K2#'TXa[[)@#@#@	 !GUsQU{#WYY88$)A,,&3=9EE$)A,,&3=9Er   r"   r  s   ` r   rm  rm    s$    & & & & &P Lr   c                    t          |          rd S 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   ro  r   s      r   r   zvonmises_impl.<locals>.<lambda>  s    ry'9'9"e'D'D r   c                 f    t          j        t           j                            | |                    S r   )r    r   r   r~  r  s      r   r   zvonmises_impl.<locals>.<lambda>  s"    rx	0B0B2u0M0M'N'N r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r    r   r   r   r   r   r~  )r   ro  r   r   r   rf   s         r   r   zvonmises_impl.<locals>._impl  sO    (4..CxHSX > > "	 2 22u = =Jr   r   )r   ro  r   r   s       r   vonmises_implr        4 EDDDd ONNN4'' 	JtU^,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  rF   gx0 rI         $@)r_  minr  r  r    r   )rN  r  flippedry  nitersqnnp_prodboundr   XUpxs               r   r   zbinomial_impl.<locals>._impl  s    1uu !56661OOOOOOOO !BCCCCxxqCxx#gG !GaAFaB,, 1a!V1uuuu ,, !eG7TDIgkAo,F,F%FFGGEE1**I$$&&5jjBww'!8Qq8!GAFAq519/B.1q59B 5jj	 1** Lr   r   r   r   r   rN  r  r   s      r   binomial_implr    sa    !U]## 3
U]+)- )- 3/	 /	 /	b g3 3 3 3r   c                    t          |          rd S 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rN  r  r   s      r   r   zbinomial_impl.<locals>.<lambda>
  s    ")"4"4Q":": r   c                 f    t          j        t           j                            | |                    S r   )r    r   r   r  r  s      r   r   zbinomial_impl.<locals>.<lambda>  s"    "(29+=+=a+C+C"D"D r   c                     t          j        |t           j                  }|j        }t	          |j                  D ]%}t           j                            | |          ||<   &|S r  )r    r   intpr   r   r   r   r  )rN  r  r   r   r   rf   s         r   r   zbinomial_impl.<locals>._impl  sX    (4rw///CxHSX 9 9 "	 2 21a 8 8Jr   r   )rN  r  r   r   s       r   r  r    s    4 ;:::d E EDD4'' 	JtU^,L,L 	,6tz7<}-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{EM233 	< 	< 	< 	 r   c                    t          |          rd S 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 3B 7 7 r   c                 d    t          j        t           j                            |                     S r   )r    r   r   r  r  s     r   r   z!chisquare_impl2.<locals>.<lambda>)  s     )<)<R)@)@ A A r   c                     t          j        |          }|j        }t          |j                  D ]$}t           j                            |           ||<   %|S r   )r    r   r   r   r   r   r  r  r   r   r   rf   s        r   r   zchisquare_impl2.<locals>._impl-  sM    (4..CxHSX 8 8 "	 3 3B 7 7Jr   r   r  r   r   s      r   chisquare_impl2r  $  s    4 8777d BAAA4'' 	JtU^,L,L 	,6tz7<}-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  6  sf    %%+u}566 :EK/<1 <1 	: 	: 	:    r   c                 2   t          | t          j        t          j        f          r8t          |t          j        t          j        f          rt	          |          rd S t          | t          j        t          j        f          r8t          |t          j        t          j        f          rt          |          rd S t          |t          j                  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>F  s    ")++eU*C*C r   c                 f    t          j        t           j                            | |                    S r   )r    r   r   r  r  s      r   r   zf_impl.<locals>.<lambda>K  s     "(29;;ue3L3L*M*M r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r    r   r   r   r   r   r  )r  r  r   r   r   rf   s         r   r   zf_impl.<locals>._implO  sM    (4..CxHSX : : "	E5 9 9Jr   r  )r  r  r   r   s       r   r  r  A  s"   55;677 DJEK/=1 =1 D4D DCC55;677 NJEK/=1 =1 NdN NMM4'' 	JtU^,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?rF   )r_  r  r    r   r  ceilr  )r  ry  r  sumprodr  s         r   r   zgeometric_impl.<locals>._impl[  s    Cxx1s77 !CDDDaA...FFdI$$&&#ggAID4KCFA #gg y#	0@0@0B0B*B!C!C!%!"- . . .r   r   )r  r   s     r   geometric_implr  X  s=    !ek5=122 	. 	. 	.$ ' r   c                    t          |          rd S 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>s      ry22155 r   c                 d    t          j        t           j                            |                     S r   )r    r   r   r  r  s     r   r   z geometric_impl.<locals>.<lambda>v       rx	(;(;A(>(>?? 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   rf   s        r   r   zgeometric_impl.<locals>._implz  V    (4rx000CxHSX 7 7 "	 3 3A 6 6Jr   r   r  r   r   s      r   r  r  p  s    4 6555d @???4'' 	JtU^,L,L 	,6tz7<}-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   rd  r   r   r  s      r   r   zgumbel_impl.<locals>._impl  s>    bi&&(((A48A;;,!7!7777r   r   r   s      r   gumbel_implr    sf    #U]344 EK/:1 :1 	8 	8 	8    r   c                    t          |          rd S 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>  r  r   c                 f    t          j        t           j                            | |                    S r   )r    r   r   r  r   s      r   r   zgumbel_impl3.<locals>.<lambda>  r  r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r    r   r   r   r   r   r  r  s         r   r   zgumbel_impl3.<locals>._impl  r  r   r   r  s       r   gumbel_impl3r    r  r   c                     t          | t          j        t          j        f          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   rF   )r  floatr  r  floorr    r   )ngoodnbadnsampled1d2YKZs           r   r   z"hypergeometric_impl.<locals>._impl  s    TSZZ'#g,,6Bs4''((BAGAc''a!eeTZ	 0 0 2 2Q"q&\ ABBBQ c''a!ee BFAt||7||a''r   r   )r  r  r  r   s       r   hypergeometric_implr    s    55;677 J5;.=0 =0 gU];<<	 	 	  '     r   c                    t          |          rd S 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>  s    I$$UD':: r   c                 h    t          j        t           j                            | ||                    S r   )r    r   r   r  r  s       r   r   z%hypergeometric_impl.<locals>.<lambda>  s(    HRY--eT7CCD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   rf   s          r   r   z"hypergeometric_impl.<locals>._impl  s\    (4rw///CxHSX O O "	 8 8g N NJr   r   )r  r  r  r   r   s        r   r  r    s    4 ;; ; 	;d EE E 	E4'' 	JtU^,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    29,,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 EK/:1 :1    r   c                    t          |          rd S 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                 f    t          j        t           j                            | |                    S r   )r    r   r   r  r   s      r   r   zlaplace_impl3.<locals>.<lambda>  s"    1B1B31N1N(O(O 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xHSX > > "	 1 1#u = =Jr   r   r  s       r   laplace_impl3r    s    4 FEEEd POOO$&& 	:dEN+K+K 	+5dj6;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  rd  r  s      r   r  r    s\    
	A3wwUTXa!e__,,,UTXcAg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    29%%c3// 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    29--c3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 EK/:1 :1    r   c                    t          |          rd S 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                 f    t          j        t           j                            | |                    S r   )r    r   r   r  r   s      r   r   z logistic_impl3.<locals>.<lambda>  s"    1C1CC1O1O(P(P 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xHSX ? ? "	 2 23 > >Jr   r   r  s       r   logistic_impl3r    s    4 GFFFd QPPP4'' 	JtU^,L,L 	0:4:;@=1J 1J		 	 	 	 	 	 	r   c                 ~    t           j                                        }| |t          j        |d|z
  z            z  z   S r   rd  r  s      r   r  r     s7    
	A!sQw-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]rF   rI   )r_  r  r  r    r   r  r  )r  rQ  Vr  ry  s        r   _logseries_implr  %  s    Cxx1s77;<<<qAI661I$(1q5//!A::8C$(1++";;<<<!VV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-    !ek5=122  r   c                    t          |          rd S 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>C  r  r   c                 d    t          j        t           j                            |                     S r   )r    r   r   r  r  s     r   r   z logseries_impl.<locals>.<lambda>E  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>._implI  r  r   r   r  s      r   r
  r
  @  s    4 6555d @???$&& 	:dEN+K+K 	+5dj6;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])r_  r    r   r  poisson)rN  r  r  s      r   r   z%negative_binomial_impl.<locals>._implV  sm    Avv !>???3ww!c'' !KLLL	C!Gq=11A9$$Q'''r   r  r  s      r   negative_binomial_implr  R  s_    !U]## 

u{EM*), ), 
	( 	( 	( 
 
 
 
r   c                      d S )Nc                  @    t           j                            d          S r   r    r   r  r"   r   r   r   zpoisson_impl0.<locals>.<lambda>c  s    29$$S)) r   r"   r"   r   r   poisson_impl0r  a  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  bbcontrZ  rW   r  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   rF   r_  )lamenlamr  r  r  _expr  s        r   poisson_implzCpoisson_impl1.<locals>._impl.<locals>.codegen.<locals>.poisson_impl  sy     Syy()@AAAczz q D#JJEAD#GII	5==#$HQr   )r9   r   r  r   rT  fcmp_orderedr   r   ro   r]  r%   r&   r'   rR   r(   r+   r`   rU  rV  r    r   r  r  r   r\   )r,   r-   r   rS   rA   retptrr  rZ  r  big_lamr0   r1   r   r"  r!  r  lam_preprocessors                 @@r   r   z-poisson_impl1.<locals>._impl.<locals>.codegenm  s3   ,Wg>>	 ,WgEJJJ 33H==227;;&&w44!..tS/1{64/H/HJ J__W-- 	* 	* ?7_f4MNND 78H8O8<8LN NB ",,rIs+;<<CMM#v...NN5)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* v&&&''///)*x     , ..wc4PPc6***u%%%''...||F+++s   .B
EEE)r   r   r   r  )r   r  r   r&  s      @r   r   zpoisson_impl1.<locals>._impli  sD    3C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    55:: r   r   r(  s    @r   poisson_impl1r)  f  sT    #U]344 =&	:	8 :	8 
:	8v &%%%%{=& =&r   c                    t          | t          j        t          j        f          rt	          |          rd S t          | t          j        t          j        f          rt          |          rd S t          | t          j        t          j        f          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>  s    !2!23!7!7 r   c                 d    t          j        t           j                            |                     S r   )r    r   r   r  r,  s     r   r   zpoisson_impl2.<locals>.<lambda>  s     ")*;*;C*@*@!A!A 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   rf   s        r   r   zpoisson_impl2.<locals>._impl  sV    (4rw///CxHSX 7 7 "	 1 1# 6 6Jr   r  )r  r   r   s      r   poisson_impl2r/    s    #U]344 8T9J9J 8777#U]344 B9M9M BAAA#U]344 tU]++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 <= 0rF   r   )r_  r  powr  r    r   r.  rs   s    r   r   zpower_impl.<locals>._impl  sW    Cxx !23338A")*H*H*J*J)J K KKqD" " "r   r   rU  s     r   
power_implr4    s=    !ek5=122 	" 	" 	"  r   c                    t          |          rd S 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   powerrZ  s     r   r   zpower_impl.<locals>.<lambda>  s    ryq11 r   c                 d    t          j        t           j                            |                     S r   )r    r   r   r7  rZ  s     r   r   zpower_impl.<locals>.<lambda>  s    rx	(:(:;; r   c                     t          j        |          }|j        }t          |j                  D ]$}t           j                            |           ||<   %|S r   )r    r   r   r   r   r   r7  r]  s        r   r   zpower_impl.<locals>._impl  sK    (4..CxHSX 3 3 "	 2 2Jr   r   r^  s      r   r4  r4    s    4 2111d <;;;$&& 	:dEN+K+K 	+5dj6;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    29%%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   )r_  r  r  r  r    r   r   s    r   r   zrayleigh_impl1.<locals>.impl  sQ    || !9:::49TDHS29;K;K;M;M5M,N,N%NOOOOr   r   )r   r   s     r   rayleigh_impl1rA    s@    %%+u}566 	P 	P 	P  r   c                    t          |          rd S 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    29#5#5e#<#< r   c                 d    t          j        t           j                            |                     S r   )r    r   r   r=  r%  s     r   r   z rayleigh_impl2.<locals>.<lambda>  s     28BI,>,>u,E,E#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rayleigh_impl2.<locals>._impl  sM    (4..CxHSX : : "	 2 25 9 9Jr   r   r)  s      r   rayleigh_impl2rF    s    4 =<<<d GFFF$&& 	:dEN+K+K 	+5dj6;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((**RY-F-F-H-HHHr   r"   r   s    r   cauchy_implrI     s    I I I Lr   c                    t          |           rd S 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                 b    t          j        t           j                                                  S r   )r    r   r   rL  r   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   rL  r   s       r   r   z#standard_cauchy_impl.<locals>._impl  r   r   r   r   s     r   standard_cauchy_implrO    s    4 8777d BAAA$&& 	:dEN+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Gr  s       r   r   zstandard_t_impl.<locals>._impl  sX    	))++A	((c22A	"s(##a'$)A,,6AHr   r   r  s     r   standard_t_implrT    s=    "u{EM233 	 	 	  r   c                    t          |          rd S 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    	 4 4R 8 8 r   c                 d    t          j        t           j                            |                     S r   )r    r   r   rW  r  s     r   r   z"standard_t_impl2.<locals>.<lambda>,  s     )=)=b)A)A B B r   c                     t          j        |          }|j        }t          |j                  D ]$}t           j                            |           ||<   %|S r   )r    r   r   r   r   r   rW  r  s        r   r   zstandard_t_impl2.<locals>._impl0  sM    (4..CxHSX 9 9 "	 4 4R 8 8Jr   r   r  s      r   standard_t_impl2rZ  '  s    4 9888d CBBB$&& 	:dEN+K+K 	+5dj6;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     )r_  r    r   r   r  r  )r:  r   mu_2lr  r  r  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DIa%i!ma!e.C$D$D DEEA	  ""ADD1H%%%d{Q&r   r  )r:  r   r   s      r   	wald_implr_  9  sS    $$$ E5;)G)G 	' 	' 	' !   r   c                    t          |          rd S 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>Q  s    e)D)D r   c                 f    t          j        t           j                            | |                    S r   )r    r   r   rb  rc  s      r   r   zwald_impl2.<locals>.<lambda>T  s     ")..u2M2M)N)N r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r    r   r   r   r   r   rb  )r:  r   r   r   r   rf   s         r   r   zwald_impl2.<locals>._implX  sM    (4..CxHSX < < "	tU ; ;Jr   r   )r:  r   r   r   s       r   
wald_impl2rf  N  s    4 EDDDd ONNN$&& 	:dEN+K+K 	+5dj6;m,E ,E		 	 	 	 	 	 	r   c                 D    t          | t          j                  rd }|S d S )Nc                    | dk    rt          d          | dz
  }d|z  }	 dt          j                                        z
  }t          j                                        }t          t	          j        |d|z  z                      }|t          k    s|dk     rydd|z  z   |z  }|dk    r||z  |dz
  z  |dz
  z  ||z  k    r|S )Nr   zzipf(): a <= 1r  rF   g      )r_  r    r   r  r  r  r   )rs   am1rt   r  r  r  Ts          r   r   zzipf_impl.<locals>._impld  s    Cxx !1222c'Cs
A
")**,,,I$$&&
1#45566LLAGG37]s*66a!eq3w/1s7;AFFH
r   r  rU  s     r   	zipf_implrk  a  s6    !U[!! 	 	 	" % r   c                    t          |          rd S 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   zipfrZ  s     r   r   zzipf_impl.<locals>.<lambda>{  s    ry~~a00 r   c                 d    t          j        t           j                            |                     S r   )r    r   r   rn  rZ  s     r   r   zzipf_impl.<locals>.<lambda>~  s    rx	q(9(9:: r   c                     t          j        |t           j                  }|j        }t	          |j                  D ]$}t           j                            |           ||<   %|S r  )r    r   r  r   r   r   r   rn  r]  s        r   r   zzipf_impl.<locals>._impl  sT    (4rw///CxHSX 2 2 "	q 1 1Jr   r   r^  s      r   rk  rk  x  s    4 1000d ;:::$&& 	:dEN+K+K 	+5dj6;m,E ,E		 	 	 	 	 	 	r   c                     t          | t          j                  sd}t          |          |dk    rt          j        j        n|dk    rt
          j        | j        dk    rfd}nfd}|S )Nz1The argument to shuffle() should be a buffer typer    r   rF   c                     | j         d         dz
  }|dk    r2 |dz             }| |         | |         c| |<   | |<   |dz  }|dk    0d S d S rE   r  r   ijrands      r   r   zdo_shuffle_impl.<locals>.impl  sc    
QAa%%DQKKqT1Q4
!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 rE   )r  r    copyrs  s      r   r   zdo_shuffle_impl.<locals>.impl  ss    
QAa%%DQKKWQqT]]BGAaDMM
!adQ a%%%%%%r   )	r   r   Bufferr   r    r   r  rp  ndim)r   rngrG  r   rv  s       @r   do_shuffle_implr|    s    a&& "AS!!!
d{{y 	v{{	 	 	 	 	 		 	 	 	 	 Kr   c                 "    t          | d          S r   r|  r   s    r   shuffle_implr        1d###r   c                 "    t          | d          S r   r~  r   s    r   r  r    r  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   ri   s     r   permutation_implz*permutation_impl.<locals>.permutation_impl  s*    	!AIa   Hr   c                 l    |                                  }t          j                            |           |S r   )rx  r    r   r  )r   arr_copys     r   r  z*permutation_impl.<locals>.permutation_impl  s*    vvxxHIh'''Or   )r   r   r   Array)r   r  s     r   r  r    sb    !U]##  	 	 	 	 
Au{	#	#  	 	 	 	
  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_impl  s    9##D)))r   len)r   r  s     r   rv  rv    s<    
4yyA~~	& 	& 	& 	&
	* 	* 	* 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_impl  s    9,,...r   c                  @    t           j                            |           S r   r   r   s    r   r  zrandn.<locals>.randn_impl  s    9,,T222r   r  )r   r  s     r   randnr    s<    
4yyA~~	/ 	/ 	/ 	/
	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 )NrF   c                      t          |           S r   r  r3  s    r   get_source_sizezchoice.<locals>.get_source_size  s    q66Mr   c                 *    |                                  S r   )rx  r3  s    r   copy_sourcezchoice.<locals>.copy_source  s    6688Or   c                     | |         S r   r"   rs   a_is     r   getitemzchoice.<locals>.getitem  s    S6Mr   c                     | S r   r"   r3  s    r   r  zchoice.<locals>.get_source_size  s    Hr   c                 *    t          j        |           S r   )r    r  r3  s    r   r  zchoice.<locals>.copy_source  s    9Q<<r   c                     |S r   r"   r  s     r   r  zchoice.<locals>.getitem  s    Jr   z>np.random.choice() first argument should be int or array, got Tc                 r     |           }t           j                            d|          } | |          S )zs
            choice() implementation returning a single sample
            (note *replace* is ignored)
            r   r  )rs   r   replacerN  rt  r  r  s        r   choice_implzchoice.<locals>.choice_impl  s;    
  ""A	!!!Q''A71a== 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   r_  permutation)rs   r   r  rN  r   flrt  ru  
permuted_ar   r  r  s            r   r  zchoice.<locals>.choice_impl  s     ""A htU++Xs2ww * *A	))!Q//A#GAqMMBqEE
 htU++8a<<$ &G H H H  Y22155
Xs2ww * *A&qMBqEE
r   NT)r   r   r  rz  r   r   r   r    r  r   r   )rs   r   r  r  r  r   r  r  s        @@@r   choicer    s    !U[!! #<v{{{{		 	 
		 
	 	 
		 
	 	 
		 	 
Au}	%	% <		 	 
		 
	  	  
		  
	 	 
		 	 n78q; < < 	< ej!!!	! 	! 	! 	! 	! 	! 	! 	!	 	 	 	 	 	 	 	< 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   rF   )r   r   r  r   r    r   r  )rN  pvalsr   r  szplenrt  p_sumn_experimentsru  p_jn_js               r   multinomial_innerz&multinomial.<locals>.multinomial_innerB  s     XX5zzq"d## 	1 	1A
 EM
 1dQh''  Ah"$)"4"4]C%K"P"PPbQi$ A%%Eq  #01t8a< -	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  rN  r  r   r   r   r  s       r   multinomial_implz%multinomial.<locals>.multinomial_implj  s6     (3u::u--Ca,,,Jr   c                 j    t          j        |t          |          f          } | ||           |S )z4
            multinomial(..., size=int)
            r  r  s       r   r  z%multinomial.<locals>.multinomial_impls  s;     (D#e**-u55C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=     (43u::-/77Ca,,,Jr   zBnp.random.multinomial(): size should be int or tuple or None, got r   )r    r  r   r   r   r   r   Sequencer  r   	BaseTuple)rN  r  r   r  r   r  s       @@r   multinomialr  =  s    GE1 1 1< a'' 7n23!6 7 7 	7 eenek:;; En<AED E E 	E ej!!!	 	 	 	 	 	 	 	 
D%-	(	( @	 	 	 	 	 	 	 	 
D%/	*	* @	 	 	 	 	 	 	 	 n8<? @ @ 	@ 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  ,    (3u::&&C%%%%Jr   )r   r   r  r  )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 st          |          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_impl  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_impl  s5     (43u::-/00C%%%%Jr   zJnp.random.dirichlet(): size should be int or tuple of ints or None, got %sr   )
r   r   r  r  r   r   r   r   r   r   )r  r   r  s      r   r  r    s   eenek:;; 
n+053
 
 	

 ej!!!^D%9%9!	 	 	 	 	
 
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.0rF   )iterr_  r  r   r   r   	enumerater    r   r  item)
r  r   a_vala_lenr   r   rt  normrI  rh  s
             r   r  r    s   
 e ? ?A::=>>>  JJE8D8D1dE""    e$$ 	' 	'DAq)//!Q//DQKDQK$$&&&DDe$$ 	  	 DAqQKKK4KKKK	    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_impl  s"    /D999.r4888r   r   )r  r  r  s      r   noncentral_chisquarer    sg    "u{EM233 )
5;.90 90 )	9 	9 	9 )() ) ) )r   c                 .   |d t           j        fv rdd}|S t          |          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                 f    t          | |           t          j        t          | |                    S r   )r  r    r   r  r  s      r   r  z7noncentral_chisquare.<locals>.noncentral_chisquare_impl  s-    0T:::H8TBBCCCr   c                     t          | |           t          j        |          }|j        }t	          |j                  D ]}t          | |          ||<   |S r   )r  r    r   r   r   r   r  )r  r  r   r   r   rf   s         r   r  z7noncentral_chisquare.<locals>.noncentral_chisquare_impl  sY    0T:::8D>>SXch 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   r  s       r   r  r    s    uz"""
: 
: 
: 
: *	)t 
D 
D 
D 
D *	)
T5=
)
) ju~.N.N 2<TZ=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 )NrF   r  rI   )r    isnannanr   r  r   r  r  )r  r  chi2rN  rt  s        r   r  r  		  s    
 
x~~ v2vvy""2a4((I%%''"'$--7a!e| Id3h''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    	Qww###axx$$$ xr   r   r  )__doc__r  r   numpyr    llvmliter   numba.core.cgutilsr   r   numba.core.extendingr   r   r   numba.core.imputilsr	   r
   r   numba.core.typingr   
numba.corer   r   numba.core.errorsr   numba.np.random._constantsr   registrylowerr  r   r   r   r8  ro   rR  r   r^   LiteralStructType	ArrayTypernd_state_tPointerTyper&   r2   r6   r9   r;   rB   rG   rJ   rM   rU   rj   ru   r   r   r   r   r   random_samplesampleranfr   r   rJ  normalvariater   r   r   r   r   r   r   r	  r  r   r   getrandbitsrL  rl  rp  rs  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   r  betavariater  r  r  r
  r  expovariater  r$  r!  r.  r1  r5  r6  r;  r@  rF  lognormvariaterK  r?  paretovariaterQ  rY  rV  weibullvariatera  rh  re  rk  vonmisesvariaterp  r~  rm  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  negative_binomialr  r  r  r)  r/  r7  r4  r=  r>  rA  rF  rL  rI  rO  rW  rT  rZ  rb  r_  rf  rn  rk  r|  r  r  r  r  rv  r  r  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 ' ' ' ' ' ' % % % % % % % % , , , , , , / / / / / /8L!!
"*R..
"*R..# # #	
"+gq
!
! #b"BL!
$   !".--     "1 1 11 1 17 7 7: : :: : :: : :: : :    21 1 1. . .b 
&+   
").     
$ $ $ 
&-   
")
	")
!""	")
	").    #"  
")
	")
!""	")
	").     #" $ 
&,	&
	2 	2   	2 
")
#$$	")
. .  %$. 
")
6 6 6
 
")
	4 	4 	4 
")
#$$  %$$ 
")
  0  $% % %PQ Q Q" 
&
" " "(CE CE CEL 
&
; ; ;
 
&
D D D
* * * 
&
B B B4 
&.: : :
 
")
5 5 5
 
")
2 2 20 
")
  0 
")
/ / / 
&.	( 	( 	( 
")
	2 	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 
")
  ( 
")/   
")/  $ 
")
+ + + 
")
   
")
  $ 
")
#$$  %$ 
")
#$$  %$$ 
")
    
")
   " 
").  ( 
").  $ 
").  , 
").  "  : 
&.$ $ $ 
")
$ $ $ 
")
    ! & 
").   
")/  " 
")
P P P Pl 
")
  J J J ! J` 
")
   
")
( ( ( (V      2 
")
())) ) *)) 
")
())   *)> / / /" % % % % %r   