U
    ÿî¹`7  ã                   @   s,   d dl Z G dd„ deƒZG dd„ deƒZdS )é    Nc                   @   s*   e Zd ZdZdd„ Zdd„ Zd
dd„Zd	S )ÚAverageMeterz1Computes and stores the average and current valuec                 C   s   |   ¡  d S ©N)Úreset©Úself© r   ú'/workspace/OverlapPredator/lib/timer.pyÚ__init__   s    zAverageMeter.__init__c                 C   s"   d| _ d| _d| _d| _d| _d S )Nr   ç        )ÚvalÚavgÚsumÚsq_sumÚcountr   r   r   r   r   
   s
    zAverageMeter.reseté   c                 C   sf   || _ |  j|| 7  _|  j|7  _| j| j | _|  j|d | 7  _| j| j | jd  | _d S )Né   )r   r   r   r   r   Úvar)r   r   Únr   r   r   Úupdate   s    zAverageMeter.updateN)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   r   r   r   r   r   r      s   r   c                   @   s2   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	d
„ZdS )ÚTimerzA simple timer.c                 C   s"   d| _ d| _d| _d| _d| _d S )Nr
   r   ©Ú
total_timeÚcallsÚ
start_timeÚdiffr   r   r   r   r   r	      s
    zTimer.__init__c                 C   s"   d| _ d| _d| _d| _d| _d S )Nr   r   r   r   r   r   r   $   s
    zTimer.resetc                 C   s   t   ¡ | _d S r   )Útimer   r   r   r   r   Útic+   s    z	Timer.ticTc                 C   sP   t   ¡ | j | _|  j| j7  _|  jd7  _| j| j | _|rF| jS | jS d S )Nr   )r   r   r   r   r   r   )r   Úaverager   r   r   Útoc0   s    z	Timer.tocN)T)r   r   r   r   r	   r   r    r"   r   r   r   r   r      s
   r   )r   Úobjectr   r   r   r   r   r   Ú<module>   s   