
    z%i3                        U g d Z ddlZddlZddlZddlZddlmZ ddlmZ ddl	m
Z
mZmZ ddlmZmZ ddlmZmZmZmZmZmZmZmZmZ ddlmZ dd	lmZ dd
lmZmZm Z   ed      Z! G d de"      Z#d Z$dBdZ%d Z&d Z'd Z(d Z)dCdZ*dddddde+e,   fdZ-de.de.de.fdZ/dej`                  jb                  z  dz   Z2e.e3d <   de.de.de,fd!Z4de.de.defd"Z5d# Z6dBd$Z7d% Z8dBd&Z9d' Z:d( Z;d) Z<dDd*Z=d+ Z>d, Z?d-d.d/d0Z@dBd1ZAdBd2ZBdBd3ZCdBd4ZDd5 ZEd6 ZFd7d8d9ZG ed:d;      ZHdd<d=ZId> ZJ	 dd?lKmJZJ  G d@ dA      ZMy# eL$ r Y w xY w)E)
NormalDistStatisticsErrorcorrelation
covariancefmeangeometric_meanharmonic_meanlinear_regressionmeanmedianmedian_groupedmedian_high
median_lowmode	multimodepstdev	pvariance	quantilesstdevvariance    NFraction)Decimal)countgroupbyrepeat)bisect_leftbisect_right)	hypotsqrtfabsexperftaulogfsumsumprod)reduce)
itemgetter)Counter
namedtupledefaultdict       @c                       e Zd Zy)r   N)__name__
__module____qualname__     >/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/statistics.pyr   r      s    r3   r   c                 p   	 d}t               }|j                  }i }|j                  }t        | t              D ]9  \  }} ||       t        t        |      D ]  \  }}	|dz  } ||	d      |z   ||	<    ; d |v r|d    }
n t        d |j                         D              }
t        t        |t              }||
|fS )Nr      c              3   :   K   | ]  \  }}t        ||        y wNr   .0dns      r4   	<genexpr>z_sum.<locals>.<genexpr>   s     @tq!HQN@   )setaddgetr   typemap_exact_ratiosumitemsr(   _coerceint)datar   types	types_addpartialspartials_gettypvaluesr<   r;   totalTs               r4   _sumrR      s    > EEE		IH<<LtT* 1V#f- 	1DAqQJE&q!,q0HQK	11
 x  @x~~/?@@ws#Auer3   c                 ~   	 t        fd| D              \  }}}|||fS d}t               }|j                  }t        t              }t        t              }t        | t              D ]G  \  }	}
 ||	       t        t        |
      D ]'  \  }|dz  }|xx   |z  cc<   |xx   ||z  z  cc<   ) I |st        d      x}n_d |v r|d    x}nSt        d |j                         D              }t        d |j                         D              }||z  ||z  z
  |z  }||z  t        t        |t              }|||fS )Nc              3   2   K   | ]  }|z
  xz    y wr8   r2   )r:   xcr;   s     r4   r=   z_ss.<locals>.<genexpr>   s     <!1q5jaA-<s   r   r6   c              3   :   K   | ]  \  }}t        ||        y wr8   r   r9   s      r4   r=   z_ss.<locals>.<genexpr>   s     @DAq!Q@r>   c              3   @   K   | ]  \  }}t        |||z          y wr8   r   r9   s      r4   r=   z_ss.<locals>.<genexpr>   s     Dtq!(1ac"Ds   )rR   r?   r@   r,   rH   r   rB   rC   rD   r   rE   rF   r(   rG   )rI   rV   rQ   ssdr   rJ   rK   sx_partialssxx_partialsrN   rO   r<   sxsxxr;   s    `            @r4   _ssr^      s`    	}<t<<335!!EEE		Ic"Ks#LtT* %V#f- 	%DAqQJENaNOq1u$O	%% 1+a		 d##a @K,=,=,?@@D|/A/A/CDD s{R"W$-Jws#AsAur3   c                 l    	 | j                         S # t        $ r t        j                  |       cY S w xY wr8   )	is_finiteAttributeErrormathisfinite)rU   s    r4   	_isfiniterd      s1     {{}  }}Q s    33c                    	 | |u r| S |t         u s|t        u r| S | t         u r|S t        ||       r|S t        | |      r| S t        | t               r|S t        |t               r| S t        | t              rt        |t              r|S t        | t              rt        |t              r| S d}t        || j                  |j                  fz        )Nz"don't know how to coerce %s and %s)rH   bool
issubclassr   float	TypeErrorr/   )rQ   Smsgs      r4   rG   rG      s     	AvqCx19axCx(!Q(!Q(!S1H!S1H!X:a#7!U
1h 7
.C
C1::qzz22
33r3   c                     	 	 | j                         S # t        $ r Y nt        t        f$ r | d fcY S w xY w	 | j                  | j
                  fS # t        $ r% dt        |       j                   d}t        |      w xY w)Nzcan't convert type 'z' to numerator/denominator)	as_integer_ratiora   OverflowError
ValueError	numeratordenominatorrB   r/   ri   )rU   rk   s     r4   rD   rD     s    :!!## :&  4yQ]]++ $T!W%5%5$66PQns    	333A .A=c                    	 t        |       |u r| S t        |t              r| j                  dk7  rt        }	  ||       S # t
        $ r9 t        |t              r' || j                         || j                        z  cY S  w xY wNr6   )rB   rg   rH   rq   rh   ri   r   rp   )valuerQ   s     r4   _convertru   M  s}    0E{a !Se//14x a!U__%%*;*;(<<<	s   ? >B?Bc              #   D   K   	 | D ]  }|dk  rt        |      |  y w)Nr   )r   )rO   errmsgrU   s      r4   	_fail_negrx   _  s/     A q5!&))s    Faverager6   )keyreversetiesstartreturnc               V   	 |dk7  rt        d|      |t        ||       } t        t        | t	                     |      }|dz
  }dgt        |      z  }t        |t        d            D ]:  \  }}	t        |	      }
t        |
      }||dz   dz  z   }|
D ]
  \  }}|||<    ||z  }< |S )Nry   zUnknown tie resolution method: )r{   r6   r   )rz      )	ro   rC   sortedzipr   lenr   r)   list)rI   rz   r{   r|   r}   val_posiresult_ggroupsizerankrt   orig_poss                  r4   _rankr   g  s    H y:4(CDD
3~Suw'9G	AS3w<FZ]3 1Q5zD1H>!$ 	$OE8#F8	$	T	 Mr3   r<   mc                 P    	 t        j                  | |z        }|||z  |z  | k7  z  S r8   )rb   isqrt)r<   r   as      r4   _integer_sqrt_of_frac_rtor     s.    P

16A!A
r3   r      _sqrt_bit_widthc                     	 | j                         |j                         z
  t        z
  dz  }|dk\  rt        | |d|z  z        |z  }d}||z  S t        | d|z  z  |      }d| z  }||z  S )Nr   r   r6   )
bit_lengthr   r   )r<   r   qrp   rq   s        r4   _float_sqrt_of_fracr     s    ;	
!,,.	(?	:q@AAv-aa!e<A	 {"" .a26k1=	A2g{""r3   c                    	 | dk  r| st        d      S |  | }} t        |       t        |      z  j                         }|j                         \  }}|j                         }|j                         \  }}d| z  ||z  dz  z  |||z  ||z  z   dz  z  kD  r|S |j	                         }|j                         \  }	}
d| z  ||
z  dz  z  |||	z  |
|z  z   dz  z  k  r|S |S )Nr   z0.0   r   )r   r    rm   	next_plus
next_minus)r<   r   rootnrdrplusnpdpminusnmdms              r4   _decimal_sqrt_of_fracr     s    = 	Av5>!rA21AJ#))+D""$FB>>D""$FB1u2zABB 222OOE##%FB1u2zABB 222Kr3   c                 `    	 t        |       \  }}}|dk  rt        d      t        ||z  |      S )Nr6   z%mean requires at least one data point)rR   r   ru   )rI   rQ   rP   r<   s       r4   r
   r
     s<     t*KAua1uEFFEAIq!!r3   c                 ^   	 |)	 t        |       t        |       }st        d      |z  S t	        |t
        t        f      st        |      }	 t        | |      }t        |      }|st        d      ||z  S # t        $ r dfd} ||       } Y w xY w# t        $ r t        d      w xY w)Nr   c              3   @   K   t        | d      D ]	  \  }|  y w)Nr6   r}   )	enumerate)iterablerU   r<   s     r4   r   zfmean.<locals>.count  s&     %ha8 DAqGs   z&fmean requires at least one data pointz(data and weights must be the same lengthzsum of weights must be non-zero)	r   ri   r&   r   
isinstancer   tupler'   ro   )rI   weightsr   rP   numdenr<   s         @r4   r   r     s     		D	A T
!"JKKqyge}-w-JdG$ w-C?@@9+  	A ;D	   JHIIJs   A9 B 9BBB,c                 |    	 	 t        t        t        t        |                   S # t        $ r t        d      d w xY w)NzGgeometric mean requires a non-empty dataset containing positive numbers)r"   r   rC   r%   ro   r   )rI   s    r4   r   r     sJ    
G5S$()) G < =BF	GGs   !% ;c                 z   	 t        |       | u rt        |       } d}t        |       }|dk  rt        d      |dk(  rD|B| d   }t	        |t
        j                  t        f      r|dk  rt        |      |S t        d      |t        d|      }|}nQt        |      |u rt        |      }t        |      |k7  rt        d      t        d t        ||      D              \  }}}	 t        | |      } t        d t        ||       D              \  }}}	|dk  rt        d	      t        ||z  |      S # t        $ r Y yw xY w)
Nz.harmonic mean does not support negative valuesr6   z.harmonic_mean requires at least one data pointr   zunsupported typez*Number of weights does not match data sizec              3       K   | ]  }|  y wr8   r2   )r:   ws     r4   r=   z harmonic_mean.<locals>.<genexpr>N  s      Gq Gs   c              3   4   K   | ]  \  }}|r||z  nd   yw)r   Nr2   )r:   r   rU   s      r4   r=   z harmonic_mean.<locals>.<genexpr>Q  s     PTQq1uq0Ps   zWeighted sum must be positive)iterr   r   r   r   numbersRealr   ri   r   rR   rx   r   ZeroDivisionErrorru   )
rI   r   rw   r<   rU   sum_weightsr   rQ   rP   r   s
             r4   r   r   !  sR   , DzTDz=FD	A1uNOO	
aGOGa',,011u%f--H.//A,=G#7mGw<1!"NOO  GIgv,F GG;v&PS$=OPP5% z=>>K%'++	  s   #,D. .	D:9D:c                     	 t        |       } t        |       }|dk(  rt        d      |dz  dk(  r| |dz     S |dz  }| |dz
     | |   z   dz  S Nr   no median for empty datar   r6   r   r   r   )rI   r<   r   s      r4   r   r   Y  sl     $<DD	AAv8991uzAF|FQUd1g%**r3   c                     	 t        |       } t        |       }|dk(  rt        d      |dz  dk(  r| |dz     S | |dz  dz
     S r   r   rI   r<   s     r4   r   r   q  sZ    
 $<DD	AAv8991uzAF|AFQJr3   c                 `    	 t        |       } t        |       }|dk(  rt        d      | |dz     S )Nr   r   r   r   r   s     r4   r   r     s<    
 $<DD	AAv899Q<r3   c                 ,   	 t        |       } t        |       }|st        d      | |dz     }t        | |      }t	        | ||      }	 t        |      }t        |      }||dz  z
  }|}||z
  }|||dz  |z
  z  |z  z   S # t        $ r t        d      w xY w)Nr   r   )loz$Value cannot be converted to a floatr-   )r   r   r   r   r   rh   ro   ri   )	rI   intervalr<   rU   r   jLcffs	            r4   r   r     s    )T $<DD	A899 	Q!VA 	D!AT1#AA?!H 	
HsNA	
B	AAx1q52:&***  A>@@As   A> >Bc                     	 t        t        |             j                  d      }	 |d   d   S # t        $ r t	        d      d w xY w)Nr6   r   zno mode for empty data)r*   r   most_common
IndexErrorr   )rI   pairss     r4   r   r     sU    , DJ++A.EBQx{ B67TABs	   . Ac                     	 t        t        |             }|sg S t        |j                               }|j	                         D cg c]  \  }}||k(  s| c}}S c c}}w r8   )r*   r   maxrO   rF   )rI   countsmaxcountrt   r   s        r4   r   r      sT     T$Z F	6==?#H&,llnJleU8IEJJJs   AAr   	exclusive)r<   methodc                *   	 |dk  rt        d      t        |       } t        |       }|dk  rt        d      |dk(  rW|dz
  }g }t        d|      D ]?  }t	        ||z  |      \  }}| |   ||z
  z  | |dz      |z  z   |z  }	|j                  |	       A |S |dk(  rn|dz   }g }t        d|      D ]V  }||z  |z  }|dk  rdn||dz
  kD  r|dz
  n|}||z  ||z  z
  }| |dz
     ||z
  z  | |   |z  z   |z  }	|j                  |	       X |S t        d|      )Nr6   zn must be at least 1r   z"must have at least two data points	inclusiver   Unknown method: )r   r   r   rangedivmodappendro   )
rI   r<   r   ldr   r   r   r   deltainterpolateds
             r4   r   r   9  sp    	1u455$<D	TB	AvBCCFq! 	(Aa!eQ'HAu Gq5y1DQK%4GG1LLMM,'	( Fq! 	(AA
AUBqD1aAaC!A#IE QK1u95Q%G1LLMM,'	( 
'z2
33r3   c                 j    	 t        | |      \  }}}}|dk  rt        d      t        ||dz
  z  |      S )Nr   z*variance requires at least two data pointsr6   r^   r   ru   )rI   xbarrQ   ssrV   r<   s         r4   r   r   j  sE    $J dD/KAr1a1uJKKB!a%L!$$r3   c                 d    	 t        | |      \  }}}}|dk  rt        d      t        ||z  |      S )Nr6   z*pvariance requires at least one data pointr   )rI   murQ   r   rV   r<   s         r4   r   r     sA    !D dB-KAr1a1uJKKBFAr3   c                     	 t        | |      \  }}}}|dk  rt        d      ||dz
  z  }t        |t              r t	        |j
                  |j                        S t        |j
                  |j                        S Nr   z'stdev requires at least two data pointsr6   r^   r   rg   r   r   rp   rq   r   )rI   r   rQ   r   rV   r<   msss          r4   r   r     sp     dD/KAr1a1uGHH
A,C!W$S]]COODDs}}coo>>r3   c                     	 t        | |      \  }}}}|dk  rt        d      ||z  }t        |t              r t	        |j
                  |j                        S t        |j
                  |j                        S )Nr6   z'pstdev requires at least one data pointr   )rI   r   rQ   r   rV   r<   r   s          r4   r   r     sl     dB-KAr1a1uGHH
q&C!W$S]]COODDs}}coo>>r3   c                    	 t        |       \  }}}}|dk  rt        d      ||dz
  z  }	 t        |      t        |j                  |j
                        fS # t        $ r% t        |      t        |      t        |      z  fcY S w xY wr   )r^   r   rh   r   rp   rq   ra   )rI   rQ   r   r   r<   r   s         r4   _mean_stdevr     s    PYNAr41uGHH
A,C4T{/sOOO 4T{E$K%)3334s   *A +BBc                    	 t        |       }t        |      |k7  rt        d      |dk  rt        d      t        |       |z  t        |      |z  t        fd| D        fd|D              }||dz
  z  S )NzDcovariance requires that both inputs have same number of data pointsr   z,covariance requires at least two data pointsc              3   (   K   | ]	  }|z
    y wr8   r2   )r:   xir   s     r4   r=   zcovariance.<locals>.<genexpr>  s     )29)   c              3   (   K   | ]	  }|z
    y wr8   r2   r:   yiybars     r4   r=   zcovariance.<locals>.<genexpr>  s     +B"BI+Br   r6   )r   r   r&   r'   )rU   yr<   sxyr   r   s       @@r4   r   r     s}      	AA
1v{dee1uLMM7Q;D7Q;D
)q)+B+B
CC!a%=r3   linear)r   c                  	 t        |       }t        |      |k7  rt        d      |dk  rt        d      |dvrt        d|      |dk(  r#|dz
  dz  }t        | |	      } t        ||	      }n@t	        |       |z  }t	        |      |z  }| D cg c]  }||z
  	 } }|D cg c]  }||z
  	 }}t        | |      }	t        | |       }
t        ||      }	 |	t        |
|z        z  S c c}w c c}w # t        $ r t        d
      w xY w)NzEcorrelation requires that both inputs have same number of data pointsr   z-correlation requires at least two data points>   r   rankedr   r   r6   r   r   z&at least one of the inputs is constant)r   r   ro   r   r&   r'   r    r   )rU   r   r   r<   r}   r   r   r   r   r   r]   syys               r4   r   r     s.   , 	AA
1v{eff1uMNN))+F:677Q"!5!!5!Aw{Aw{!"#2R$Y##!"#2R$Y##
!Q-C
!Q-C
!Q-CHT#)_$$ $#  HFGGHs   C&"C+C0 0DLinearRegressionslope	intercept)proportionalc                 
 	 t        |       }t        |      |k7  rt        d      |dk  rt        d      |s9t        |       |z  }t        |      |z  
| D cg c]  }||z
  	 } }
fd|D        }t        | |      dz   }t        | |       }	 ||z  }|rdn
|z  z
  }	t        ||	      S c c}w # t        $ r t        d      w xY w)NzKlinear regression requires that both inputs have same number of data pointsr   z3linear regression requires at least two data pointsc              3   (   K   | ]	  }|z
    y wr8   r2   r   s     r4   r=   z$linear_regression.<locals>.<genexpr>u  s     #2R$Y#r           zx is constantr   )r   r   r&   r'   r   r   )rU   r   r   r<   r   r   r   r]   r   r   r   s             @r4   r	   r	   F  s    $J 	AA
1v{kll1uSTTAw{Aw{!"#2R$Y####
!Q-#
C
!Q-C/c	 $)<I%9== $  /o../s   B,B1 1Cc                    | dz
  }t        |      dk  rpd||z  z
  }d|z  dz   |z  dz   |z  dz   |z  dz   |z  d	z   |z  d
z   |z  dz   |z  }d|z  dz   |z  dz   |z  dz   |z  dz   |z  dz   |z  dz   |z  dz   }||z  }|||z  z   S |dk  r| nd| z
  }t        t        |             }|dk  r^|dz
  }d|z  dz   |z  dz   |z  dz   |z  dz   |z  dz   |z  dz   |z  dz   }d|z  d z   |z  d!z   |z  d"z   |z  d#z   |z  d$z   |z  d%z   |z  dz   }n]|dz
  }d&|z  d'z   |z  d(z   |z  d)z   |z  d*z   |z  d+z   |z  d,z   |z  d-z   }d.|z  d/z   |z  d0z   |z  d1z   |z  d2z   |z  d3z   |z  d4z   |z  dz   }||z  }|dk  r| }|||z  z   S )5N      ?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  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%   )pr   sigmar   rr   r   rU   s           r4   _normal_dist_inv_cdfr    s    	
CAAw%q1u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Q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  	c	A3wBUr3   )r  c                      e Zd Z	 dddZd dZed        ZdddZd	 Zd
 Z	d Z
d!dZd Zd Zed        Zed        Zed        Zed        Zed        Zd Zd Zd Zd Zd Zd ZeZd ZeZd Zd Zd Zd Z d Z!y)"r   z(Arithmetic mean of a normal distributionz+Standard deviation of a normal distribution_mu_sigmac                 f    	 |dk  rt        d      t        |      | _        t        |      | _        y )Nr  zsigma must be non-negative)r   rh   r  r  )selfr   r  s      r4   __init__zNormalDist.__init__  s.    N3;!">??9Elr3   c                      	  | t        |       S r8   )r   )clsrI   s     r4   from_sampleszNormalDist.from_samples  s    ?K%&&r3   N)seedc                    	 |t         j                  nt        j                  |      j                  }| j                  | j                  }}t        d |      D cg c]  } |||       c}S c c}w r8   )randomgaussRandomr  r  r   )r  r<   r  r  r   r  r   s          r4   sampleszNormalDist.samples  sU    G $&--2E2K2KHHdkkE*0q/:Qb% :::s   A,c                     	 | j                   | j                   z  }|st        d      || j                  z
  }t        ||z  d|z  z        t	        t
        |z        z  S )Nz$pdf() not defined when sigma is zerog       )r  r   r  r"   r    r$   )r  rU   r   diffs       r4   pdfzNormalDist.pdf  sY    >;;,!"HII488|4$;$/23d3>6JJJr3   c                     	 | j                   st        d      ddt        || j                  z
  | j                   t        z  z        z   z  S )Nz$cdf() not defined when sigma is zeror  r  )r  r   r#   r  _SQRT2r  rU   s     r4   cdfzNormalDist.cdf  sC    6{{!"HIIcCTXX$++2F GHHIIr3   c                 p    	 |dk  s|dk\  rt        d      t        || j                  | j                        S )Nr  r  z$p must be in the range 0.0 < p < 1.0)r   r  r  r  )r  r  s     r4   inv_cdfzNormalDist.inv_cdf  s9    	 8qCx!"HII#Atxx==r3   c                 f    	 t        d|      D cg c]  }| j                  ||z         c}S c c}w rs   )r   r!  )r  r<   r   s      r4   r   zNormalDist.quantiles  s0    	 .31a[9QU#999s   .c           	          	 t        |t              st        d      | |}}|j                  |j                  f|j                  |j                  fk  r||}}|j
                  |j
                  }}|r|st        d      ||z
  }t        |j                  |j                  z
        }|s%dt        |d|j                  z  t        z  z        z
  S |j                  |z  |j                  |z  z
  }|j                  |j                  z  t        ||z  |t        ||z        z  z         z  }	||	z   |z  }
||	z
  |z  }dt        |j                  |
      |j                  |
      z
        t        |j                  |      |j                  |      z
        z   z
  S )Nz$Expected another NormalDist instancez(overlap() not defined when sigma is zeror  r-   )r   r   ri   r  r  r   r   r!   r#   r  r    r%   r  )r  otherXYX_varY_vardvr   r   bx1x2s               r4   overlapzNormalDist.overlap  sd   
	 %,BCCU1HHaee!%%00aqAzz1::uE!"LMMU]!%%!%%- R3>F#:;<<<EEEMAEEEM)HHqxx$rBwc%%-6H1H'H"II!er\!er\d1559quuRy01DrQUU2Y9N4OOPPr3   c                 j    	 | j                   st        d      || j                  z
  | j                   z  S )Nz'zscore() not defined when sigma is zero)r  r   r  r  s     r4   zscorezNormalDist.zscore9  s3    	 {{!"KLLDHH++r3   c                     	 | j                   S r8   r  r  s    r4   r
   zNormalDist.meanD  s    5xxr3   c                     	 | j                   S r8   r1  r2  s    r4   r   zNormalDist.medianI  s    6xxr3   c                     	 | j                   S r8   r1  r2  s    r4   r   zNormalDist.modeN  s    	
 xxr3   c                     	 | j                   S r8   r  r2  s    r4   r   zNormalDist.stdevW  s    8{{r3   c                 6    	 | j                   | j                   z  S r8   r6  r2  s    r4   r   zNormalDist.variance\  s    +{{T[[((r3   c                     	 t        |t              rAt        | j                  |j                  z   t        | j                  |j                              S t        | j                  |z   | j                        S r8   r   r   r  r   r  r+  r,  s     r4   __add__zNormalDist.__add__a  T    	 b*%bffrvvouRYY		/JKK"&&2+ryy11r3   c                     	 t        |t              rAt        | j                  |j                  z
  t        | j                  |j                              S t        | j                  |z
  | j                        S r8   r9  r:  s     r4   __sub__zNormalDist.__sub__o  r<  r3   c                 b    	 t        | j                  |z  | j                  t        |      z        S r8   r   r  r  r!   r:  s     r4   __mul__zNormalDist.__mul__}  +    	
 "&&2+ryy48';<<r3   c                 b    	 t        | j                  |z  | j                  t        |      z        S r8   r@  r:  s     r4   __truediv__zNormalDist.__truediv__  rB  r3   c                 D    	 t        | j                  | j                        S r8   r   r  r  r+  s    r4   __pos__zNormalDist.__pos__  s    ("&&")),,r3   c                 F    	 t        | j                   | j                        S r8   rF  rG  s    r4   __neg__zNormalDist.__neg__  s    2266'299--r3   c                     	 | |z
   S r8   r2   r:  s     r4   __rsub__zNormalDist.__rsub__  s    Fbzr3   c                     	 t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  S r8   )r   r   NotImplementedr  r  r:  s     r4   __eq__zNormalDist.__eq__  s:    P"j)!!vv:BII$::r3   c                 F    	 t        | j                  | j                  f      S r8   )hashr  r  r2  s    r4   __hash__zNormalDist.__hash__  s    MTXXt{{+,,r3   c                 f    t        |       j                   d| j                  d| j                  dS )Nz(mu=z, sigma=))rB   r/   r  r  r2  s    r4   __repr__zNormalDist.__repr__  s.    t*%%&d488,ht{{oQOOr3   c                 2    | j                   | j                  fS r8   r
  r2  s    r4   __getstate__zNormalDist.__getstate__  s    xx$$r3   c                 "    |\  | _         | _        y r8   r
  )r  states     r4   __setstate__zNormalDist.__setstate__  s     %$+r3   )r  r  )r   )"r/   r0   r1   	__slots__r  classmethodr  r  r  r  r!  r   r-  r/  propertyr
   r   r   r   r   r;  r>  rA  rD  rH  rJ  __radd__rL  __rmul__rO  rR  rU  rW  rZ  r2   r3   r4   r   r     s   .
 :?I
# ' ' "& ;KJ>	: QD	,         ) )22==-. H H;-P%&r3   r   r8   )znegative value)r  )N__all__rb   r   r  sys	fractionsr   decimalr   	itertoolsr   r   r   bisectr   r   r   r    r!   r"   r#   r$   r%   r&   r'   	functoolsr(   operatorr)   collectionsr*   r+   r,   r  ro   r   rR   r^   rd   rG   rD   ru   rx   r   rh   r   rH   r   
float_infomant_digr   __annotations__r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r  _statisticsImportErrorr   r2   r3   r4   <module>rn     s  hT.    
   , , , E E E   8 8	c	j 	3l&R 4>+\$ IQ 34PU; 3l    3>>222Q6 6
#3 
#3 
#5 
#S S W <",!HG&5,p+0 ,&E+PB<Kr ; (4b)%X&R?$?$
4(8 $, -H` 02HI  05 7>zGV	0
Z& Z&	  		s   /E   EE