o
    2³cW  ã                   @   s"   d Z ddlmZ G dd„ dƒZdS )zBaccumulator.py: transcription of GeographicLib::Accumulator class.é    )ÚMathc                   @   sD   e Zd ZdZdd„ Zddd„Zdd„ Zdd	d
„Zdd„ Zdd„ Z	dS )ÚAccumulatorz(Like math.fsum, but allows a running sumc                 C   s6   t |tƒr|j|j| _| _dS t|ƒd| _| _dS )zSet value from argumentç        N)Ú
isinstancer   Ú_sÚ_tÚfloat©ÚselfÚy© r   úO/var/www/html/gps/gps/lib/python3.10/site-packages/geographiclib/accumulator.pyÚSet   s   
zAccumulator.Setr   c                 C   s   d | _ | _|  |¡ dS )ÚConstructorr   N)r   r   r   r	   r   r   r   Ú__init__   s   zAccumulator.__init__c                 C   sN   t  || j¡\}}t  || j¡\| _| _| jdkr|| _dS |  j|7  _dS )zAdd a valuer   N)r   Úsumr   r   )r
   r   Úur   r   r   ÚAdd    s
   

zAccumulator.Addc                 C   s&   |dkr| j S t| ƒ}| |¡ |j S )zReturn sum + yr   )r   r   r   )r
   r   Úbr   r   r   ÚSumG   s
   
zAccumulator.Sumc                 C   s    |  j d9  _ |  jd9  _dS )z
Negate suméÿÿÿÿN)r   r   )r
   r   r   r   ÚNegateO   s   zAccumulator.Negatec                 C   s   t  | j|¡| _|  d¡ dS )zRemainder on division by yr   N)r   Ú	remainderr   r   r	   r   r   r   Ú	RemainderT   s   zAccumulator.RemainderN)r   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r   r   r   r      s    

'r   N)r   Úgeographiclib.geomathr   r   r   r   r   r   Ú<module>   s    