o
    à8Va  ã                   @   sØ   d dl mZmZ d dlmZmZ d dlmZ d dlm	Z	 edƒ\Z
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 )é    )ÚSetÚsymbols)ÚBasicÚExpr)Údispatch)ÚIntervalzx yc                 C   ó   d S ©N© ©ÚxÚyr
   r
   ú9/usr/lib/python3/dist-packages/sympy/sets/handlers/mul.pyÚ_set_mul	   ó   r   c                 C   r   r	   r
   r   r
   r
   r   r      r   c                 C   s   | | S r	   r
   r   r
   r
   r   r      ó   c                 C   s’   | j |j  t| jp|jƒf| j |j t| jp|jƒf| j|j  t| jp%|jƒf| j|j t| jp2|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comvalsZminvalZminopenZmaxvalZmaxopenr
   r
   r   r      s   üüc                 C   r   r	   r
   r   r
   r
   r   Ú_set_div,   r   r   c                 C   s   | | S r	   r
   r   r
   r
   r   r   0   r   c                 C   r   r	   r
   r   r
   r
   r   r   4   r   c                 C   s€   ddl m} ddlm} |j|j jrt| |ƒS |jdkr!|}nd|j }|jdkr/| }nd|j }|| t|||j|j	ƒƒS )z`
    Divisions in interval arithmetic
    https://en.wikipedia.org/wiki/Interval_arithmetic
    r   )Úset_mul)Úooé   )
Zsympy.sets.setexprr   Úsympyr   r   r   Zis_negativer   r   r   )r   r   r   r   Ús2Ús1r
   r
   r   r   8   s   



N)r   r   r   Z
sympy.corer   r   Zsympy.multipledispatchr   Z
sympy.setsr   Z_xZ_yr   r   r
   r
   r
   r   Ú<module>   s*    






