o
    +< i  ã                   @   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 ©N© ©ÚaÚbr   r   úT/home/app/PyTorch/.pytorch/lib/python3.10/site-packages/sympy/sets/handlers/union.pyÚ_   ó   r   c                 C   r   r   r   r   r   r   r   r      r   c                 C   r   r   r   r   r   r   r   r      r   c                 C   r   r   r   r   r   r   r   r      r   c                 C   r   r   r   r   r   r   r   r      r   c                 C   r   r   r   r   r   r   r   r   "   r   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   =   r   c                 C   r   r   r   r   r   r   r   r   B   r   c                 C   sx   |  | ¡r| S t|jƒt| jƒkrd S t| jƒdkr:| j\}}|j\}}||kr/|t||ƒ S ||kr:t||ƒ| 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¸   |   |¡rZt| j|jƒ}t| j|jƒ}||k s#||kr%|| vr%||vr%d S t| j|jƒ}t| j|jƒ}| j|ks;| joB|j|kpB|j}| j|ksK| joR|j|kpR|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u o| jj}| jo#t| | j¡ƒtju o#| jj}|s(|rE| j o/| j|v}| jo7| j|v}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 ƒƒrt‡ 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.   r1   r   r   Ú
<listcomp>Ž   s    z_.<locals>.<listcomp>)Úanyr   r   r   r1   r   r   ‰   s   ÿc                 C   s   d S r   r   r   r   r   r   r   ‘   r   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>   sV    ( 


































