
    gW                     (    d Z ddlmZ  G d d      Zy)zBaccumulator.py: transcription of GeographicLib::Accumulator class.    )Mathc                   8    e Zd ZdZd Zd	dZd Zd	dZd Zd Z	y)
Accumulatorz(Like math.fsum, but allows a running sumc                     t        |t              r$|j                  |j                  c| _        | _        yt	        |      dc| _        | _        y)zSet value from argument        N)
isinstancer   _s_tfloatselfys     Y/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/geographiclib/accumulator.pySetzAccumulator.Set   s8    ![!qttdgtwq3dgtw    c                 B    dx| _         | _        | j                  |       y)Constructorr   N)r	   r
   r   r   s     r   __init__zAccumulator.__init__   s    DGdgHHQKr   c                     t        j                  || j                        \  }}t        j                  || j                        \  | _        | _        | j                  dk(  r|| _        y| xj                  |z  c_        y)zAdd a valuer   N)r   sumr
   r	   )r   r   us      r   AddzAccumulator.Add    sZ     88AtwwDAqxx477+DGTW: ww!|dg
gglgr   c                 t    |dk(  r| j                   S t        |       }|j                  |       |j                   S )zReturn sum + yr   )r	   r   r   )r   r   bs      r   SumzAccumulator.SumG   s0    CxWWnDAEE!H44Kr   c                 X    | xj                   dz  c_         | xj                  dz  c_        y)z
Negate sumN)r	   r
   )r   s    r   NegatezAccumulator.NegateO   s    GGrMGGGrMGr   c                 p    t        j                  | j                  |      | _        | j                  d       y)zRemainder on division by yr   N)r   	remainderr	   r   r   s     r   	RemainderzAccumulator.RemainderT   s#    nnTWWa(DGHHSMr   N)r   )
__name__
__module____qualname____doc__r   r   r   r   r   r!    r   r   r   r      s$    0'
%N
r   r   N)r%   geographiclib.geomathr   r   r&   r   r   <module>r(      s    H 'F Fr   