B
    ™‘[Œ  ã               @   sˆ  d dl mZmZ d dlmZmZmZmZmZm	Z	m
Z
mZ d dlmZmZmZmZmZmZmZmZmZ d dlmZmZ d dlmZmZmZmZmZmZm Z m!Z! d dl"m#Z# d dl$m%Z%m&Z&m'Z'm(Z(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-eeeƒdd„ ƒZ-eeeƒdd„ ƒZ-dS )é    )ÚdispatchÚ
Dispatcher)ÚBasicÚExprÚFunctionÚAddÚMulÚPowÚDummyÚInteger)	ÚMinÚMaxÚSetÚsympifyÚLambdaÚsymbolsÚexpÚlogÚS)ÚInfinityÚNegativeInfinity)ÚimagesetÚIntervalÚ	FiniteSetÚUnionÚImageSetÚ
ProductSetÚEmptySetÚIntersection)ÚFunctionClass)ÚAndÚOrÚNotÚtrueÚfalsezx yc             C   s   d S )N© )ÚxÚyr%   r%   ú6lib/python3.7/site-packages/sympy/sets/handlers/add.pyÚ_set_add   s    r)   c             C   s   | | S )Nr%   )r&   r'   r%   r%   r(   r)      s    c             C   s.   t | j|j | j|j | jp |j| jp*|jƒS )z`
    Additions in interval arithmetic
    https://en.wikipedia.org/wiki/Interval_arithmetic
    )r   ÚstartÚendÚ	left_openÚ
right_open)r&   r'   r%   r%   r(   r)      s    c             C   s$   | j tjkrtt tƒS ttjhƒS )N)r*   r   r   r   Úoor   r   )r&   r'   r%   r%   r(   r)      s    c             C   s$   | j tjkrtt tƒS ttjhƒS )N)r+   r   r   r   r.   r   r   )r&   r'   r%   r%   r(   r)   %   s    c             C   s   d S )Nr%   )r&   r'   r%   r%   r(   Ú_set_sub,   s    r/   c             C   s   | | S )Nr%   )r&   r'   r%   r%   r(   r/   0   s    c             C   s.   t | j|j | j|j | jp |j| jp*|jƒS )zc
    Subtractions in interval arithmetic
    https://en.wikipedia.org/wiki/Interval_arithmetic
    )r   r*   r+   r,   r-   )r&   r'   r%   r%   r(   r/   4   s    c             C   s"   t jtjkrtt tƒS tt ƒS )N)Úselfr*   r   r   r   r.   r   )r&   r'   r%   r%   r(   r/   =   s    c             C   s"   t jtjkrtt tƒS tt ƒS )N)r0   r*   r   r   r   r.   r   )r&   r'   r%   r%   r(   r/   C   s    N).Zsympy.multipledispatchr   r   Z
sympy.corer   r   r   r   r   r	   r
   r   Zsympyr   r   r   r   r   r   r   r   r   Zsympy.core.numbersr   r   Z
sympy.setsr   r   r   r   r   r   r   r   Zsympy.core.functionr   Zsympy.logic.boolalgr    r!   r"   r#   r$   Z_xZ_yr)   r/   r%   r%   r%   r(   Ú<module>   s"   (,(		