U
    L?hjD                     @   s  d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZ d dlmZmZmZmZmZ 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) d dlm*Z*m+Z+m,Z,m-Z- d dl.m/Z/ e!dZ0e01e#e#dd Z2e01e#edd Z2e01e%e$dd Z2e01e%e%dd Z2e01ee%dd Z2e01eedd Z2e01e$e&dd Z2e01e'edd Z2e01e'e%dd Z2e01e'e'dd Z2e01e'e$dd Z2e01e'e)dd Z2e01e(ed d Z2e01e-e-d!d Z2e01eed"d Z2e01e*ed#d Z2e01e+ed$d Z2e01eed%d Z2e01eed&d Z2e01eed'd Z2e01e$e)d(d Z2e01e%e)d)d Z2e01e)e&d*d Z2d+d, Z3e01e$ed-d Z2e01e%ed.d Z2d/S )0    )_aresame)Lambdaexpand_complex)Mul)ilcmFloat)Eq)S)Dummysymbols)ordered)sign)floorceiling)ComplexRegion)	FiniteSetIntersectionIntervalSetUnion)
Dispatcher)ConditionSet)IntegersNaturalsRealsRangeImageSet	Rationals)EmptySetUniversalSetimageset
ProductSet)numerintersection_setsc                 C   s   d S N abr%   r%   R/var/www/html/venv/lib/python3.8/site-packages/sympy/sets/handlers/intersection.py_   s    r*   c                 C   s   t | j| jt| j|S r$   )r   sym	conditionr   base_setr&   r%   r%   r)   r*      s    c                 C   s   | S r$   r%   r&   r%   r%   r)   r*       s    c                 C   s   | t jkr| S |S r$   )r	   r   r&   r%   r%   r)   r*   $   s    c                 C   s
   t || S r$   )r#   r&   r%   r%   r)   r*   (   s    c                 C   s  |j r| js$|js$tt| j|jS | jr|jr| j| j }}|j|j }}t||}t||}dtj |krxtj	|ksdtj |krtj	|krt
|td}t|| ddS |tjrg }tdtdd}	| js| jD ]$}
tj	|
jd kr||
jd  qt
| }t||S | jr| jD ]x}
tj	|
jd krH||
jd  tj|
jd krx|tt|	|	 |
jd  tj	|
jd kr"|td q"t
| }t||S d S )N   r   T)polarx)clsreal   )Zis_ComplexRegionr/   r   r   setsZ
a_intervalZ
b_intervalr	   PiZZeror   r   	is_subsetr   r   r
   Zpsetsargsappendr   r   )selfotherr1Ztheta1r2Ztheta2Znew_r_intervalZnew_theta_intervalnew_intervalr0   elementr%   r%   r)   r*   ,   sL    




c                 C   s   | S r$   r%   r&   r%   r%   r)   r*   [   s    c                 C   s   t dd | j|jd d  D s&d S | jdkr6tjS tt|j| j}||krX|d7 }tt	|j
| j
}||krz|d8 }t| t||d S )Nc                 s   s   | ]}|j V  qd S r$   Z	is_number.0ir%   r%   r)   	<genexpr>b   s     _.<locals>.<genexpr>r.   r   r3   )allr7   sizer	   r   r   maxinfr   minsupr#   r   )r'   r(   startendr%   r%   r)   r*   _   s    "
c                 C   s   t | t|jtjS r$   )r#   r   rH   r	   Infinityr&   r%   r%   r)   r*   s   s    c                    s  t dd | |fD sd S |s$tjS | s.tjS |j| jk r@tjS |j| jkrRtjS | }|jjrd|j}|}|jjrv|j}|jjr|S |jjr| S ddlm	} dd }|||t
d||t
d \}}|d ko|d k}|rtjS | d }	|||	}
 fd	d
}tt|j|j |||
}|d kr.tjS |||
}|d krHtjS  fdd}|| |}|||}t|jdk r~|j}t|jdk r|j}t|j|j}t|j|j}t|| S )Nc                 s   s"   | ]}t d d |jD V  qdS )c                 s   s   | ]}|j V  qd S r$   r?   )rA   vr%   r%   r)   rC   z   s     z_.<locals>.<genexpr>.<genexpr>N)rE   r7   )rA   rr%   r%   r)   rC   z   s     rD   r   )diop_linearc                 S   s   | j || j  S r$   )rK   step)rO   rB   r%   r%   r)   <lambda>       z_.<locals>.<lambda>r'   r(   c                    sl   || j kr|S t| j |   }t|| j | |d }|| j krBnt| jt|kr\||8 }|| krhd S |S )N)rK   r   r   rQ   )r;   csts1rQ   r%   r)   _first_finite_point   s    

z_.<locals>._first_finite_pointc                    s<   t | j  }| jjr&t|| j|}nt| j|| |}|S r$   )r   rQ   rK   	is_finiter   stop)rO   firstrV   rvrX   r%   r)   _updated_range   s
    z_.<locals>._updated_range)rE   r	   r   rJ   rH   rK   is_infinitereversedZ%sympy.solvers.diophantine.diophantinerP   r
   Zas_coeff_Addabsr   rQ   r   rG   rI   r[   r   )r'   r(   r;   r<   rP   eqvaZvbZno_solutionZa0rU   rY   rW   s2r^   rK   r[   r%   rX   r)   r*   w   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           $   	      s\  ddl m} t| jjdks,| jj| jjkr0d S | jd }|tjkrd }t	|t
r|jtjfkr|jj}|jjd }td}|||}n|tjkrtd }}|d k	r| jj | jjd zt| | |fdd}W n ttfk
r   Y d S X t|dkrtjS tdd |D rtt|dkrn|d \}}	|j\}
 ||
 }tt|tjS d S nt fd	d|D  S |tjkr~dd
lm}m fdd}| jj}| jjd tjdd}||}| \}}t|}||}||}|j}t|}|jr(n:|jdkr:tjS |hkrJd S ||t !t"|M }||||8 }t||S t	|t#rXddl$m%}m&}m'} | jj}| jjd d\}}|j(|j) }}|j*r|}n|}|||j+\}}|||j,\}} t-dd || fD rT|kr8t|dkr8|j.d }|krZt| dkrZ| j.d }tdd ||fD rvd S tj}!t-dd ||fD r||kr|| }}t#||||}"|/|"}!n<|0tjr||tj}#t	|!t
t1fs|#/|}!nd S |!tjkrtjS t	|!t2r6|!j3tj4k	r6tt|! }!|!d k	rPtt||!S d S d S d S )Nr   )diophantiner3   mT)ZsymsZpermutec                 s   s   | ]}|D ]}|j V  q
qd S r$   )free_symbols)rA   Ztuplsr%   r%   r)   rC      s       rD   c                 3   s   | ]}  |d  V  qdS )r   N)subs)rA   rh   )fnnr%   r)   rC   )  s     )denomssolve_linearc                    sV   g }| D ]D} |d|g\}}||kr6| t| q| t|t|d qt| S )Nr   )r8   r   r   r   r   )Zexprsr+   ZsolsrB   r0   Zxis)rm   r%   r)   _solution_union.  s    z_.<locals>._solution_union)r2   F)invert_realinvert_complexsolveset)NNc                 s   s   | ]}t |tV  qd S r$   )
isinstancer   r@   r%   r%   r)   rC   l  s     c                 s   s   | ]}|d kV  qd S r$   r%   r@   r%   r%   r)   rC   w  s     c                 s   s   | ]}|j V  qd S r$   )is_realr@   r%   r%   r)   rC   }  s     )5Zsympy.solvers.diophantinere   lenZlamda	variables	signatureZ	base_setsr	   r   rr   r   exprr
   ri   list	TypeErrorNotImplementedErrorr   anyrg   expandr    r   r   r   Zsympy.solvers.solversrl   rm   nameZas_real_imagr   is_zeror   Z	make_argsr"   r   Zsympy.solvers.solvesetro   rp   rq   	left_open
right_openrs   rH   rJ   rE   r7   	intersectr6   r   r   rF   rM   )$r9   r:   re   r-   Zgmvarrf   ZsolnsZsolnZsolmtrw   rl   rn   fZn_Zf_reZimZifreeZlamro   rp   rq   Znew_infZnew_supZ	new_lopenZ	new_ropenZinverterg1Zh1g2Zh2Z	range_setr=   Z	solutionsr%   )rj   rk   rm   r)   r*      s    
	


 







c                 C   s6   t |jt | jkrtjS tdd t| j|jD  S )Nc                 s   s   | ]\}}| |V  qd S r$   )r   )rA   rB   jr%   r%   r)   rC     s     rD   )rt   r7   r	   r   r!   zipr4   r&   r%   r%   r)   r*     s    c           
      C   s  t jt jf}| t| krF| j| j }}|jsB||ksB|jsB||krF|S | |sTd S d}| j|j	kr |j| j	kr | j|jk r|j}|j
}n| j|jkr| j}| j
}n~| j}t| j|js|jtr| jts|j}n:| jtr|jts| j}ntt| |gd j}| j
p$|j
}| j	|j	k rB| j	}| j}	n| j	|j	kr^|j	}|j}	n| j	}t| j	|j	s|j	tr| j	ts|j	}n:| j	tr|j	ts| j	}ntt| |gd j	}| jp|j}	|| dkr|s|	rd}nd}|rt jS t||||	S )NFr   T)r	   NegativeInfinityrM   r   leftrightrs   Z_is_comparablerK   rL   r   r   hasr   rx   r   r   r   )
r'   r(   ZinftylrO   emptyrK   r   rL   r   r%   r%   r)   r*     sV    
c                 C   s   t jS r$   )r	   r   r&   r%   r%   r)   r*     s    c                 C   s   |S r$   r%   r&   r%   r%   r)   r*     s    c                 C   s   t | j|j@  S r$   )r   Z	_elementsr&   r%   r%   r)   r*     s    c                    s4   zt  fdd| D  W S  tk
r.   Y d S X d S )Nc                    s   g | ]}| kr|qS r%   r%   )rA   elr(   r%   r)   
<listcomp>  s      z_.<locals>.<listcomp>)r   ry   r&   r%   r   r)   r*     s    c                 C   s   d 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   sh   zL|j tjkr |jtjkr | W S tt| jt|j	t
|jd }t||W S  tk
rb   Y d S X d S )Nr3   )_infr	   r   Z_suprM   r   rG   rH   r   r   r   r   r#   
ValueError)r'   r(   rh   r%   r%   r)   _intlike_interval  s    "r   c                 C   s
   t | |S r$   r   r&   r%   r%   r)   r*     s    c                 C   s
   t | |S r$   r   r&   r%   r%   r)   r*     s    N)4Zsympy.core.basicr   Zsympy.core.functionr   r   Zsympy.core.mulr   Zsympy.core.numbersr   r   Zsympy.core.relationalr   Zsympy.core.singletonr	   Zsympy.core.symbolr
   r   Zsympy.core.sortingr   Z$sympy.functions.elementary.complexesr   Z#sympy.functions.elementary.integersr   r   Zsympy.sets.fancysetsr   Zsympy.sets.setsr   r   r   r   r   Zsympy.multipledispatchr   Zsympy.sets.conditionsetr   r   r   r   r   r   r   r   r   r    r!   Zsympy.simplify.radsimpr"   r#   registerr*   r   r%   r%   r%   r)   <module>   s    











.







r





 $



C















	


