o
    GZhjD                     @   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&   O/var/www/auris/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   )Zis_ComplexRegionr3   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_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%   Z	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   rN   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   rC   r%   rD   )rF   vr&   r&   r*   rH   z   rI   z_.<locals>.<genexpr>.<genexpr>N)rK   r;   )rF   rr&   r&   r*   rH   z   s   " rJ   r   )diop_linearc                 S   s   | j || j  S r%   )rQ   step)rU   rG   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)rQ   r   r   rW   )r?   csts1rW   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   rW   rQ   	is_finiter   stop)rU   firstr[   rvr]   r&   r*   _updated_range   s   z_.<locals>._updated_range)rK   r	   r   rP   rN   rQ   is_infinitereversedZ%sympy.solvers.diophantine.diophantinerV   r
   Zas_coeff_Addabsr   rW   r   rM   rO   r`   r   )r(   r)   r?   r@   rV   eqvaZvbZno_solutionZa0rZ   r^   r\   s2rc   rQ   r`   r&   r]   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)ZsymsZpermutec                 s   s     | ]}|D ]}|j V  qqd S r%   )free_symbols)rF   Ztuplsr&   r&   r*   rH          rJ   c                 3   s     | ]}  |d  V  qdS )r   N)subs)rF   rm   )fnnr&   r*   rH   )  rn   )denomssolve_linearc                    sV   g }| D ]"} |d|g\}}||kr| t| q| t|t|d qt| S )Nr   )r<   r   r   r   r   )exprsr-   ZsolsrG   r4   Zxis)rs   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   rE   r&   r&   r*   rH   l  s    c                 s   s    | ]}|d u V  qd S r%   r&   rE   r&   r&   r*   rH   w  s    c                 s   rC   r%   )is_realrE   r&   r&   r*   rH   }  rI   )5Zsympy.solvers.diophantinerj   lenZlamda	variables	signatureZ	base_setsr	   r   ry   r   exprr
   ro   list	TypeErrorNotImplementedErrorr   anyrl   expandr    r   r   r   Zsympy.solvers.solversrr   rs   nameZas_real_imagr   is_zeror   Z	make_argsr"   r   Zsympy.solvers.solvesetrv   rw   rx   	left_open
right_openrz   rN   rP   rK   r;   	intersectr:   r   r   rL   rS   )$r=   r>   rj   r/   Zgmvarrk   ZsolnsZsolnZsolmtr~   rr   ru   fZn_Zf_reZimZifreeZlamrv   rw   rx   Znew_infZnew_supZ	new_lopenZ	new_ropenZinverterg1Zh1g2Zh2Z	range_setrA   Z	solutionsr&   )rp   rq   rs   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   )rF   rG   jr&   r&   r*   rH     s    rJ   )r{   r;   r	   r   r!   zipr8   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	   NegativeInfinityrS   r   leftrightrz   Z_is_comparablerQ   rR   r   r   hasr   r   r   r   r   )
r(   r)   ZinftylrU   emptyrQ   r   rR   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   Z	_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&   )rF   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   Z_suprS   r   rM   rN   r   r   r   r   r#   
ValueError)r(   r)   rm   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)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















	

