a
    khjD                     @   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%   N/var/www/auris/lib/python3.9/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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*   (   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 |v rxtj	|v sdtj |v rtj	|v rt
|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  qt
| }t||S | jr| jD ]x}
tj	|
jd v rH||
jd  tj|
jd v rx|tt|	|	 |
jd  tj	|
jd v 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}||vrX|d7 }tt	|j
| j
}||v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       _.<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   rI   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 u o|d u }|rtjS | d }	|||	}
 fd	d
}tt|j|j |||
}|d u r.tjS |||
}|d u 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   rD   z_.<locals>.<genexpr>.<genexpr>N)rF   r7   )rA   rr%   r%   r)   rC   z   rD   rE   r   )diop_linearc                 S   s   | j || j  S r$   )rL   step)rP   rB   r%   r%   r)   <lambda>   rD   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 }|| vrhd S |S )N)rL   r   r   rR   )r;   csts1rR   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   rR   rL   	is_finiter   stop)rP   firstrV   rvrX   r%   r)   _updated_range   s
    z_.<locals>._updated_range)rF   r	   r   rK   rI   rL   is_infinitereversedZ%sympy.solvers.diophantine.diophantinerQ   r
   Zas_coeff_Addabsr   rR   r   rH   rJ   r[   r   )r'   r(   r;   r<   rQ   eqvaZvbZno_solutionZa0rU   rY   rW   s2r^   rL   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           $   	      sZ  ddl m} t| jjdks,| jj| jjkr0d S | jd }|tju rd }t	|t
r|jtjfkr|jj}|jjd }td}|||}n|tju rtd }}|d ur| jj | jjd zt| | |fdd}W n ttfy   Y d S 0 t|dkrtjS tdd |D rrt|dkrl|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u r8tjS |hkrHd S ||t !t"|M }||||8 }t||S t	|t#rVddl$m%}m&}m'} | jj}| jjd d\}}|j(|j) }}|j*r|}n|}|||j+\}}|||j,\}} t-dd || fD rR|kr6t|dkr6|j.d }|krXt| dkrX| j.d }tdd ||fD rtd 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r4|!j3tj4ur4tt|! }!|!d urNt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      rD   rE   c                 3   s   | ]}  |d  V  qdS )r   N)subs)rA   rh   )fnnr%   r)   rC   )  rD   )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   )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  rD   c                 s   s   | ]}|d u V  qd S r$   r%   r@   r%   r%   r)   rC   w  rD   c                 s   s   | ]}|j V  qd S r$   )is_realr@   r%   r%   r)   rC   }  rD   )5Zsympy.solvers.diophantinere   lenZlamda	variables	signatureZ	base_setsr	   r   rs   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.solvesetrp   rq   rr   	left_open
right_openrt   rI   rK   rF   r7   	intersectr6   r   r   rG   rN   )$r9   r:   re   r-   Zgmvarrf   ZsolnsZsolnZsolmtrx   rl   ro   fZn_Zf_reZimZifreeZlamrp   rq   rr   Znew_infZnew_supZ	new_lopenZ	new_ropenZinverterZg1h1Zg2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     rD   rE   )ru   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||v sB|jsB||v 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	   NegativeInfinityrN   r   leftrightrt   Z_is_comparablerL   rM   r   r   Zhasr   ry   r   r   r   )
r'   r(   ZinftylrP   emptyrL   r   rM   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                    s2   zt  fdd| D  W S  ty,   Y d S 0 d S )Nc                    s   g | ]}| v r|qS r%   r%   )rA   elr(   r%   r)   
<listcomp>  rD   z_.<locals>.<listcomp>)r   rz   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   sf   zL|j tju r |jtju r | W S tt| jt|j	t
|jd }t||W S  ty`   Y d S 0 d S )Nr3   )_infr	   r   Z_suprN   r   rH   rI   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















	


