
    Yf                          d dl Z  G d d      Zy)    Nc                       e Zd ZdZddZddZddZdeddfdZdefd	Z	de
fd
ZdefdZdefdZdefdZdefdZy)RunningStatsz Incrementally compute statisticsreturnNc                 $    | j                          y )N)clearselfs    T/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/scalene/runningstats.py__init__zRunningStats.__init__	   s    

    c                 j   t               }|j                  dkD  r| j                  | j                  z  |j                  |j                  z  z   | j                  |j                  z   z  |_        | j                  |j                  z   |_        t        | j                  |j                        |_        |S | }|S )Nr   )r   _n_m1max_peak)r	   otherss      r
   __add__zRunningStats.__add__   s    N88a<XX'%))ehh*>>%(("AE
 77UXX%AD$**ekk2AG  Ar   c                 X    d| _         dx| _        x| _        x| _        | _        d| _        y)zReset for new samplesr   g        N)r   r   _m2_m3_m4r   r   s    r
   r   zRunningStats.clear   s,    4777487dh
r   xc                 h   || j                   kD  r|| _         | j                  }| xj                  dz  c_        || j                  z
  }|| j                  z  }||z  }||z  |z  }| xj                  |z  c_        | xj                  ||z  | j                  | j                  z  d| j                  z  z
  dz   z  d|z  | j                  z  z   d|z  | j
                  z  z
  z  c_        | xj
                  ||z  | j                  dz
  z  d|z  | j                  z  z
  z  c_        | xj                  |z  c_        y)zAdd a sample               N)r   r   r   r   r   r   )r	   r   n1deltadelta_ndelta_n2term1s          r
   pushzRunningStats.push    s   tzz>DJWW1DHH$''/W$"$GH$'' 1AK ?! CD(lTXX%&'kDHH$%	

 	EGOtww{3a'kDHH6LLLEr   c                     | j                   S )zThe maximum sample seen.)r   r   s    r
   peakzRunningStats.peak3   s    zzr   c                     | j                   S )zThe number of samples)r   r   s    r
   sizezRunningStats.size7   s    wwr   c                     | j                   S )zArithmetic mean, a.k.a. average)r   r   s    r
   meanzRunningStats.mean;   s    xxr   c                 :    | j                   | j                  dz
  z  S )Varianceg      ?)r   r   r   s    r
   varzRunningStats.var?   s    xx477S=))r   c                 H    t        j                  | j                               S )zStandard deviation)mathsqrtr.   r   s    r
   stdzRunningStats.stdC   s    yy$$r   c                 b    | j                         t        j                  | j                        z  S )zStandard error of the mean)r2   r0   r1   r   r   s    r
   semzRunningStats.semG   s     xxzDIIdgg...r   )r   N)r	   r   r   r   r   r   )__name__
__module____qualname____doc__r   r   r   floatr%   r'   intr)   r+   r.   r2   r4    r   r
   r   r      so    *e  &e c e *U *%U %/U /r   r   )r0   r   r;   r   r
   <module>r<      s    C/ C/r   