U
    L?h2                     @   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   I/var/www/html/venv/lib/python3.8/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	   Z_xZ_yr
   r   registerr   r   r   r   r   <module>   s0   














