a
     ¬<b2  ã                   @   s  d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZmZ edƒ\ZZedƒZed	ƒZe ee¡d
d„ ƒZe ee¡dd„ ƒZe ee¡dd„ ƒZe ee¡dd„ ƒZe ee¡dd„ ƒZe ee¡dd„ ƒZe ee¡dd„ ƒZe ee¡dd„ ƒZdS )é    )ÚBasicÚExpr)Úoo)Úsymbols)Ú
Dispatcher)Úset_mul)ÚIntervalÚSetzx yÚ_set_mulÚ_set_divc                 C   s   d S ©N© ©ÚxÚyr   r   úg/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/sympy/sets/handlers/mul.pyÚ_   s    r   c                 C   s   d S r   r   r   r   r   r   r      s    c                 C   s   | | S r   r   r   r   r   r   r      s    c                 C   s’   | j |j  t| jp|jƒf| j |j t| jp0|jƒf| j|j  t| jpJ|jƒf| j|j t| jpd|jƒff}t|ƒ\}}t|ƒ\}}t||||ƒS )zf
    Multiplications in interval arithmetic
    https://en.wikipedia.org/wiki/Interval_arithmetic
    )ÚstartÚboolÚ	left_openÚendÚ
right_openÚminÚmaxr   )r   r   ZcomvalsÚminvalZminopenÚmaxvalZmaxopenr   r   r   r      s    üüc                 C   s   d S r   r   r   r   r   r   r   3   s    c                 C   s   | | S r   r   r   r   r   r   r   7   s    c                 C   s   d S r   r   r   r   r   r   r   ;   s    c                 C   sh   |j |j jrtt tƒS |j dkr*t}n
d|j  }|jdkrFt }n
d|j }t| t|||j|jƒƒS )z`
    Divisions in interval arithmetic
    https://en.wikipedia.org/wiki/Interval_arithmetic
    r   é   )r   r   Zis_negativer   r   r   r   r   )r   r   Ús2Ús1r   r   r   r   ?   s    



N)Z
sympy.corer   r   Zsympy.core.numbersr   Zsympy.core.symbolr   Zsympy.multipledispatchr   Zsympy.sets.setexprr   Zsympy.sets.setsr   r	   Ú_xZ_yr
   r   Úregisterr   r   r   r   r   Ú<module>   s0   














