
    j                     t    d dl mZmZ g dZd Zd Zd Z edee          Z	de	ded	eee	f         fd
Z
d ZdS )    )TupleTypeVar)nano_addnano_divnano_divmodsymmetric_divmodround_half_to_evenc                 R    t          d| z            t          d|z            z   dz  S )z

        >>> 0.7 + 0.2
        0.8999999999999999
        >>> -0.7 + 0.2
        -0.49999999999999994
        >>> nano_add(0.7, 0.2)
        0.9
        >>> nano_add(-0.7, 0.2)
        -0.5

    :param x:
    :param y:
    :returns:
     ʚ;)intxys     `/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/neo4j/time/_arithmetic.pyr   r       s,      
Q#j1n"5"55CC    c                 L    t          d| z            t          d|z            z  S )z

        >>> 0.7 / 0.2
        3.4999999999999996
        >>> -0.7 / 0.2
        -3.4999999999999996
        >>> nano_div(0.7, 0.2)
        3.5
        >>> nano_div(-0.7, 0.2)
        -3.5

    :param x:
    :param y:
    :returns:
    r   )floatr   r   s     r   r   r   3   s'      a  3zA~#6#666r   c                     t          |           }t          d| z            }t          d|z            }t          ||          \  }}t          |           ||dz            fS )z

        >>> divmod(0.7, 0.2)
        (3.0, 0.09999999999999992)
        >>> nano_divmod(0.7, 0.2)
        (3, 0.1)

    :param x:
    :param y:
    :returns:
    r   )typer   divmod)r   r   numbernxnyqrs          r   r   r   F   sa     !WWF	Z!^		B	Z!^		B"b>>DAqq6666!j.))))r   
_TDividenddividenddivisorreturnc                     t          |           }| dk    r-t          | |          \  }}t          |           ||          fS t          |  |          \  }}t          |            ||           fS )Nr   )r   r   r   )r   r   r   quotient	remainders        r   r   r   \   s}     (^^F1}}$Xw77)8}}ffY////$hY88)H~y 1 1111r   c                     d| z  }|t          |          k    r:|dz  dk    r1t          | dz             }t          | dz
            }|dz  dk    r|n|S t          t          |                     S )a  

        >>> round_half_to_even(3)
        3
        >>> round_half_to_even(3.2)
        3
        >>> round_half_to_even(3.5)
        4
        >>> round_half_to_even(3.7)
        4
        >>> round_half_to_even(4)
        4
        >>> round_half_to_even(4.2)
        4
        >>> round_half_to_even(4.5)
        4
        >>> round_half_to_even(4.7)
        5

    :param n:
    :returns:
    
      g      ?   r   )r   round)nten_nupdowns       r   r	   r	   h   sp    . FEE

urzQS\\1s7||!Vq[[rrd*588}}r   N)typingr   r   __all__r   r   r   r   r   r   r   r	    r   r   <module>r/      s   "         D D D&7 7 7&* * *& W\3..
	2	2#(	2
3
?	2 	2 	2 	2    r   