o
    jgjD                     @   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      d S N abr&   r&   X/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/sets/handlers/intersection.py_      r+   c                 C   s   t | j| jt| j|S r%   )r   sym	conditionr   base_setr'   r&   r&   r*   r+      s   c                 C      | S r%   r&   r'   r&   r&   r*   r+       r,   c                 C   s   | t ju r| S |S r%   )r	   r   r'   r&   r&   r*   r+   $   s   c                 C   s
   t || S r%   )r#   r'   r&   r&   r*   r+   (      
c                 C   s  |j rW| js|jstt| j|jS | jrW|jrW| j| j}}|j|j}}t||}t||}dtj |v r<tj	|v sHdtj |v rOtj	|v rOt
|td}t|| ddS |tjrg }tdtdd}	| js| jD ]}
tj	|
jd v r~||
jd  qlt
| }t||S | jr| jD ]8}
tj	|
jd v r||
jd  tj|
jd v r|tt|	|	 |
jd  tj	|
jd v r|td qt
| }t||S d S d S )N   r   T)polarx)clsreal   )is_ComplexRegionr3   r   r   sets
a_interval
b_intervalr	   PiZeror   r   	is_subsetr   r   r
   psetsargsappendr   r   )selfotherr1theta1r2theta2new_r_intervalnew_theta_intervalnew_intervalr4   elementr&   r&   r*   r+   ,   sN   





c                 C   r0   r%   r&   r'   r&   r&   r*   r+   [   r,   c                 C   s   t dd | j|jd d  D sd S | jdkrtjS tt|j| j}||vr,|d7 }tt	|j
| j
}||vr=|d8 }t| t||d S )Nc                 s       | ]}|j V  qd S r%   	is_number.0ir&   r&   r*   	<genexpr>b       _.<locals>.<genexpr>r2   r   r7   )allr@   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   rX   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r)tjS | }|jjr2|j}|}|jjr;|j}|jjrA|S |jjrG| S ddlm	} dd }|||t
d||t
d \}}|d u oj|d u }|rptjS | d }	|||	}
 fd	d
}tt|j|j |||
}|d u rtjS |||
}|d u rt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   rL   r%   rM   )rP   vr&   r&   r*   rR   z   rS   z_.<locals>.<genexpr>.<genexpr>N)rU   r@   )rP   rr&   r&   r*   rR   z   s   " rT   r   )diop_linearc                 S   s   | j || j  S r%   )r[   step)r_   rQ   r&   r&   r*   <lambda>   s    z_.<locals>.<lambda>r(   r)   c                    sl   || j kr|S t| j |   }t|| j | |d }|| j kr!nt| jt|kr.||8 }|| vr4d S |S )N)r[   r   r   ra   )rD   csts1ra   r&   r*   _first_finite_point   s   

z_.<locals>._first_finite_pointc                    s>   t | j  }| jjrt|| j|}|S t| j|| |}|S r%   )r   ra   r[   	is_finiter   stop)r_   firstre   rvrg   r&   r*   _updated_range   s   z_.<locals>._updated_range)rU   r	   r   rZ   rX   r[   is_infinitereversed%sympy.solvers.diophantine.diophantiner`   r
   as_coeff_Addabsr   ra   r   rW   rY   rj   r   )r(   r)   rD   rF   r`   eqvavbno_solutiona0rd   rh   rf   s2rm   r[   rj   r&   rg   r*   r+   w   s\   $




c                 C   r0   r%   r&   r'   r&   r&   r*   r+      r,   c                 C   r0   r%   r&   r'   r&   r&   r*   r+      r,   c           $   	      sN  ddl m} t| jjdks| jj| jjkrd S | jd }|tju rd }t	|t
rE|jtjfkrE|jj}|jjd }td}|||}n|tju rPtd }}|d ur| jj | jjd zt| | |fdd}W n ttfyy   Y d S w t|dkrtjS tdd |D rt|dkr|d \}}	|j\}
 ||
 }tt|tjS d S t fd	d|D  S |tjkr8dd
lm}m fdd}| jj}| jjd tjdd}||}| \}}t|}||}||}|j}t|}|jrn|jdu rtjS |hkrd S ||t !t"|M }||||8 }t||S t	|t#r%ddl$m%}m&}m'} | jj}| jjd d\}}|j(|j)}}|j*rd|}n|}|||j+\}}|||j,\}} t-dd || fD r#|krt|dkr|j.d }|krt| dkr| j.d }tdd ||fD rd 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u rtjS t	|!t2r|!j3tj4urtt|! }!|!d ur!tt||!S d S d S d S )Nr   )diophantiner7   mT)symspermutec                 s   s     | ]}|D ]}|j V  qqd S r%   )free_symbols)rP   tuplsr&   r&   r*   rR          rT   c                 3   s     | ]}  |d  V  qdS )r   N)subs)rP   r   )fnnr&   r*   rR   )  r   )denomssolve_linearc                    sV   g }| D ]"} |d|g\}}||kr| t| q| t|t|d qt| S )Nr   )rA   r   r   r   r   )exprsr-   solsrQ   r4   xis)r   r&   r*   _solution_union.  s   z_.<locals>._solution_union)r6   F)invert_realinvert_complexsolveset)NNc                 s   s    | ]}t |tV  qd S r%   )
isinstancer   rO   r&   r&   r*   rR   l  s    c                 s   s    | ]}|d u V  qd S r%   r&   rO   r&   r&   r*   rR   w  s    c                 s   rL   r%   )is_realrO   r&   r&   r*   rR   }  rS   )5sympy.solvers.diophantinery   lenlamda	variables	signature	base_setsr	   r   r   r   exprr
   r   list	TypeErrorNotImplementedErrorr   anyr}   expandr    r   r   r   sympy.solvers.solversr   r   nameas_real_imagr   is_zeror   	make_argsr"   r   sympy.solvers.solvesetr   r   r   	left_open
right_openr   rX   rZ   rU   r@   	intersectr>   r   r   rV   r]   )$rB   rC   ry   r/   gmvarrz   solnssolnsolmtr   r   r   fn_f_reimifreelamr   r   r   new_infnew_sup	new_lopen	new_ropeninverterg1h1g2h2	range_setrJ   	solutionsr&   )r   r   r   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   )rP   rQ   jr&   r&   r*   rR     s    rT   )r   r@   r	   r   r!   zipr9   r'   r&   r&   r*   r+     s   c           
      C   s  t jt jf}| t| kr#| j| j}}|js!||v s!|js!||v r#|S | |s*d S d}| j|j	kr|j| j	kr| j|jk rE|j}|j
}nH| j|jkrR| j}| j
}n;| j}t| j|js|jtrl| jtsl|j}n| jtr||jts|| j}ntt| |gd j}| j
p|j
}| j	|j	k r| j	}| j}	nH| 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|	rd}nd}|rt jS t||||	S )NFr   T)r	   NegativeInfinityr]   r   leftrightr   _is_comparabler[   r\   r   r   hasr   r   r   r   r   )
r(   r)   inftylr_   emptyr[   r   r\   r   r&   r&   r*   r+     sX   
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+     r,   c                 C   s   t | j|j@  S r%   )r   	_elementsr'   r&   r&   r*   r+     s   c                    s.   zt  fdd| D  W S  ty   Y d S w )Nc                    s   g | ]}| v r|qS r&   r&   )rP   elr)   r&   r*   
<listcomp>  s    z_.<locals>.<listcomp>)r   r   r'   r&   r   r*   r+     s
   c                 C   r$   r%   r&   r'   r&   r&   r*   r+     r,   c                 C   r0   r%   r&   r'   r&   r&   r*   r+     r,   c                 C   r0   r%   r&   r'   r&   r&   r*   r+     r,   c                 C   r0   r%   r&   r'   r&   r&   r*   r+     r,   c                 C   sb   z&|j tju r|jtju r| W S tt| jt|j	t
|jd }t||W S  ty0   Y d S w )Nr7   )_infr	   r   _supr]   r   rW   rX   r   r   r   r   r#   
ValueError)r(   r)   r   r&   r&   r*   _intlike_interval  s   "r   c                 C   
   t | |S r%   r   r'   r&   r&   r*   r+     r1   c                 C   r   r%   r   r'   r&   r&   r*   r+     r1   N)4sympy.core.basicr   sympy.core.functionr   r   sympy.core.mulr   sympy.core.numbersr   r   sympy.core.relationalr   sympy.core.singletonr	   sympy.core.symbolr
   r   sympy.core.sortingr   $sympy.functions.elementary.complexesr   #sympy.functions.elementary.integersr   r   sympy.sets.fancysetsr   sympy.sets.setsr   r   r   r   r   sympy.multipledispatchr   sympy.sets.conditionsetr   r   r   r   r   r   r   r   r   r    r!   sympy.simplify.radsimpr"   r#   registerr+   r   r&   r&   r&   r*   <module>   s     












.







r




 
$



C















	

