a
     ¬<b‰  ã                   @   sà  d dl mZ d dl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)ÚEmptySetÚ	FiniteSetÚIntersectionÚIntervalÚ
ProductSetÚSetÚUnionÚUniversalSet)ÚComplexRegionÚNaturalsÚ	Naturals0ÚIntegersÚ	RationalsÚReals)Ú
DispatcherÚ
union_setsc                 C   s   | S ©N© ©ÚaÚbr   r   úi/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/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   A   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   E   s    


c                 C   s   |  | ¡r| S d S r   )r   r   r   r   r   r   T   s    
c                 C   sÈ   |   |¡rÄddlm}m} || j|jƒ}|| j|jƒ}||k sV||krZ|| vrZ||vrZd S || j|jƒ}|| j|jƒ}| j|ks†| jo”|j|kp”|j}| j|ks¦| jo´|j|kp´|j}t||||ƒS d S )Nr   )ÚMinÚMax)	Z_is_comparableZ(sympy.functions.elementary.miscellaneousr"   r#   ÚendÚstartÚ	left_openÚ
right_openr   )r   r   r"   r#   r$   r%   r&   r'   r   r   r   r   Z   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oFt| | j¡ƒtju oF| jj}|sP|rŠ| j o^| j|v}| jon| 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 ƒƒ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>Œ   ó    z_.<locals>.<genexpr>c                    s   g | ]}ˆ   |¡d kr|‘qS )Tr+   r,   r/   r   r   Ú
<listcomp>Ž   r1   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.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>   sR   ( 


































