U
    7hW                     @   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   S/var/www/formularioweb/env/lib/python3.8/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 sumN)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   