U
    ZÊ¹j�  ã                   @   sð  d dl mZ d dl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mZmZmZmZmZ d dlm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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 )é    )ÚS)Úsympify)ÚMinÚMax)ÚEmptySetÚ	FiniteSetÚIntersectionÚIntervalÚ
ProductSetÚSetÚUnionÚUniversalSet)ÚComplexRegionÚNaturalsÚ	Naturals0ÚIntegersÚ	RationalsÚReals)Ú
DispatcherÚ
union_setsc                 C   s   | S ©N© ©ÚaÚbr   r   úX/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/sets/handlers/union.pyÚ_   s    r   c                 C   s   | S r   r   r   r   r   r   r      s    c                 C   s   | S r   r   r   r   r   r   r      s    c                 C   s   | S r   r   r   r   r   r   r      s    c                 C   s   | S r   r   r   r   r   r   r      s    c                 C   s   | S r   r   r   r   r   r   r   "   s    c                 C   s&   t | |ƒ}|| kr|S ||kr"| S d S r   )r   )r   r   Z	intersectr   r   r   r   &   s
    
c                 C   s`   |  tj¡rt |¡}|jr\| js:|js:tt| j|jƒƒS | jr\|jr\tt| j|jƒdd�S d S )NT)Úpolar)	Ú	is_subsetr   r   r   Z	from_realZis_ComplexRegionr   r   Úsetsr   r   r   r   r   .   s    
c                 C   s   |S r   r   r   r   r   r   r   =   s    c                 C   s   | S r   r   r   r   r   r   r   B   s    c                 C   sx   |  | ¡r| S t|jƒt| jƒkr&d S t| jƒdkrt| j\}}|j\}}||kr^|t||ƒ S ||krtt||ƒ| S d S )Né   )r   Úlenr   r   )r   r   Za1Za2Úb1Úb2r   r   r   r   F   s    


c                 C   s   |  | ¡r| S d S r   )r   r   r   r   r   r   U   s    
c                 C   s¸   |   |¡r´t| j|jƒ}t| j|jƒ}||k sF||krJ|| krJ||krJd S t| j|jƒ}t| j|jƒ}| j|ksv| jo„|j|kp„|j}| j|ks–| jo¤|j|kp¤|j}t||||ƒS d S r   )Z_is_comparabler   Úendr   ÚstartÚ	left_openÚ
right_openr	   )r   r   r$   r%   r&   r'   r   r   r   r   [   s(    
ÿÿÿÿÿc                 C   s   t jS r   )r   r   r   r   r   r   r   n   s    c                 C   sŽ   | j o"t| | j¡ƒtjko"| jj}| joFt| | j¡ƒtjkoF| jj}|sP|rŠ| j o^| j|k}| jon| j|k}t	| j| j||ƒ}||hS d S r   )
r&   r   Úcontainsr%   r   ÚtrueÚ	is_finiter'   r$   r	   )r   r   Zopen_left_in_b_and_finiteZopen_right_in_b_and_finiteZ	open_leftZ
open_rightZnew_ar   r   r   r   r   s     ÿþÿþc                 C   s   t | j|jB Ž S r   )r   Z	_elementsr   r   r   r   r   …   s    c                    s4   t ‡ fdd„| D ƒƒr0t‡ fdd„| D ƒŽ ˆ hS d S )Nc                 3   s   | ]}ˆ   |¡d kV  qdS )TN©r(   ©Ú.0Úx©r   r   r   Ú	<genexpr>Œ   s     z_.<locals>.<genexpr>c                    s   g | ]}ˆ   |¡d kr|‘qS )Tr+   r,   r/   r   r   Ú
<listcomp>Ž   s      z_.<locals>.<listcomp>)Úanyr   r   r   r/   r   r   ‰   s
     ÿc                 C   s   d S r   r   r   r   r   r   r   ‘   s    N)Zsympy.core.singletonr   Zsympy.core.sympifyr   Z(sympy.functions.elementary.miscellaneousr   r   Zsympy.sets.setsr   r   r   r	   r
   r   r   r   Zsympy.sets.fancysetsr   r   r   r   r   r   Zsympy.multipledispatchr   r   Úregisterr   r   r   r   r   Ú<module>   sT   ( 


































