U
    ZÊ¹jjD  ã                   @   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ƒZ0e0 1e#e#¡dd„ ƒZ2e0 1e#e¡dd„ ƒZ2e0 1e%e$¡dd„ ƒZ2e0 1e%e%¡dd„ ƒZ2e0 1ee%¡dd„ ƒZ2e0 1ee¡dd„ ƒZ2e0 1e$e&¡dd„ ƒZ2e0 1e'e¡dd„ ƒZ2e0 1e'e%¡dd„ ƒZ2e0 1e'e'¡dd„ ƒZ2e0 1e'e$¡dd„ ƒZ2e0 1e'e)¡dd„ ƒZ2e0 1e(e¡d d„ ƒZ2e0 1e-e-¡d!d„ ƒZ2e0 1ee¡d"d„ ƒZ2e0 1e*e¡d#d„ ƒZ2e0 1e+e¡d$d„ ƒZ2e0 1ee¡d%d„ ƒZ2e0 1ee¡d&d„ ƒZ2e0 1ee¡d'd„ ƒZ2e0 1e$e)¡d(d„ ƒZ2e0 1e%e)¡d)d„ ƒZ2e0 1e)e&¡d*d„ ƒZ2d+d,„ Z3e0 1e$e¡d-d„ ƒZ2e0 1e%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%   ú_/var/www/html/bwave/python/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s�dtj |kržtj	|kržt
|tdƒƒ}t|| dd�S | tj¡�r®g }tdtdd�}	| j�s| jD ]$}
tj	|
jd krÜ| |
jd ¡ qÜt
|Ž }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}|ràt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�rŒd }t	|t
ƒrŒ|jtjfkrŒ|jj}|jjd }tdƒ}| ||¡}n|tjkr¢t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















	


