
    =OgY                     r   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 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 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"d>dZ#d Z$d Z%d Z&d Z'd?dZ(de)de)de)fdZ*dej+        j,        z  dz   Z-e)e.d<   de)de)de/fdZ0de)de)defdZ1d Z2d>d Z3d! Z4d>d"Z5d# Z6d$ Z7d% Z8d@d'Z9d( Z:d) Z;d*d+d,d-Z<d>d.Z=d>d/Z>d>d0Z?d>d1Z@d2 ZAd3 ZBd4 ZC ed5d6          ZDd7d8d9ZEd: ZF	 dd;lGmFZF n# eH$ r Y nw xY w G d< d=          ZIdS )A)
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)groupbyrepeat)bisect_leftbisect_right)hypotsqrtfabsexperftaulogfsum)reduce)mul)Counter
namedtupledefaultdict       @c                       e Zd ZdS )r   N)__name__
__module____qualname__     #/usr/lib64/python3.11/statistics.pyr   r      s        Dr1   r   c                    	 d}t                      }|j        }i }|j        }t          | t                    D ]B\  }} ||           t          t          |          D ]\  }}	|dz  } ||	d          |z   ||	<   Cd |v r	|d          }
n+t          d |                                D                       }
t          t          |t                    }||
|fS )Nr      c              3   <   K   | ]\  }}t          ||          V  d S Nr   .0dns      r2   	<genexpr>z_sum.<locals>.<genexpr>   s.      @@tq!HQNN@@@@@@r1   )setaddgetr   typemap_exact_ratiosumitemsr&   _coerceint)datacounttypes	types_addpartialspartials_gettypvaluesr:   r9   totalTs               r2   _sumrP      s    > EEEE	IH<LtT** 1 1V	#f-- 	1 	1DAqQJE&,q!,,q0HQKK	1 x  @@x~~/?/?@@@@@ws##Auer1   c                    	 &t          fd| D                       \  }}}|||fS d}t                      }|j        }t          t                    }t          t                    }t          | t                    D ]S\  }	}
 ||	           t          t          |
          D ]-\  }|dz  }|xx         |z  cc<   |xx         ||z  z  cc<   .T|st          d          x}nxd |v r|d          x}nit          d |                                D                       }t          d |                                D                       }||z  ||z  z
  |z  }||z  t          t          |t                    }|||fS )Nc              3   ,   K   | ]}|z
  xz  V  d S r6   r0   )r8   xcr9   s     r2   r;   z_ss.<locals>.<genexpr>   s0      <<!1q5jaA-<<<<<<r1   r   r4   c              3   <   K   | ]\  }}t          ||          V  d S r6   r   r7   s      r2   r;   z_ss.<locals>.<genexpr>   s.      @@DAq!Q@@@@@@r1   c              3   B   K   | ]\  }}t          |||z            V  d S r6   r   r7   s      r2   r;   z_ss.<locals>.<genexpr>   s4      DDtq!(1ac""DDDDDDr1   )rP   r<   r=   r*   rE   r   r?   r@   rA   r   rB   rC   r&   rD   )rF   rT   rO   ssdrG   rH   rI   sx_partialssxx_partialsrL   rM   r:   sxsxxr9   s    `            @r2   _ssr\      s    	}<<<<<t<<<<<335!!EEEE	Ic""Ks##LtT** % %V	#f-- 	% 	%DAqQJENNNaNNNOOOq1u$OOOO	%  1++aa			 d##aa @@K,=,=,?,?@@@@@DD|/A/A/C/CDDDDD s{R"W$-Jws##AsAur1   c                 t    	 |                                  S # t          $ r t          j        |           cY S w xY wr6   )	is_finiteAttributeErrormathisfinite)rS   s    r2   	_isfiniterb      sF     {{}}      }Q s    77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)rE   bool
issubclassr   float	TypeErrorr-   )rO   Smsgs      r2   rD   rD      s     	AvvqCxx199axCxx(!Q"(!Q"(!S$1H!S$1H!X :a#7#7 !U 
1h 7 7 
.C
C1:qz22
3
33r1   c                    	 	 |                                  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_ratior_   OverflowError
ValueError	numeratordenominatorr?   r-   rg   )rS   ri   s     r2   rA   rA     s    :!!###   :&    4yQ]++   QT!WW%5QQQnns    
:::A 2A>c                    	 t          |           |u r| S t          |t                    r| j        dk    rt          }	  ||           S # t
          $ r: t          |t                    r# || j                   || j                  z  cY S  w xY w)Nr4   )r?   re   rE   ro   rf   rg   r   rn   )valuerO   s     r2   _convertrr   M  s    0E{{a !S e/144qxx   a!! 	1U_%%%*;(<(<<<<<	s   
A A B
Bnegative valuec              #   H   K   	 | D ]}|dk     rt          |          |V  d S )Nr   )r   )rM   errmsgrS   s      r2   	_fail_negrv   _  sD      A  q55!&))) r1   r:   mreturnc                 P    	 t          j        | |z            }|||z  |z  | k    z  S r6   )r`   isqrt)r:   rw   as      r2   _integer_sqrt_of_frac_rtor|   g  s/    P
16A!A
r1         _sqrt_bit_widthc                     	 |                                  |                                 z
  t          z
  dz  }|dk    rt          | |d|z  z            |z  }d}nt          | d|z  z  |          }d| z  }||z  S )Nr}   r   r4   )
bit_lengthr   r|   )r:   rw   qrn   ro   s        r2   _float_sqrt_of_fracr   s  s    ;	
!,,..	(?	:q@AAvv-aa!e<<A	-a26k1==	A2g{""r1   c                 
   	 | dk    r| st          d          S |  | }} t          |           t          |          z                                  }|                                \  }}|                                }|                                \  }}d| z  ||z  dz  z  |||z  ||z  z   dz  z  k    r|S |                                }|                                \  }	}
d| z  ||
z  dz  z  |||	z  |
|z  z   dz  z  k     r|S |S )Nr   z0.0   r}   )r   r   rk   	next_plus
next_minus)r:   rw   rootnrdrplusnpdpminusnmdms              r2   _decimal_sqrt_of_fracr     s#   = 	Avv 	"5>>!rA21AJJ#))++D""$$FB>>D""$$FB1u2zABB 2222OOE##%%FB1u2zABB 2222Kr1   c                 z    	 t          |           \  }}}|dk     rt          d          t          ||z  |          S )Nr4   z%mean requires at least one data point)rP   r   rr   )rF   rO   rN   r:   s       r2   r
   r
     sF     t**KAua1uuEFFFEAIq!!!r1   c                    	 	 t          |           n"# t          $ r dfd} ||           } Y nw xY w|%t          |           }st          d          |z  S 	 t          |          }n.# t          $ r! t	          |          }t          |          }Y nw xY wt          t          t          | |                    }|k    rt          d          t          |          }|st          d          ||z  S )Nr   c              3   B   K   t          | d          D ]	\  }|V  
d S )Nr4   )start)	enumerate)iterablerS   r:   s     r2   rG   zfmean.<locals>.count  s<      !(!444  1 r1   z&fmean requires at least one data pointz(data and weights must be the same lengthzsum of weights must be non-zero)lenrg   r%   r   listr@   r'   )rF   weightsrG   rN   num_weightsnumdenr:   s          @r2   r   r     sC   	II   	 	 	 	 	 uT{{ T

 	L!"JKKKqy#'ll # # #w--'ll# s3g&&
'
'CKHIII
w--C A?@@@9s    33A. .(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   r@   r$   rm   r   )rF   s    r2   r   r     se    
G5S$(())) G G G < = =BF	GGs	   .2 Ac                 .   	 t          |           | u rt          |           } d}t          |           }|dk     rt          d          |dk    rQ|O| d         }t	          |t
          j        t          f          r|dk     rt          |          |S t          d          |t          d|          }|}nmt          |          |u rt          |          }t          |          |k    rt          d          t          d t          ||          D                       \  }}}	 t          | |          } t          d t          ||           D                       \  }}}	n# t          $ r Y dS w xY w|dk    rt          d	          t          ||z  |          S )
Nz.harmonic mean does not support negative valuesr4   z.harmonic_mean requires at least one data pointr   zunsupported typez*Number of weights does not match data sizec              3      K   | ]}|V  d S r6   r0   )r8   ws     r2   r;   z harmonic_mean.<locals>.<genexpr>  s"       G Gq G G G G G Gr1   c              3   .   K   | ]\  }}|r||z  nd V  dS )r   Nr0   )r8   r   rS   s      r2   r;   z harmonic_mean.<locals>.<genexpr>  s3      PPTQ0q1uuqPPPPPPr1   zWeighted sum must be positive)iterr   r   r   
isinstancenumbersRealr   rg   r   rP   rv   zipZeroDivisionErrorrr   )
rF   r   ru   r:   rS   sum_weights_rO   rN   rG   s
             r2   r   r     s   , DzzTDzz=FD		A1uuNOOO	
aGOGa',011 	01uu%f---H.///A,,==G##7mmGw<<1!"NOOO  G GIgv,F,F G G GGG;v&&PPS$=O=OPPPPP5%%   qqzz=>>>K%'+++s   ";E 
E,+E,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}   r4   sortedr   r   )rF   r:   is      r2   r   r   %  sw     $<<DD		AAvv89991uzzAF|FQUd1g%**r1   c                     	 t          |           } t          |           }|dk    rt          d          |dz  dk    r| |dz           S | |dz  dz
           S r   r   rF   r:   s     r2   r   r   =  se    
 $<<DD		AAvv89991uzzAF|AFQJr1   c                     	 t          |           } t          |           }|dk    rt          d          | |dz           S )Nr   r   r}   r   r   s     r2   r   r   S  sE    
 $<<DD		AAvv8999Q<r1         ?c                 v   	 t          |           } t          |           }|st          d          | |dz           }t          | |          }t	          | ||          }	 t          |          }t          |          }n# t          $ r t          d          w xY w||dz  z
  }|}||z
  }|||dz  |z
  z  |z  z   S )Nr   r}   )loz$Value cannot be converted to a floatr+   )r   r   r   r   r   rf   rm   rg   )	rF   intervalr:   rS   r   jLcffs	            r2   r   r   f  s    )T $<<DD		A :8999 	Q!VA 	D!AT1###AA??!HH A A A?@@@A
 	
HsNA	
B	AAx1q52:&***s   A> >Bc                     	 t          t          |                                         d          }	 |d         d         S # t          $ r t	          d          d w xY w)Nr4   r   zno mode for empty data)r(   r   most_common
IndexErrorr   )rF   pairss     r2   r   r     sn    , DJJ++A..EBQx{ B B B677TABs   A   Ac                     	 t          t          |                     }|sg S t          |                                          fd|                                D             S )Nc                 &    g | ]\  }}|k    |S r0   r0   )r8   rq   rG   maxcounts      r2   
<listcomp>zmultimode.<locals>.<listcomp>  s'    JJJleU8I8IE8I8I8Ir1   )r(   r   maxrM   rC   )rF   countsr   s     @r2   r   r     sa     T$ZZ  F 	6==??##HJJJJfllnnJJJJr1   r   	exclusive)r:   methodc                   	 |dk     rt          d          t          |           } t          |           }|dk     rt          d          |dk    rg|dz
  }g }t          d|          D ]M}t	          ||z  |          \  }}| |         ||z
  z  | |dz            |z  z   |z  }	|                    |	           N|S |dk    r||dz   }g }t          d|          D ]b}||z  |z  }|dk     rdn||dz
  k    r|dz
  n|}||z  ||z  z
  }| |dz
           ||z
  z  | |         |z  z   |z  }	|                    |	           c|S t          d|          )Nr4   zn must be at least 1r}   z"must have at least two data points	inclusiver   zUnknown method: )r   r   r   rangedivmodappendrm   )
rF   r:   r   ldrw   resultr   r   deltainterpolateds
             r2   r   r     s    	1uu4555$<<D	TB	AvvBCCCFq! 	( 	(Aa!eQ''HAu Gq5y1DQK%4GG1LLMM,''''Fq! 	( 	(AA
AUUBqD1aAaC!A#IE QK1u95Q%G1LLMM,''''
222
3
33r1   c                     	 t          | |          \  }}}}|dk     rt          d          t          ||dz
  z  |          S )Nr}   z*variance requires at least two data pointsr4   r\   r   rr   )rF   xbarrO   ssrT   r:   s         r2   r   r   6  sO    $J dD//KAr1a1uuJKKKB!a%L!$$$r1   c                 ~    	 t          | |          \  }}}}|dk     rt          d          t          ||z  |          S )Nr4   z*pvariance requires at least one data pointr   )rF   murO   r   rT   r:   s         r2   r   r   b  sK    !D dB--KAr1a1uuJKKKBFAr1   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 pointsr4   r\   r   re   r   r   rn   ro   r   )rF   r   rO   r   rT   r:   msss          r2   r   r     s~     dD//KAr1a1uuGHHH
A,C!W E$S]CODDDs}co>>>r1   c                     	 t          | |          \  }}}}|dk     rt          d          ||z  }t          |t                    rt	          |j        |j                  S t          |j        |j                  S )Nr4   z'pstdev requires at least one data pointr   )rF   r   rO   r   rT   r:   r   s          r2   r   r     sz     dB--KAr1a1uuGHHH
q&C!W E$S]CODDDs}co>>>r1   c                 6   	 t          |           \  }}}}|dk     rt          d          ||dz
  z  }	 t          |          t          |j        |j                  fS # t          $ r1 t          |          t          |          t          |          z  fcY S w xY wr   )r\   r   rf   r   rn   ro   r_   )rF   rO   r   r   r:   r   s         r2   _mean_stdevr     s    PYYNAr41uuGHHH
A,C4T{{/sOOOO 4 4 4T{{E$KK%))333334s   (A 8BBc                @   	 t          |           }t          |          |k    rt          d          |dk     rt          d          t          |           |z  t          |          |z  t          fdt          | |          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   4   K   | ]\  }}|z
  |z
  z  V  d S r6   r0   r8   xiyir   ybars      r2   r;   zcovariance.<locals>.<genexpr>  4      AAVRT	b4i(AAAAAAr1   r4   )r   r   r%   r   )rS   yr:   sxyr   r   s       @@r2   r   r     s      	AA
1vv{{deee1uuLMMM77Q;D77Q;D
AAAAAs1ayyAAA
A
AC!a%=r1   c                   	 t          |           }t          |          |k    rt          d          |dk     rt          d          t          |           |z  t          |          |z  t          fdt          | |          D                       }t          fd| D                       }t          fd|D                       }	 |t	          ||z            z  S # 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 pointsc              3   4   K   | ]\  }}|z
  |z
  z  V  d S r6   r0   r   s      r2   r;   zcorrelation.<locals>.<genexpr>  r   r1   c              3   ,   K   | ]}|z
  xz  V  d S r6   r0   r8   r   r9   r   s     r2   r;   zcorrelation.<locals>.<genexpr>  0      00R$Y!#000000r1   c              3   ,   K   | ]}|z
  xz  V  d S r6   r0   )r8   r   r9   r   s     r2   r;   zcorrelation.<locals>.<genexpr>  r   r1   z&at least one of the inputs is constant)r   r   r%   r   r   r   )	rS   r   r:   r   r[   syyr9   r   r   s	         @@@r2   r   r     s+     	AA
1vv{{efff1uuMNNN77Q;D77Q;D
AAAAAs1ayyAAA
A
AC
00000a000
0
0C
00000a000
0
0CHT#)__$$ H H HFGGGHs   C' 'DLinearRegressionslope	interceptF)proportionalc               r  	
 	 t          |           }t          |          |k    rt          d          |dk     rt          d          |rAt          d t          | |          D                       }t          d | D                       }njt          |           |z  	t          |          |z  
t          	
fdt          | |          D                       }t          	fd| D                       }	 ||z  }n# t          $ r t          d          w xY w|rd	n
|	z  z
  }t          ||
          S )NzKlinear regression requires that both inputs have same number of data pointsr}   z3linear regression requires at least two data pointsc              3   &   K   | ]\  }}||z  V  d S r6   r0   )r8   r   r   s      r2   r;   z$linear_regression.<locals>.<genexpr>/  s*      33vr227333333r1   c              3       K   | ]	}||z  V  
d S r6   r0   )r8   r   s     r2   r;   z$linear_regression.<locals>.<genexpr>0  s&      ''r27''''''r1   c              3   4   K   | ]\  }}|z
  |z
  z  V  d S r6   r0   r   s      r2   r;   z$linear_regression.<locals>.<genexpr>4  s4      EERBI"t),EEEEEEr1   c              3   ,   K   | ]}|z
  xz  V  d S r6   r0   r   s     r2   r;   z$linear_regression.<locals>.<genexpr>5  s0      44BdNAa'444444r1   zx is constant        r   )r   r   r%   r   r   r   )rS   r   r   r:   r   r[   r   r   r9   r   r   s           @@@r2   r	   r	     sk   $J 	AA
1vv{{klll1uuSTTT 533Q33333''Q'''''Aww{Aww{EEEEE3q!99EEEEE44444!44444/c	 / / /o.../#<)<I%9====s   9C? ?D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   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   rS   s           r2   _normal_dist_inv_cdfr   A  s    	
CAAww%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#XX37Ac!ffWACxx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3wwBUr1   )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!dS )%r   z(Arithmetic mean of a normal distributionz+Standard deviation of a normal distribution_mu_sigmar   r   c                     	 |dk     rt          d          t          |          | _        t          |          | _        d S )Nr   zsigma must be non-negative)r   rf   r  r  )selfr   r   s      r2   __init__zNormalDist.__init__  s;    N3;;!">???99Ellr1   c                 (    	  | t          |           S r6   )r   )clsrF   s     r2   from_sampleszNormalDist.from_samples  s    ?sK%%&&r1   N)seedc                    	 |t           j        nt          j        |          j        | j        | j        cfdt          |          D             S )Nc                 (    g | ]}           S r0   r0   )r8   r   gaussr   r   s     r2   r   z&NormalDist.samples.<locals>.<listcomp>  s%    333Qb%  333r1   )randomr  Randomr  r  r   )r  r:   r
  r  r   r   s      @@@r2   sampleszNormalDist.samples  sY    G $&-2E2E2KHdk	E333333%((3333r1   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  rS   r   diffs       r2   pdfzNormalDist.pdf  sb    >;, 	J!"HIII48|4$;$/233d3>6J6JJJr1   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  rS   s     r2   cdfzNormalDist.cdf  sI    6{ 	J!"HIIIcCTX$+2F GHHHIIr1   c                     	 |dk    s|dk    rt          d          | j        dk    rt          d          t          || j        | j                  S )Nr   r   z$p must be in the range 0.0 < p < 1.0z-cdf() not defined when sigma at or below zero)r   r  r   r  )r  r   s     r2   inv_cdfzNormalDist.inv_cdf  s[    	 88qCxx!"HIII;#!"QRRR#Atx===r1   r   c                 B     	  fdt          d          D             S )Nc                 @    g | ]}                     |z            S r0   )r  )r8   r   r:   r  s     r2   r   z(NormalDist.quantiles.<locals>.<listcomp>  s)    999QU##999r1   r4   )r   )r  r:   s   ``r2   r   zNormalDist.quantiles  s0    	 :9999U1a[[9999r1   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          |                    |
          |                    |
          z
            t          |                    |          |                    |          z
            z   z
  S )Nz$Expected another NormalDist instancez(overlap() not defined when sigma is zeror   r+   )r   r   rg   r  r  r   r   r    r"   r  r   r$   r  )r  otherXYX_varY_vardvr   r{   bx1x2s               r2   overlapzNormalDist.overlap  s   
	 %,, 	DBCCCU1Hae!%000aqAz1:u 	NE 	N!"LMMMU]!%!%-   	=R3>F#:;<<<<EEMAEEM)Hqx$rBwc%%-6H6H1H'H"I"II!er\!er\d15599quuRyy011DrQUU2YY9N4O4OOPPr1   c                 T    	 | j         st          d          || j        z
  | j         z  S )Nz'zscore() not defined when sigma is zero)r  r   r  r  s     r2   zscorezNormalDist.zscore  s6    	 { 	M!"KLLLDH++r1   c                     	 | j         S r6   r  r  s    r2   r
   zNormalDist.mean  s    5xr1   c                     	 | j         S r6   r*  r+  s    r2   r   zNormalDist.median	  s    6xr1   c                     	 | j         S r6   r*  r+  s    r2   r   zNormalDist.mode  s    	
 xr1   c                     	 | j         S r6   r  r+  s    r2   r   zNormalDist.stdev  s    8{r1   c                 "    	 | j         | j         z  S r6   r/  r+  s    r2   r   zNormalDist.variance  s    +{T[((r1   c                     	 t          |t                    r5t          | j        |j        z   t          | j        |j                            S t          | j        |z   | j                  S r6   r   r   r  r   r  r$  r%  s     r2   __add__zNormalDist.__add__!  Z    	 b*%% 	LbfrvouRY	/J/JKKK"&2+ry111r1   c                     	 t          |t                    r5t          | j        |j        z
  t          | j        |j                            S t          | j        |z
  | j                  S r6   r2  r3  s     r2   __sub__zNormalDist.__sub__/  r5  r1   c                 ^    	 t          | j        |z  | j        t          |          z            S r6   r   r  r  r    r3  s     r2   __mul__zNormalDist.__mul__=  ,    	
 "&2+ry488';<<<r1   c                 ^    	 t          | j        |z  | j        t          |          z            S r6   r9  r3  s     r2   __truediv__zNormalDist.__truediv__E  r;  r1   c                 8    	 t          | j        | j                  S r6   r   r  r  r$  s    r2   __pos__zNormalDist.__pos__M  s    ("&"),,,r1   c                 :    	 t          | j         | j                  S r6   r?  r@  s    r2   __neg__zNormalDist.__neg__Q  s    226'29---r1   c                     	 | |z
   S r6   r0   r3  s     r2   __rsub__zNormalDist.__rsub__W  s    Fbzr1   c                 |    	 t          |t                    st          S | j        |j        k    o| j        |j        k    S r6   )r   r   NotImplementedr  r  r3  s     r2   __eq__zNormalDist.__eq__]  s:    P"j)) 	"!!v:BI$::r1   c                 :    	 t          | j        | j        f          S r6   )hashr  r  r+  s    r2   __hash__zNormalDist.__hash__c  s    MTXt{+,,,r1   c                 P    t          |           j         d| j        d| j        dS )Nz(mu=z, sigma=))r?   r-   r  r  r+  s    r2   __repr__zNormalDist.__repr__g  s.    t**%OO48OOt{OOOOr1   c                     | j         | j        fS r6   r  r+  s    r2   __getstate__zNormalDist.__getstate__j  s    x$$r1   c                 $    |\  | _         | _        d S r6   r  )r  states     r2   __setstate__zNormalDist.__setstate__m  s     %$+++r1   )r   r   )r   )"r-   r.   r/   	__slots__r  classmethodr	  r  r  r  r  r   r&  r(  propertyr
   r   r   r   r   r4  r7  r:  r=  rA  rC  __radd__rE  __rmul__rH  rK  rN  rP  rS  r0   r1   r2   r   r     s-       .
 :? I
# # # # ' ' [' "& 4 4 4 4 4K K KJ J J> > > 	: 	: 	: 	: Q  Q  QD	, 	, 	,   X   X   X   X ) ) X)2 2 22 2 2= = == = =- - -. . . H   H; ; ;- - -P P P% % %& & & & &r1   r   r6   )rs   )r   )J__all__r`   r   r  sys	fractionsr   decimalr   	itertoolsr   r   bisectr   r   r   r   r    r!   r"   r#   r$   r%   	functoolsr&   operatorr'   collectionsr(   r)   r*   r  rm   r   rP   r\   rb   rD   rA   rr   rv   rE   r|   
float_infomant_digr   __annotations__rf   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   r0   r1   r2   <module>rg     sv  hT  .    



             % % % % % % % % , , , , , , , , < < < < < < < < < < < < < < < < < < < <             8 8 8 8 8 8 8 8 8 8	c	 	 	 	 	j 	 	 	3 3 3l& & & &R     4 4 4>+ + +\  $          3>22Q6 6 6 6
#3 
#3 
#5 
# 
# 
# 
#S S W    <" " ",# # # #LG G G&5, 5, 5, 5,p+ + +0     ,  &E+ E+ E+ E+PB B B<K K Kr ; (4 (4 (4 (4 (4b)% )% )% )%X& & & &R? ? ? ?$? ? ? ?$
4 
4 
4(  8H H HB :02HII  05 8> 8> 8> 8> 8>|G G GV	0000000 	 	 	D	\& \& \& \& \& \& \& \& \& \&s   D D'&D'