a
    î}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   s4   t |tƒr|j|j | _| _nt|ƒd | _| _dS )zSet value from argumentç        N)Ú
isinstancer   Ú_sÚ_tÚfloat©ÚselfÚy© r   úU/var/www/html/django/DPS/env/lib/python3.9/site-packages/geographiclib/accumulator.pyÚSet   s    
zAccumulator.Setr   c                 C   s   d | _ | _|  |¡ dS )ZConstructorr   N)r   r   r   r	   r   r   r   Ú__init__   s    zAccumulator.__init__c                 C   sL   t  || j¡\}}t  || j¡\| _| _| jdkr:|| _n|  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   )r   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r   r   r   r      s   
'
r   N)r   Zgeographiclib.geomathr   r   r   r   r   r   Ú<module>   s   