a
    SG5d@                     @   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/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#   \/var/www/html/django/DPS/env/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   )is_ComplexRegionr-   r   r   sets
a_interval
b_intervalr   PiZeror   r   	is_subsetr   r	   r   psetsargsappendr   r   )selfotherr1theta1r2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}||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"   	is_number.0ir#   r#   r'   	<genexpr>a       _.<locals>.<genexpr>r,   r   r1   )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   rO   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 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"   rD   )rG   vr#   r#   r'   rI   y   rJ   z_.<locals>.<genexpr>.<genexpr>N)rL   r:   )rG   rr#   r#   r'   rI   y   rJ   rK   r   )diop_linearc                 S   s   | j || j  S r"   )rR   step)rV   rH   r#   r#   r'   <lambda>   rJ   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)rR   r   r   rX   )r>   csts1rX   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   rX   rR   	is_finiter   stop)rV   firstr\   rvr^   r#   r'   _updated_range   s
    z_.<locals>._updated_range)rL   r   r   rQ   rO   rR   is_infinitereversedZ%sympy.solvers.diophantine.diophantinerW   r   as_coeff_Addabsr   rX   r   rN   rP   ra   r   )r%   r&   r>   r@   rW   eqvavbZno_solutiona0r[   r_   r]   s2rd   rR   ra   r#   r^   r'   r(   v   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   )diophantiner1   mT)symspermutec                 s   s   | ]}|D ]}|j V  q
qd S r"   )free_symbols)rG   tuplsr#   r#   r'   rI     rJ   rK   c                 3   s   | ]}  |d  V  qdS )r   N)subs)rG   rt   )fnnr#   r'   rI   #  rJ   )denomssolve_linearc                    sV   g }| D ]D} |d|g\}}||kr6| t| q| t|t|d qt| S )Nr   )r;   r   r   r   r   )exprsr)   solsrH   r.   xis)ry   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   rF   r#   r#   r'   rI   f  rJ   c                 s   s   | ]}|d u V  qd S r"   r#   rF   r#   r#   r'   rI   q  rJ   c                 s   s   | ]}|j V  qd S r"   )is_realrF   r#   r#   r'   rI   w  rJ   )5Zsympy.solvers.diophantinern   lenlamda	variables	signature	base_setsr   r   r   r   exprr   ru   list	TypeErrorNotImplementedErrorr   anyrr   expandr   r   r   r   sympy.solvers.solversrx   ry   nameas_real_imagr   is_zeror   	make_argsr    r   sympy.solvers.solvesetr~   r   r   	left_open
right_openr   rO   rQ   rL   r:   	intersectr8   r   r   rM   rT   )$r<   r=   rn   r+   Zgmvarro   solnssolnZsolmtr   rx   r}   fn_f_reimifreelamr~   r   r   Znew_infZnew_supZ	new_lopenZ	new_ropeninverterg1h1g2h2Z	range_setrB   	solutionsr#   )rv   rw   ry   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   )rG   rH   jr#   r#   r'   rI     rJ   rK   )r   r:   r   r   r   zipr3   r$   r#   r#   r'   r(     s    c           
      C   sb  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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   NegativeInfinityrT   r   leftrightr   _is_comparablerR   rS   r   r   r
   r   r   )
r%   r&   inftylrV   emptyrR   r   rS   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                    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#   )rG   elr&   r#   r'   
<listcomp>  rJ   z_.<locals>.<listcomp>)r   r   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 )Nr1   )_infr   r   _suprT   r   rN   rO   r   r   r   r   r!   
ValueError)r%   r&   rt   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)1sympy.core.functionr   r   Zsympy.core.mulr   sympy.core.numbersr   sympy.core.relationalr   Z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



 $



1















	


