+
    i&  c                   sV  a  R_ tg0 t . R`Ot^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RI
HtHtHt ^ RIHtHt ^ RIHtHtHtHtHtHtHtHtHt ^ RIHtHtHtHtHtHtH t H!t!H"t"H#t# ^ R	I$H%t% ^ R
I&H't' ^ RI(H)t)H*t*H+t+ ]! R4      t,]t- ! R R].4      t/R t0RaR lt1R t2RaR lt3R t4R t5R t6RbR lt7R t8R t9RaR lt:RaR lt;RaR lt<RaR lt=R t>RR/R lt?]*! R Rc4      t@R!R"/R# ltA/ tBR$ tC]C! R%R&4      R' 4       tD]C! R(4      R) 4       tE]C! R*4      R+ 4       tF]C! R,R-4      R. 4       tG]C! R/4      R0 4       tH]C! R1R24      R3 4       tIRdR4 ltJR5 tK]C! R6R74      R8 4       tLR9 tM]C! R:4      R; 4       tN]C! R<4      R= 4       tOACADAEAFAGAHAIALANAOReR>R"/R? lltPReR@R/RA lltQRB^RRC/RD ltR ! RE R 4      tSRF tTRaRG ltURH tVRI tWRJ tXRK tYRfRL ltZRMRRNR"RORPRQ^/RR RS llt[RT RU lt\^]P                  P                  ,          ^,           t_] ^ k RV RW lt`RX RY ltaRZ tbR[ R\ ltcR] td ^ R^IeHdtd R#   ]f d     R# i ; i)g
NormalDistStatisticsErrorNFraction)Decimal)countgroupbyrepeat)bisect_leftbisect_right)	hypotsqrtfabsexperfctaulogfsumsumprod)
isfiniteisinfpicossintancoshasinatanacos)reduce)
itemgetter)Counter
namedtupledefaultdict       @c                   s    ] tR t^tRtR# )r    N)__name__
__module____qualname____firstlineno____static_attributes__r#       #/usr/lib64/python3.14/statistics.pyr   r      s    r)   c                 sf    \        V 4      w  rpV^8  d   \        R4      h\        W#,          V4      # )   z%mean requires at least one data point)_sumr   _convert)dataTtotalns   &   r*   meanr2      s3    " t*KAa1uEFFEIq!!r)   c           
      s   Vf3    \        V 4      p\        V 4      pV'       g   \        R4      hW2,          # \        V\        \        34      '       g   \        V4      p \        W4      p\        T4      pT'       g   \        R4      hYV,          #   \         d@    \        4       p\        \	        \        ^ 4      \        Y4      4      4      p\        T4      p Li ; i  \         d    \        R4      hi ; i)Nz&fmean requires at least one data pointz(data and weights must be the same lengthzsum of weights must be non-zero)lenr   	TypeErrorr   mapr   zipZnextr   
isinstancelistZtupler   
ValueError)r.   weightsr1   r0   Zcounternumdens   &&     r*   fmeanr=      s     	D	A JE!"JKKyge}--w-Jd$ w-C?@@95  	gGZ]C,>?@EWA		$  JHIIJs   B C ACCC4c                 sZ  aa ^ oRoVV3R lp\        \        \        V! V 4      4      4      pS'       g   \        R4      h\        P
                  ! V4      '       d   \        P                  # S'       d(   V\        P                  8X  d   \        P                  # R# \        VS,          4      # )    Fc              3   s   <"   \        V ^R7       FD  w  opVR8  g   \        P                  ! V4      '       d   Vx  K/  VR8X  d   RoK:  \        RV4      h	  R# 5i)r+   start        TzNo negative inputs allowedN)Z	enumeratemathisnanr   )Ziterablex
found_zeror1      & r*   count_positiveZ&geometric_mean.<locals>.count_positive   sM     ha0DAq3w$**Q--c!
%&BAFF 1s
   6A!AzMust have a non-empty datasetrA   )	r   r5   r   r   rB   rC   ZnanZinfr   )r.   rG   r0   rE   r1   s   &  @@r*   geometric_meanrH      s     	
AJG S../0E=>>zz%xx DHH,txx5#5uqy>r)   c                 s   \        V 4      V J d   \        V 4      p R p\        V 4      pV^8  d   \        R4      hV^8X  dS   VfO   V ^ ,          p\	        V\
        P                  \        34      '       d   V^ 8  d   \        V4      hV# \        R4      hVf   \        ^V4      pTpMS\        V4      VJ d   \        V4      p\        V4      V8w  d   \        R4      h\        R \        W4       4       4      w  rep \        W4      p \        R \        W4       4       4      w  rxp	T^ 8:  d   \        R4      h\        YX,          T4      #   \         d     ^ # i ; i)z.harmonic mean does not support negative valuesz.harmonic_mean requires at least one data pointzunsupported typez*Number of weights does not match data sizec              3   s$   "   T F  qx  K  	  R # 5iNr#   ).0w   & r*   	<genexpr> harmonic_mean.<locals>.<genexpr>9  s      G,Fq,Fs   c              3   sJ   "   T F  w  rV'       d	   W,          M^ x  K  	  R# 5ir>   Nr#   )rJ   rK   rD      &  r*   rM   rN   =  s     P=OTQquq0=O   !#zWeighted sum must be positive)iterr8   r3   r   r7   numbersZRealr   r4   r   r,   	_fail_negr6   ZeroDivisionErrorr-   )
r.   r:   errmsgr1   rD   Zsum_weights_r/   r0   r   s
   &&        r*   harmonic_meanrX     sD   0 DzTDz=FD	A1uNOO	
aGOGa',,0111u%f--H.//A,=G#7mGw<1!"NOO  GIg,F GG&PS=OPP% z=>>K'++  s   :)E EEc                 s    \        V 4      p \        V 4      pV^ 8X  d   \        R4      hV^,          ^8X  d   W^,          ,          # V^,          pW^,
          ,          W,          ,           ^,          # r>   no median for empty datasortedr3   r   )r.   r1   irP   r*   medianr^   G  sa     $<DD	AAv8991uzF|FUdg%**r)   c                 s    \        V 4      p \        V 4      pV^ 8X  d   \        R4      hV^,          ^8X  d   W^,          ,          # W^,          ^,
          ,          # rY   r[   r.   r1   rL   r*   
median_lowr`   _  sQ     $<DD	AAv8991uzF|FQJr)   c                 sp    \        V 4      p \        V 4      pV^ 8X  d   \        R4      hW^,          ,          # rY   r[   r_   rL   r*   median_highra   x  s5     $<DD	AAv899Q<r)   c                 s~   \        V 4      p \        V 4      pV'       g   \        R 4      hW^,          ,          p\        W4      p\	        WVR7      p \        V4      p\        V4      pY1R,          ,
          pTpYT,
          pYaT^,          T,
          ,          T,          ,           #   \         d    \        R4      hi ; i)rZ   )Zloz$Value cannot be converted to a floatr"   )r\   r3   r   r   r	   floatr9   r4   )	r.   Zintervalr1   rD   r]   jZLZcff	   &&       r*   median_groupedrf     s    V $<DD	A899 	!VA 	DAT#AA?!H 	
sNA	
B	A1q52:&***  A>@@As   B% %B<c                 s    \        \        V 4      4      P                  ^4      p V^ ,          ^ ,          #   \         d    \	        R4      Rhi ; i)r+   zno mode for empty dataN)r   rR   Zmost_commonZ
IndexErrorr   )r.   ZpairsrL   r*   moderg     sP    . DJ++A.EBQx{ B67TABs	   5 Ac                 s    \        \        V 4      4      pV'       g   . # \        VP                  4       4      pVP	                  4        UUu. uF  w  r4WB8X  g   K  VNK  	  upp# u uppi rI   )r   rR   Zmaxvaluesitems)r.   ZcountsZmaxcountvaluer   s   &    r*   	multimoderk     sQ     T$Z F	6==?#H&,llnJnle8IEEnJJJs   
A$A$c                 st    \        W4      w  r#rEV^8  d   \        R4      h\        W5^,
          ,          V4      # )   z*variance requires at least two data points_ssr   r-   )r.   xbarr/   sscr1      &&    r*   variancers     s8    P d/KA11uJKKBa%L!$$r)   c                 sf    \        W4      w  r#rEV^8  d   \        R4      h\        W5,          V4      # )r+   z*pvariance requires at least one data pointrm   )r.   mur/   rp   rq   r1   rr   r*   	pvarianceru   6  s4    J d-KA11uJKKBFAr)   c                 s   \        W4      w  r#rEV^8  d   \        R4      hW5^,
          ,          p VP                  pVP                  p\        T\        4      '       d   \        Yx4      # \        Yx4      #   \         d    \        R4      hi ; i)rl   'stdev requires at least two data pointsinf or nan encountered in data
rn   r   	numeratordenominatorAttributeErrorr9   
issubclassr   _decimal_sqrt_of_frac_float_sqrt_of_frac)	r.   ro   r/   rp   rq   r1   mssmss_numeratormss_denominatorre   r*   stdevr   a  s     d/KA11uGHH
A,C;// !W$]DD}>>	  ;9::;s   A5 5Bc                 s   \        W4      w  r#rEV^8  d   \        R4      hW5,          p VP                  pVP                  p\        T\        4      '       d   \        Yx4      # \        Yx4      #   \         d    \        R4      hi ; i)r+   z'pstdev requires at least one data pointrw   rx   )	r.   rt   r/   rp   rq   r1   r   r   r   re   r*   pstdevr   x  s     d-KA11uGHH
&C;// !W$]DD}>>	  ;9::;s   A. .Bc                s  aa \        V 4      p\        V4      V8w  d   \        R 4      hV^8  d   \        R4      h\        V 4      V,          o\        V4      V,          o\        V3R lV  4       V3R lV 4       4      pW2^,
          ,          # )zDcovariance requires that both inputs have same number of data pointsz,covariance requires at least two data pointsc              3   4   <"   T F  qS,
          x  K  	  R # 5irI   r#   )rJ   xiro      & r*   rM   covariance.<locals>.<genexpr>  s     )q99q   c              3   r   rI   r#   rJ   yiybarr   r*   rM   r     s     +B"IIr   )r3   r   r   r   )rD   yr1   sxyro   r   s   ""  @@r*   
covariancer     sv    $ 	AA
1v{dee1uLMM7Q;D7Q;D
)q)+B+B
CCa%=r)   methodlinearc               sR   \        V 4      p\        V4      V8w  d   \        R 4      hV^8  d   \        R4      hVR9  d   \        RV: 24      hVR8X  d*   V^,
          R,          p\        WR7      p \        WR7      pMR\	        V 4      V,          p\	        V4      V,          pV  Uu. uF  qwV,
          NK  	  p pV Uu. uF  qV,
          NK  	  pp\        W4      p	\        W 4      p
\        W4      p V	\        W4      ,          # u upi u upi   \         d    \        R4      hi ; i)zEcorrelation requires that both inputs have same number of data pointsz-correlation requires at least two data pointsrankedUnknown method: r?   z&at least one of the inputs is constant>   r   r   )r3   r   r9   _rankr   r   	_sqrtprodrU   )rD   r   r   r1   r@   ro   r   r   r   r   sxxZsyys   ""$         r*   correlationr     s    4 	AA
1v{eff1uMNN))+F:677Q"!!!! Aw{Aw{!"#2$YY#!"#2$YY#
!-C
!-C
!-CHYs((( $#  HFGGHs   'D>D
3D D&LinearRegressionproportionalFc               s  a
 \        V 4      p\        V4      V8w  d   \        R 4      hV^8  d   \        R4      hV'       gH   \        V 4      V,          p\        V4      V,          o
V  Uu. uF  qUV,
          NK  	  p pV
3R lV 4       p\        W4      R,           p\        W 4      p Wg,          pT'       d   RMS
TX,          ,
          p	\        YR7      # u upi   \         d    \        R4      hi ; i)zKlinear regression requires that both inputs have same number of data pointsz3linear regression requires at least two data pointsc              3   r   rI   r#   r   r   r*   rM   Z$linear_regression.<locals>.<genexpr>  s     #2$YYr   rA   zx is constantslope	intercept)r3   r   r   r   rU   r   )rD   r   r   r1   ro   r   r   r   r   r   r   s   ""$       @r*   linear_regressionr     s    N 	AA
1v{kll1uSTTAw{Aw{!"#2$YY###
!-#
C
!-C/	 $)<I%== $  /o../s   *C'C C1c                  s   a  V 3R  lpV# )c                 s`   < \        \        RV ! 4       4      4      pS F  pV\        V&   K  	  V # )pdfr   cdfinvcdfsupport)Zdictr6   _kernel_specs)ZbuilderZspeckernelkernelss   &  r*   decoZregister.<locals>.deco-  s0    C;WYGHF$(M&! r)   r#   )r   r   s   j r*   registerr   +  s    
 Kr)   normalZgaussc                  st   aa \        ^\        ,          4      o\        ^4      ) oV3R lp V3R lpR pRpWW#3# )rl   c                 sD   < \        RV ,          V ,          4      S,          # )r+         ࿩r   )tsqrt2pi   &r*   <lambda>normal_kernel.<locals>.<lambda>8  s    Cq1%/r)   c                 s6   < R\        V S,          4      ,          # r+         ?)r   )r   	neg_sqrt2r   r*   r   r   9  s    C$q9}--r)   c                 s    \        V R R4      # rA         ?_normal_dist_inv_cdfr      &r*   r   r   :  s    +AsC8r)   N)r   r   )r   r   r   r   r   r          @@r*   normal_kernelr   4  s:    1r6lGaI
/C
-C8FGV$$r)   Zlogisticc                       R  p R pR pRpWW#3# )c                 s4    RR\        V 4      ,           ,          # )r+   r   r   r   r   r   r*   r   !logistic_kernel.<locals>.<lambda>A  s    C3a=)r)   c                 sB    R R \        V 4      R ,           ,          ,
          # r   r   r   r   r*   r   r   B  s    C#Q#..r)   c                 s4    \        V R V ,
          ,          4      # r   )r   pr   r*   r   r   C  s    s1a=)r)   Nr#   r          r*   logistic_kernelr   >  s#     *C
.C)FGV$$r)   Zsigmoidc                  s   aaa ^\         ,          o^\         ,          o\         ^,          oV3R lp V3R lpV3R lpRpWW#3# )r+   c                 s(   < S\        V 4      ,          # rI   r   )r   c1r   r*   r    sigmoid_kernel.<locals>.<lambda>M  s    BaLr)   c                 s:   < S\        \        V 4      4      ,          # rI   )r   r   r   c2r   r*   r   r   N  s    Bc!f%r)   c                 s:   < \        \        V S,          4      4      # rI   )r   r   )r   c3r   r*   r   r   O  s    s3q2v;'r)   Nr   )r   r   r   r   r   r   r   s       @@@r*   sigmoid_kernelr   G  s?     
RB	
RB	aB
 C
%C'FGV$$r)   ZrectangularZuniformc                  r   )c                 s    R# r   r#   r   r   r*   r   $rectangular_kernel.<locals>.<lambda>U  s    Cr)   c                 s"    RV ,          R,           # r   r#   r   r   r*   r   r   V  s    C!GcMr)   c                 s"    R V ,          R,
          # r"   r   r#   r   r   r*   r   r   W  s    sQw}r)   r   r#   r   r   r*   rectangular_kernelr   S  s!    
C
!C$FGV$$r)   Z
triangularc                  r   )c                 s&    R \        V 4      ,
          # r   Zabsr   r   r*   r   #triangular_kernel.<locals>.<lambda>]  s    C#a&Lr)   c                 sN    W ,          V R 8  d   RMR,          V ,           R,           # )rA   r   r   r#   r   r   r*   r   r   ^  s    AC!c'3t4q83>r)   c                 s    V R8  d   \        RV ,          4      R,
          # R\        RRV ,          ,
          4      ,
          # )r+   r"   r   r   )r   r   r   r*   r   r   _  s1    AGtCE{S(PtC#a%K?P9PPr)   r   r#   r   r   r*   triangular_kernelr   [  s!    
 C
>CPFGV$$r)   Z	parabolicZepanechnikovc                  r   )c                 s.    RRW ,          ,
          ,          # )   r         ?r#   r   r   r*   r   "parabolic_kernel.<locals>.<lambda>e  s    C3;'r)   c                 s.    \        RV ^,          V R34      # )r+   r   )g      пr   r   r   r   r   r*   r   r   f  s    G,q!tQn=r)   c                 sx    R \        \        R V ,          R,
          4      \        ,           R,          4      ,          # )r"   r   g      @)r   r   r   r   r   r*   r   r   g  s%    sS$s1us{"3b"8C!?@@r)   r   r#   r   r   r*   parabolic_kernelr   c  s!    
'C
=C@FGV$$r)   c                 s    a aaa VV VV3R  lpV# )c                 s   < S! V 4      p\        S! V4      V ,
          ;p4      S8  d   WS! V4      ,          ,          pK6  V# rI   r   )r   rD   diffrd   f_inv_estimatef_prime	tolerances   &  r*   f_invZ_newton_raphson.<locals>.f_invl  s=    1!A$("$#i/
""Ar)   r#   )r   rd   r   r   r   s   ffff r*   _newton_raphsonr   k  s      Lr)   c                 s   V R
8:  d   RV 3M
RRV ,
          3w  rV R8  d   RV ,          R,          R,
          V,          # RV ,          R,          R,
          pV R8  d(   VR\        RV ,          R	,           4      ,          ,          pW!,          # )r+   r   ggs?r"   gq-?g鼹A?V-?gMp^v?g$2h@g_@r         r   r   ZsignrD   rP   r*   _quartic_invcdf_estimater   t  s|    s(sAhsQwGD6zqV#c)T11	q_$s*A5y	[3{Q1AABBB8Or)   ZquarticZbiweightc                  <    R  p R p\        \        WR7      pRpWW#3# )c                 s<    RRW ,          ,
          ^,          ,          # )i   r         ?r#   r   r   r*   r    quartic_kernel.<locals>.<lambda>      ES15[Q..r)   c                 s>    \        RV ^,          V ^,          V R34      # )r   r   )g      ?g      r   r   r   r   r   r*   r   r     s     G4T1a4C02r)   rd   r   r   )r   r   r   r   r*   quartic_kernelr   ~  s+    
.C2C5JFGV$$r)   c                 s   V R	8:  d   RV 3M
R
RV ,
          3w  rRV ,          R,          R,
          pRT u;8  d   R8  d=   M	 W!,          # VR\        R\        ,          V R,
          ,          4      ,          ,          pW!,          # )r+   r   r"   gc?gh㈵>r   gL7A`?gQ?gQ?r   r   )r   r   r   rP   r*   _triweight_invcdf_estimater     so    s(sAhsQwGD	q''#-AU8O 	
USq5y12228Or)   Z	triweightc                  r   )c                 s<    RRW ,          ,
          ^,          ,          # )i#   r        ?r#   r   r   r*   r   "triweight_kernel.<locals>.<lambda>  r   r)   c                 sN    \        RV ^,          V ^,          V ^,          V R34      # )i   r   )g      Ŀg      ?g     r   r   r   r   r   r*   r   r     s&    G>T1a4Aq#68r)   r   r   )r   r   r   r   r*   triweight_kernelr     s+    
.C8C73LFGV$$r)   Zcosinec                  sf   aa \         ^,          o\         ^,          oVV3R lp V3R lpR pRpWW#3# )   c                 s6   < S\        SV ,          4      ,          # rI   )r   )r   r   r   s   &r*   r   cosine_kernel.<locals>.<lambda>  s    BR!V$r)   c                 sD   < R\        SV ,          4      ,          R,           # r   r   r   r   r*   r   r     s    C#b1f+%+r)   c                 sX    R \        R V ,          R,
          4      ,          \        ,          # r   )r   r   r   r   r*   r   r     s    sT#'C-0025r)   r   r   )r   r   r   r   r   r   r   r*   cosine_kernelr     s4    	aB	aB
$C
+C5FGV$$r)   
cumulativec                s,  a aaa	a
aa \        S 4      oS'       g   \        R 4      h\        S ^ ,          \        \        34      '       g   \        R4      hSR8:  d   \        RS: 24      h\        P                  V4      pVf   \        RV: 24      hVR,          oVR,          o	VR,          pVf   VV V3R lpV	V V3R	 lpM*\        S 4      oSV,          o
VV
V VVV3R
 lpV	V
V VVV3R lpV'       d   RS: RV: 2Vn	        V# RS: RV: 2Vn	        V# )Empty data sequence)Data sequence must contain ints or floatsrA   $Bandwidth h must be positive, not h=Unknown kernel name: r   r   r   c                 sb   <a  \        VVV 3R  lS 4       4      \        S4      S,          ,          # )c              3   P   <"   T F  pS! SV,
          S,          4      x  K  	  R # 5irI   r#   rJ   x_iKhrD      & r*   rM   #kde.<locals>.pdf.<locals>.<genexpr>  !     84Cq!c'Q''4   #&sumr3   )rD   r   r.   r      fr*   r   kde.<locals>.pdf  s!    8488CIMJJr)   c                 sT   <a  \        VVV 3R  lS 4       4      \        S4      ,          # )c              3   r   rI   r#   rJ   r   Wr   rD   r   r*   rM   #kde.<locals>.cdf.<locals>.<genexpr>"  r   r   r   )rD   r   r.   r   r   r*   r   kde.<locals>.cdf!  s    84883t9DDr)   c                 s   <a  \        S4      S8w  d   \        S4      o	\        S4      o\        S	S S,
          4      p\        S	S S,           4      pS	W p\	        VVV 3R  lV 4       4      SS,          ,          # )c              3   r   rI   r#   r   r   r*   rM   r   1  s!     =9Cq!c'Q''9r   r3   r\   r   r	   r   )
rD   r]   rc   	supportedr   	bandwidthr.   r   r1   sample
   f   r*   r   r   )  sc    4yA~IFA	M2AVQ]3AqI=9==QGGr)   c                 s   <a  \        S4      S8w  d   \        S4      o	\        S4      o\        S	S S,
          4      p\        S	S S,           4      pS	W p\	        VVV 3R  lV 4       V4      S,          # )c              3   r   rI   r#   r   r   r*   rM   r  ;  s!     >IS1s7a-((Ir   r  )
rD   r]   rc   r  r   r  r.   r   r1   r  r  r*   r   r  3  sa    4yA~IFA	M2AVQ]3AqI>I>BQFFr)   zCDF estimate with h= and kernel=zPDF estimate with h=)
r3   r   r7   intrb   r4   r   getr\   __doc__)r.   r   r   r   kernel_specr   r   r   r   r   r  r1   r  s   ff&$    @@@@@r*   kder    s   H 	D	A344d1gU|,,CDDCx E1&IJJ##F+K 5fZ@AAEAEA)$G	K	E 	E
 K		H 	H	G 	G -1&f[A
 .1&f[A
r)   seedc                s  a aaa	a
 \        S 4      pV'       g   \        R 4      h\        S ^ ,          \        \        34      '       g   \        R4      hSR8:  d   \        RS: 24      h\        P                  V4      pVf   \        RV: 24      hVR,          o	\        P                  V4      pVP                  o
VP                  oVV VV	V
3R lpRS: RV: 2Vn        V# )	r   r   rA   r   r   r   c                  sF   < S ! S4      SS! S! 4       4      ,          ,           # rI   r#   )choicer.   r   r   randoms   r*   randZkde_random.<locals>.randk  s    d|a&"2222r)   zRandom KDE selection with h=r  )r3   r   r7   r	  rb   r4   r   r
  _randomRandomr  r  r  )r.   r   r   r  r1   r  Zprngr  r  r   r  s   ff&$    @@@r*   
kde_randomr  F  s    $ 	D	A344d1gU|,,CDDCx E1&IJJ##F+K 5fZ@AA"F>>$D[[F[[F3 3 3v]6+FDLKr)   r1   	exclusivec                s.   V^8  d   \        R4      h\        V 4      p \        V 4      pV^8  d"   V^8X  d   W^,
          ,          # \        R4      hVR8X  d}   V^,
          p. p\        ^V4       F_  p\	        Wd,          V4      w  rxW,          W,
          ,          W^,           ,          V,          ,           V,          p	VP                  V	4       Ka  	  V# VR8X  d   V^,           p. p\        ^V4       F  pWd,          V,          pV^8  d   ^MWs^,
          8  d
   V^,
          MTpWd,          Wq,          ,
          pW^,
          ,          W,
          ,          W,          V,          ,           V,          p	VP                  V	4       K  	  V# \        RV: 24      h)r+   zn must be at least 1z!must have at least one data pointZ	inclusiver  r   )r   r\   r3   rangeZdivmodZappendr9   )
r.   r1   r   Zldmresultr]   rc   ZdeltaZinterpolateds
   &$$       r*   	quantilesr    s\   " 	1u455$<D	TB	Av7q5>!ABBFq!AaeQ'HA Gqy1DQK%4GG1LLMM,'  Fq!A
AUqD1aAC!#IE QK195%G1LLMM,'  
'z2
33r)   c                   s  a  ] tR tRt o RRRR/tR#R lt]R 4       tRR	/R
 ltR t	R t
R tR$R ltR tR t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       tR tR tR tR tR tR t]tR t]tR tR tR t R  t!R! t"R"t#V t$R	# )%r    i  _muz(Arithmetic mean of a normal distribution_sigmaz+Standard deviation of a normal distributionc                sj    VR 8  d   \        R4      h\        V4      V n        \        V4      V n        R# )rA   zsigma must be non-negativeN)r   rb   r  r  )selfrt   sigmas   &&&r*   __init__ZNormalDist.__init__  s+    3;!">??9Elr)   c                s     V ! \        V4      !  # rI   )_mean_stdev)Zclsr.      &&r*   from_samplesZNormalDist.from_samples  s     K%&&r)   r  Nc               s    Vf   \         P                   M\         P                  ! V4      P                   p\        pV P                  pV P                  p\        R V4       Uu. uF  qt! V! 4       WV4      NK  	  up# u upi rI   )r  r  r   r  r  r   )r  r1   r  Zrndinv_cdfrt   r  rW   s   &&$     r*   samplesZNormalDist.samples  s^    #|fmmt1D1K1K&XX39$?C?ar)?CCCs   !A:c                s    V P                   V P                   ,          pV'       g   \        R 4      hWP                  ,
          p\        W3,          RV,          ,          4      \	        \
        V,          4      ,          # )z$pdf() not defined when sigma is zerog       )r  r   r  r   r   r   )r  rD   rs   r   s   &&  r*   r   ZNormalDist.pdf  sR    ;;,!"HII88|4;$/23d3>6JJJr)   c                s    V P                   '       g   \        R 4      hR\        V P                  V,
          V P                   \        ,          ,          4      ,          # )z$cdf() not defined when sigma is zeror   )r  r   r   r  _SQRT2r  rD   r   r*   r   ZNormalDist.cdf  s=    {{{!"HIIT488a<DKK&,@ABBBr)   c                st    VR 8:  g   VR8  d   \        R4      h\        WP                  V P                  4      # )rA   r   z$p must be in the range 0.0 < p < 1.0)r   r   r  r  )r  r   r   r*   r"  ZNormalDist.inv_cdf  s2     8qCx!"HII#Axx==r)   c                sl    \        ^V4       Uu. uF  q P                  W!,          4      NK  	  up# u upi r+   )r  r"  )r  r1   r]      && r*   r  ZNormalDist.quantiles  s+     .31a[9[QU#[999s   1c           	     s   \        V\        4      '       g   \        R 4      hYr2VP                  VP                  3VP                  VP                  38  d   Y2r2VP
                  VP
                  rTV'       d	   V'       g   \        R4      hWT,
          p\        VP                  VP                  ,
          4      pV'       g/   \        VRVP                  ,          \        ,          ,          4      # VP                  V,          VP                  V,          ,
          pVP                  VP                  ,          \        Ww,          V\        WT,          4      ,          ,           4      ,          p	W,           V,          p
W,
          V,          pR\        VP                  V
4      VP                  V
4      ,
          4      \        VP                  V4      VP                  V4      ,
          4      ,           ,
          # )z$Expected another NormalDist instancez(overlap() not defined when sigma is zeror"   r   )r7   r    r4   r  r  rs   r   r   r   r$  r   r   r   )r  ZotherZXZYZX_varZY_varZdvdmaZbx1x2s   &&          r*   overlapZNormalDist.overlap  sI     %,,BCC1HHaee!%%00qzz1::uE!"LMM]!%%!%%- cAHHnv5677EEEMAEEEM)HHqxx$rwc%-6H1H'H"IIer\er\d1559quuRy01DrQUU2Y9N4OOPPr)   c                s    V P                   '       g   \        R 4      hWP                  ,
          V P                   ,          # )z'zscore() not defined when sigma is zero)r  r   r  r%  r   r*   zscoreZNormalDist.zscore3  s.     {{{!"KLLHH++r)   c                    V P                   # rI   r  r  r   r*   r2   ZNormalDist.mean>       xxr)   c                r.  rI   r/  r0  r   r*   r^   ZNormalDist.medianC  r1  r)   c                r.  rI   r/  r0  r   r*   rg   ZNormalDist.modeH  s     xxr)   c                r.  rI   r  r0  r   r*   r   ZNormalDist.stdevQ  s     {{r)   c                s<    V P                   V P                   ,          # rI   r2  r0  r   r*   rs   ZNormalDist.varianceV  s     {{T[[((r)   c                s   \        V\        4      '       dF   \        V P                  VP                  ,           \        V P                  VP                  4      4      # \        V P                  V,           V P                  4      # rI   r7   r    r  r
   r  r*  r+  r   r*   __add__ZNormalDist.__add__[  R     b*%%bffrvvouRYY		/JKK"&&2+ryy11r)   c                s   \        V\        4      '       dF   \        V P                  VP                  ,
          \        V P                  VP                  4      4      # \        V P                  V,
          V P                  4      # rI   r3  r4  r   r*   __sub__ZNormalDist.__sub__i  r6  r)   c                sp    \        V P                  V,          V P                  \        V4      ,          4      # rI   r    r  r  r   r4  r   r*   __mul__ZNormalDist.__mul__w  &     "&&2+ryy48';<<r)   c                sp    \        V P                  V,          V P                  \        V4      ,          4      # rI   r8  r4  r   r*   __truediv__ZNormalDist.__truediv__  r:  r)   c                sB    \        V P                  V P                  4      # rI   r    r  r  r*  r   r*   __pos__ZNormalDist.__pos__  s    "&&")),,r)   c                sD    \        V P                  ) V P                  4      # rI   r<  r=  r   r*   __neg__ZNormalDist.__neg__  s    266'299--r)   c                s    W,
          ) # rI   r#   r4  r   r*   __rsub__ZNormalDist.__rsub__  s    zr)   c                s    \        V\        4      '       g   \        # V P                  VP                  8H  ;'       d    V P                  VP                  8H  # rI   )r7   r    ZNotImplementedr  r  r4  r   r*   __eq__ZNormalDist.__eq__  s=    "j))!!vv::BII$::r)   c                sD    \        V P                  V P                  34      # rI   )Zhashr  r  r0  r   r*   __hash__ZNormalDist.__hash__  s    TXXt{{+,,r)   c                sj    \        V 4      P                   R V P                  : RV P                  : R2# )z(mu=z, sigma=Z))typer$   r  r  r0  r   r*   __repr__ZNormalDist.__repr__  s.    t*%%&d488,ht{{oQOOr)   c                s2    V P                   V P                  3# rI   r  r  r0  r   r*   __getstate__ZNormalDist.__getstate__  s    xx$$r)   c                s$    Vw  V n         V n        R # rI   rE  )r  Zstater   r*   __setstate__ZNormalDist.__setstate__  s     %$+r)   rE  r   )r   )%r$   r%   r&   r'   Z	__slots__r  Zclassmethodr!  r#  r   r   r"  r  r,  r-  Zpropertyr2   r^   rg   r   rs   r5  r7  r9  r;  r>  r?  Z__radd__r@  Z__rmul__rA  rB  rD  rF  rG  r(   Z__classdictcell__)Z__classdict__   @r*   r    r      s     	9?I
# ' 'D DKC>	: QD	,         ) )22==-. H H;-P%& &r)   c                 s   ^ p\        4       pVP                  p/ pVP                  p\        V \        4       FA  w  rgV! V4       \        \        V4       F   w  rV^,          pV! V	^ 4      V,           WI&   K"  	  KC  	  RV9   d   VR,          p
M \        R VP                  4        4       4      p
\        \        V\        4      pWV3# )r>   Nc              3   <   "   T F  w  r\        W!4      x  K  	  R # 5irI   r   rJ   dr1   rP   r*   rM   Z_sum.<locals>.<genexpr>  s     @/?tqHQNN/?   )setaddr
  r   rC  r5   _exact_ratior   ri   r   _coercer	  )r.   r   types	types_addZpartialsZpartials_gettyprh   r1   rK  r0   r/   s   &           r*   r,   r,     s    B EEE		IH<<LtT*#f-DAQJE&q!,q0HK . + x  @x~~/?@@ws#Aer)   c                 s  aa Se   \        VV3R lV  4       4      w  r#pW#SV3# ^ p\        4       pVP                  p\        \        4      p\        \        4      p\        V \        4       F`  w  rV! V	4       \        \        V
4       F?  w  poV^,          pVS;;,          V,          uu&   VS;;,          W,          ,          uu&   KA  	  Kb  	  V'       g   \        ^ 4      ;poMwR V9   d   VR ,          ;poMd\        R VP                  4        4       4      p\        R VP                  4        4       4      pWM,          W,          ,
          V,          pW,          o\        \        V\        4      pW#SV3# )Nc              3   sF   <"   T F  qS,
          ;oS,          x  K  	  R # 5irI   r#   )rJ   rD   rq   rK  rF   r*   rM   _ss.<locals>.<genexpr>  s     <t!q5jaA--ts   !c              3   rI  rI   r   rJ  rP   r*   rM   rT    s     @,?DA!,?rL  c              3   sJ   "   T F  w  r\        W!V,          4      x  K  	  R # 5irI   r   rJ  rP   r*   rM   rT    s      D/Ctq(1c""/CrQ   )r,   rM  rN  r!   r	  r   rC  r5   rO  r   r   ri   r   rP  )r.   rq   r/   Zssdr   rQ  rR  Zsx_partialsZsxx_partialsrS  rh   r1   Zsxr   rK  s   &f            @r*   rn   rn     sA    	}<t<<5!!EEE		Ic"Ks#LtT*#f-DAqQJENaNOqu$O . + 1+a		 d##a @K,=,=,?@@D|/A/A/CDD {RW$-Jws#AAur)   c                 sr     V P                  4       #   \         d    \        P                  ! T 4      u # i ; irI   )Z	is_finiter{   rB   r   )rD   r   r*   	_isfiniterU    s1     {{}  }}Q s    !66c                 s
   WJ d   V # V\         J g   V\        J d   V # V \         J d   V# \        W4      '       d   V# \        W4      '       d   V # \        V \         4      '       d   V# \        V\         4      '       d   V # \        V \        4      '       d   \        V\        4      '       d   V# \        V \        4      '       d   \        V\        4      '       d   V # R p\        W P                  VP                  3,          4      h)z"don't know how to coerce %s and %s)r	  Zboolr|   r   rb   r4   r$   )r/   ZSmsgr'  r*   rP  rP    s     	vqCx19axCx(!(!(!S1H!S1H!X:a#7#7!U
1h 7 7
.C
C::qzz22
33r)   c                 s
    V P                  4       #   \         d     M\        \        3 d    T R 3u # i ; i T P                  T P
                  3#   \         d&    R\        T 4      P                   R2p\        T4      hi ; i)Nzcan't convert type 'z' to numerator/denominator)	as_integer_ratior{   ZOverflowErrorr9   ry   rz   rC  r$   r4   )rD   rV  rL   r*   rO  rO  =  s    !!## :&  4y
Q]]++ $T!W%5%5$66PQns    6666A 0Bc                 s2   \        V 4      VJ d   V # \        V\        4      '       d   V P                  ^8w  d   \        p V! V 4      #   \
         dD    \        T\        4      '       d,   T! T P                  4      T! T P                  4      ,          u # h i ; ir&  )rC  r|   r	  rz   rb   r4   r   ry   )rj   r/   r   r*   r-   r-   W  s    E{a !Se//14x a!!U__%%*;*;(<<<	s    A A
BBc              #   sL   "   V  F  pV^ 8  d   \        V4      hVx  K  	  R# 5irO   )r   )rh   rV   rD   r'  r*   rT   rT   k  s&     q5!&)) s   "$keyreversetiesaverager@   c                s:    V ^8  d   QhR\         \        ,          /# )rl   return)r8   rb   Zformat   "r*   __annotate__r_  s  s     3 34PU; 3r)   c               s   VR 8w  d   \        RV: 24      hVe   \        W4      p \        \        V \	        4       4      VR7      pV^,
          p^ .\        V4      ,          p\        V\        ^ 4      R7       FH  w  r\        V	4      p
\        V
4      pWk^,           ^,          ,           pV
 F	  w  rWV&   K  	  Wk,          pKJ  	  V# )r[  zUnknown tie resolution method: )rY  )rX  )	r9   r5   r\   r6   r   r3   r   r   r8   )r.   rX  rY  rZ  r@   Zval_posr]   r  rW   ZgZgroupZsizeZrankrj   Zorig_poss   "$$$$          r*   r   r   s  s    J y:4(CDD
3~Suw'9G	AS3w<FZ]3Q5z1H>!$OE#8  %		 4 Mr)   c                <    V ^8  d   QhR\         R\         R\         /# rl   r1   r  r\  )r	  r]  r^  r*   r_  r_    s!         r)   c                 sl    \         P                  ! W,          4      pW"V,          V,          V 8g  ,          # rI   )rB   Zisqrt)r1   r  r)  r'  r*   _integer_sqrt_of_frac_rtorb    s)     	

16A!A
r)   c                <    V ^8  d   QhR\         R\         R\        /# ra  )r	  rb   r]  r^  r*   r_  r_    s!     
# 
#3 
#3 
#5 
#r)   c                 s*   V P                  4       VP                  4       ,
          \        ,
          ^,          pV^ 8  d+   \        W^V,          ,          4      V,          p^pW4,          # \        V RV,          ,          V4      p^V) ,          pW4,          # )rl   r   )Z
bit_length_sqrt_bit_widthrb  )r1   r  qry   rz      &&   r*   r~   r~     s|     
!,,.	(?	:q@AAv-aa!e<A	 "" .a26k1=	A2g""r)   c                rc  ra  )r	  r   r]  r^  r*   r_  r_    s!      S S W r)   c                 sV   V ^ 8:  d   V '       g   \        R4      # V ) V) r\        V 4      \        V4      ,          P                  4       pVP                  4       w  r4VP                  4       pVP                  4       w  rg^V ,          WG,          ^,          ,          WV,          Ws,          ,           ^,          ,          8  d   V# VP	                  4       pVP                  4       w  r^V ,          WJ,          ^,          ,          WV	,          W,          ,           ^,          ,          8  d   V# V# )r>   z0.0)r   r   rW  Z	next_plusZ
next_minus)r1   r  ZrootZnrZdrZplusZnpZdpZminusZnmr(  s   &&         r*   r}   r}     s    
 	Av5>!rA21AJ#))+D""$FB>>D""$FB1uzAB 222OOE##%FB1uzAB 222Kr)   c                 s&   \        V 4      w  rr4V^8  d   \        R4      hW$^,
          ,          p \        V4      \        VP                  VP
                  4      3#   \         d*    \        T4      \        T4      \        T4      ,          3u # i ; i)rl   rv   )rn   r   rb   r~   ry   rz   r{   )r.   r/   rp   ro   r1   r   s   &     r*   r  r    s|    YNA41uGHH
A,C4T{/sOOO 4T{E$K%)3334s   *A 1BBc                r`  )rl   rD   r   r\  )rb   r]  r^  r*   r_  r_    s!       5 U r)   c                 s   \        W,          4      p\        V4      '       gW   \        V4      '       dD   \        V 4      '       g3   \        V4      '       g"   Rp\        W0,          W1,          4      V,          # V# V'       g4   V '       d*   V'       d"   Rp\        W0,          W1,          4      V,          # V# \	        W3W) 34      pW$R V,          ,          ,           # )r"   g      g      a)r   r   r   r   r   )rD   r   r   ZscalerK  rf  r*   r   r     s     	QUAA;;88E!HHU1XXEUY	2U:: EUY	2U:: 	B AC!G}r)   c                 s   V R ,
          p\        V4      R8:  d   RW3,          ,
          pRV,          R,           V,          R,           V,          R,           V,          R,           V,          R,           V,          R	,           V,          R
,           V,          pRV,          R,           V,          R,           V,          R,           V,          R,           V,          R,           V,          R,           V,          R,           pWV,          pWV,          ,           # VR8:  d   T MRV ,
          p\        \        V4      ) 4      pVR8:  d   VR,
          pRV,          R,           V,          R,           V,          R,           V,          R,           V,          R,           V,          R,           V,          R,           pRV,          R,           V,          R ,           V,          R!,           V,          R",           V,          R#,           V,          R$,           V,          R,           pMVR,
          pR%V,          R&,           V,          R',           V,          R(,           V,          R),           V,          R*,           V,          R+,           V,          R,,           pR-V,          R.,           V,          R/,           V,          R0,           V,          R1,           V,          R2,           V,          R3,           V,          R,           pWV,          pVR8  d   V) pWV,          ,           # )4r   g333333?gQ?g^}o)@gE.kR@g Ul@g*u>l@gN@g"]Ξ@gnC`@gu@giK~j@gv|E@gd|1@gfRr@gu.2@g~y@gn8(E@r   rA   g      @g?g鬷ZaI?ggElD?g7\?guSS?g=.@gj%b@gHw@gjRe?g9dh?>g('߿A?g~z ?g@3?gɅ3?g3fRx?gIFl @gt>g*Yn>gESB\T?gN;A+?gUR1?gEF?gPn@g&>@gi<g@F>gtcI,\>gŝI?g*F2v?gC4?gO1?)r   r   r   )r   rt   r  re  Zrr;   r<   rD   s   &&&     r*   r   r     s    	
CAAw%qu0140145601456 11 566 1	1 56	6
 11
 566 11 566 11 566 1140145601456 11 566 1	1 56	6
 11
 566 11 566  IY#X37Ac!fWACxG1A51256712567 22 677 2	2 67	7
 22
 677 22 677 22 2A51256712567 22 677 2	2 67	7
 22
 677 22 677  G1A51256712567 22 677 2	2 67	7
 22
 677 22 677 22 3Q61256712567 22 677 2	2 67	7
 22
 677 22 677  		A3wBUr)   r   c                s@    V ^8  d   Qh/ ^ \         9   d
   \        ;R&   # )rl   rd  )__conditional_annotations__r	  r]  r^  r*   r_  r_  k   s       N2 7 6 6O2r)   )r    r   r   r   r=   rH   rX   r  r  r   r2   r^   rf   ra   r`   rg   rk   r   ru   r  r   rs   rI   r   r   )g-q=)r   )znegative value)hrg  Z__all__rB   rS   r  ZsysZ	fractionsr   Zdecimalr   Z	itertoolsr   r   r   Zbisectr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Z	functoolsr   Zoperatorr   Zcollectionsr   r    r!   r$  r  r9   r   r2   r=   rH   rX   r^   r`   ra   rf   rg   rk   rs   ru   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,   rn   rU  rP  rO  r-   rT   r   rb  Z
float_infoZmant_digrd  r~   r}   r  r   r   Z_statisticsZImportErrorr_  )rg  rH  r*   <module>rh     s  V 2    
   , , , F F F K K K   8 8	c
	j 	".(V%P<,~+0 2&E+PB<K.+%\(V?.?2:4H8 4Hn 02HI <>u <>B  
(G% % 
*% % 
)	% 	% 
-#% $% 
,% % 
+~&% '% 
)Z % !% 
+% % 
(% % m_n)+;$m\ \~* *b04 04; 04j\& \&B7t,^ 4@4(3$ 3 3I 3Q 3l 3>>222Q6 6
#8
44K^	0 		s   H H('H(