U
    	-e@                     @   s  d dl mZmZ d dlmZ d dl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Z-e-.e e dd Z/e-.e edd Z/e-.e"e!dd Z/e-.e"e"dd Z/e-.ee"dd Z/e-.eedd Z/e-.e!e#dd Z/e-.e$edd Z/e-.e$e"dd Z/e-.e$e$dd Z/e-.e$e!dd Z/e-.e$e&dd Z/e-.e%edd Z/e-.e*e*d d Z/e-.eed!d Z/e-.e'ed"d Z/e-.e(ed#d Z/e-.eed$d Z/e-.eed%d Z/e-.eed&d Z/e-.e!e&d'd Z/e-.e"e&d(d Z/e-.e&e#d)d Z/d*d+ Z0e-.e!ed,d Z/e-.e"ed-d Z/d.S )/    )Lambdaexpand_complex)Mul)ilcm)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#   a/var/www/html/Darija-Ai-Train/env/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_intervalr.   elementr#   r#   r'   r(   +   sL    




c                 C   s   | S r"   r#   r$   r#   r#   r'   r(   Z   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>a   s     _.<locals>.<genexpr>r,   r   r1   )allr5   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   rF   r   Infinityr$   r#   r#   r'   r(   r   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=   )r?   vr#   r#   r'   rA   y   s     z_.<locals>.<genexpr>.<genexpr>N)rC   r5   )r?   rr#   r#   r'   rA   y   s     rB   r   )diop_linearc                 S   s   | j || j  S r"   )rI   step)rM   r@   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)rI   r   r   rO   )r9   csts1rO   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   rO   rI   	is_finiter   stop)rM   firstrT   rvrV   r#   r'   _updated_range   s
    z_.<locals>._updated_range)rC   r   r   rH   rF   rI   is_infinitereversedZ%sympy.solvers.diophantine.diophantinerN   r   Zas_coeff_Addabsr   rO   r   rE   rG   rY   r   )r%   r&   r9   r:   rN   eqvaZvbZno_solutionZa0rS   rW   rU   s2r\   rI   rY   r#   rV   r'   r(   v   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   )diophantiner1   mT)ZsymsZpermutec                 s   s   | ]}|D ]}|j V  q
qd S r"   )free_symbols)r?   Ztuplsr#   r#   r'   rA     s       rB   c                 3   s   | ]}  |d  V  qdS )r   N)subs)r?   rf   )fnnr#   r'   rA   (  s     )denomssolve_linearc                    sV   g }| D ]D} |d|g\}}||kr6| t| q| t|t|d qt| S )Nr   )r6   r   r   r   r   )exprsr)   Zsolsr@   r.   Zxis)rk   r#   r'   _solution_union-  s    z_.<locals>._solution_union)r0   F)invert_realinvert_complexsolveset)NNc                 s   s   | ]}t |tV  qd S r"   )
isinstancer   r>   r#   r#   r'   rA   k  s     c                 s   s   | ]}|d kV  qd S r"   r#   r>   r#   r#   r'   rA   v  s     c                 s   s   | ]}|j V  qd S r"   )is_realr>   r#   r#   r'   rA   |  s     )5Zsympy.solvers.diophantinerc   lenZlamda	variables	signatureZ	base_setsr   r   rq   r   exprr   rg   list	TypeErrorNotImplementedErrorr   anyre   expandr   r   r   r   Zsympy.solvers.solversrj   rk   nameZas_real_imagr   is_zeror   Z	make_argsr    r   Zsympy.solvers.solvesetrn   ro   rp   	left_open
right_openrr   rF   rH   rC   r5   	intersectr4   r   r   rD   rK   )$r7   r8   rc   r+   Zgmvarrd   ZsolnsZsolnZsolmtrv   rj   rm   fZn_Zf_reZimZifreeZlamrn   ro   rp   Znew_infZnew_supZ	new_lopenZ	new_ropenZinverterg1Zh1g2Zh2Z	range_setr;   Z	solutionsr#   )rh   ri   rk   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   )r?   r@   jr#   r#   r'   rA     s     rB   )rs   r5   r   r   r   zipr2   r$   r#   r#   r'   r(     s    c           
      C   sb  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rD|j| j	krD| j|jk r|j}|j
}n<| j|jkr| j}| j
}n"tt| |gd j}| j
p|j
}| j	|j	k r| j	}| j}	n@| j	|j	kr |j	}|j}	n$tt| |gd j	}| jp"|j}	|| dkrH|s>|	rHd}nd}|rTt jS t||||	S )NFr   T)r   NegativeInfinityrK   r   leftrightrr   Z_is_comparablerI   rJ   r~   rw   r
   r   r   )
r%   r&   ZinftylrM   emptyrI   r~   rJ   r   r#   r#   r'   r(     s>    
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#   )r?   elr&   r#   r'   
<listcomp>  s      z_.<locals>.<listcomp>)r   rx   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 )Nr1   )_infr   r   Z_suprK   r   rE   rF   r   r   r   r   r!   
ValueError)r%   r&   rf   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)1Zsympy.core.functionr   r   Zsympy.core.mulr   Zsympy.core.numbersr   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





 $



1















	


