
    Ed@                        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             Z/e-.                    e e          d             Z/e-.                    e"e!          d             Z/e-.                    e"e"          d             Z/e-.                    ee"          d             Z/e-.                    ee          d             Z/e-.                    e!e#          d             Z/e-.                    e$e          d             Z/e-.                    e$e"          d             Z/e-.                    e$e$          d             Z/e-.                    e$e!          d             Z/e-.                    e%e          d             Z/e-.                    e*e*          d             Z/e-.                    ee          d             Z/e-.                    e'e          d              Z/e-.                    e(e          d!             Z/e-.                    ee          d"             Z/e-.                    ee          d#             Z/e-.                    ee          d$             Z/e-.                    e!e&          d%             Z/e-.                    e"e&          d&             Z/e-.                    e&e#          d'             Z/d( Z0e-.                    e!e          d)             Z/e-.                    e"e          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                     d S N abs     @lib/python3.11/site-packages/sympy/sets/handlers/intersection.py_r*          4    c                 ^    t          | j        | j        t          | j        |                    S r$   )r   sym	conditionr   base_setr&   s     r)   r*   r*      s$    q{LQ,G,GHHHr,   c                     | S r$   r%   r&   s     r)   r*   r*          Hr,   c                 &    | t           j        u r| n|S r$   )r   r   r&   s     r)   r*   r*   #   s    QZ&11Q&r,   c                 "    t          ||           S r$   )r"   r&   s     r)   r*   r*   '       Q"""r,   c           	         |j         r| j        s.|j        s't          t          | j        |j                            S | j        r|j        r| j        | j        }}|j        |j        }}t          ||          }t          ||          }dt          j        z  |v rt          j	        |v sdt          j        z  |v r+t          j	        |v rt          |t          d                    }t          ||z  d          S |                    t          j                  rpg }t          dt          d          }	| j        s\| j        D ];}
t          j	        |
j        d         v r |                    |
j        d                    <t          | }t          ||          S | j        r| j        D ]}
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                     t          | }t          ||          S d S d S )N   r   T)polarx)clsreal   )is_ComplexRegionr8   r   r   sets
a_interval
b_intervalr   PiZeror   r   	is_subsetr   r
   r	   psetsargsappendr   r   )selfotherr1theta1r2theta2new_r_intervalnew_theta_intervalnew_intervalr9   elements              r)   r*   r*   +   s    ,
 	,U[ 	, di!D!DEEE Z 	,EK 	,$/B)5+;B)"b11N!-ff!=!= 146! 9af&6 9!$& 9%&Vv%59%*+=+4Q<<&9 &9" 0B!B&*, , , , qw 5CU... z 	5: 9 96W\!_, 9 ''Q888 ,/Le444 Z 		5: 6 66W\!_, 9 ''Q88847<?* R ''A2Q(P(PQQQ6W\!_, 6 ''	!555 ,/Le444-5 5		5 		5r,   c                     | S r$   r%   r&   s     r)   r*   r*   Z   r2   r,   c                    t          d | j        |j        d d         z   D                       sd S | j        dk    rt          j        S t          t          |j        | j                            }||vr|dz  }t          t          |j
        | j
                            }||vr|dz  }t          | t          ||dz                       S )Nc              3   $   K   | ]}|j         V  d S r$   	is_number.0is     r)   	<genexpr>z_.<locals>.<genexpr>a   s$      88qq{888888r,   r7   r   r<   )allrE   sizer   r   r   maxinfr   minsupr"   r   )r'   r(   startends       r)   r*   r*   ^   s     88AFQVBQBZ$788888  	v{ z Cqu%%&&EA~ 

AE15!!
"
"C
!| qQeS1W 5 5666r,   c                 \    t          | t          |j        t          j                            S r$   )r"   r   r]   r   Infinityr&   s     r)   r*   r*   r   s     Q
 ; ;<<<r,   c           	      z   t          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        r|j        }|}|j        j        r|j        }|j        j        r|S |j        j        r| S ddlm	} d } | ||t          d                     ||t          d                    z
            \  }}|d u o|d u }|rt          j        S |                                d         }	 |||	          }
fd}t          t          |j        |j                             |||
          }|t          j        S  |||
          }|t          j        S fd} || |          } |||          }t          |j                  dk     r|j        }t          |j                  dk     r|j        }t!          |j        |j                  }t#          |j        |j                  }t'          ||          S )	Nc              3   R   K   | ]"}t          d  |j        D                       V  #dS )c              3   $   K   | ]}|j         V  d S r$   rT   )rW   vs     r)   rY   z_.<locals>.<genexpr>.<genexpr>y   s$      //11;//////r,   N)rZ   rE   )rW   rs     r)   rY   z_.<locals>.<genexpr>y   s;      @@As///////@@@@@@r,   r   )diop_linearc                 &    | j         || j        z  z   S r$   )r`   step)rh   rX   s     r)   <lambda>z_.<locals>.<lambda>   s    ag!&( r,   r'   r(   c                    || j         k    r|S t          | j         |z
            z  }t          || j         |z   |          d         }|| j         k    rn*t          | j                  t          |          k    r||z  }|| vrd S |S )N)r`   r   r   rk   )rI   csts1rk   s       r)   _first_finite_pointz_.<locals>._first_finite_point   s    = 	H "(Q,$
 1bhmR((,> 	
 BG}}R( bR< 	F	r,   c                     t          | j                  z  }| j        j        rt	          || j        |          }nt	          | j        ||z   |          }|S r$   )r   rk   r`   	is_finiter   stop)rh   firstrp   rvrk   s       r)   _updated_rangez_.<locals>._updated_range   sS    !&\\$7 	0uafb))BBqw
B//B	r,   )rZ   r   r   r_   r]   r`   is_infinitereversed%sympy.solvers.diophantine.diophantineri   r	   as_coeff_Addabsr   rk   r   r\   r^   ru   r   )r'   r(   rI   rK   ri   eqvavbno_solutiona0ro   rr   rq   s2rx   r`   ru   rk   s                    @r)   r*   r*   v   s    @@!Q@@@@@ t  z zuqu} zuqu} z 
B	x [	
B	x [ 
x 	x AAAAAA 
)	(B
 [Bc

++bbU3ZZ.@.@@AAFB *+tK z 
		1	B
2r

A    0 tBGRW%%&&D		R	#	#B	 z		R	#	#B	 z     
2		B	2		B BG}}q [BG}}q [ "(##Erw  Dd###r,   c                     | S r$   r%   r&   s     r)   r*   r*      r2   r,   c                 ~  $%& 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                    rZ|j        t          j        fk    rD|j        j        }|j        j        d         }t          d          }|                    ||          }n|t          j        u rt          d          x}}|3| j        j        $| j        j        d         %	 t           |$|z
  %|fd                    }n# t          t           f$ r Y d S w xY wt          |          dk    rt          j        S t%          d |D                       rt          |          dk    rx|d         \  }}	|j        \  }
$                    %|                    |
%                                                    }t+          t-          %|          t          j                  S d S t/          $%fd|D              S |t          j        k    r<dd	lm}m& &fd
}| j        j        }| j        j        d         %t          %j        d          }|                    %|          }|                                \  }}t=          |          }|                    |%          }|                    |%          }|j        }t-          %|          }|j        rnL|j        du rt          j        S |%hk    rd S | |tA          j!        tE          |                    %          z  }| | ||          %          z  }t+          ||          S t          |tF                    r5ddl$m%}m&}m'} | j        j        }| j        j        d         %d\  }}|j(        |j)        }}|j*        r|}n|} |||j+        %          \  }} |||j,        %          \  }} t[          d || fD                       r|%k    r t          |          dk    r|j.        d         }|%k    r t          |           dk    r| j.        d         }t%          d ||fD                       rd S t          j        }!t[          d ||fD                       r2||k    r||}}tG          ||||          }"|/                    |"          }!nj|0                    t          j                  rK ||%t          j                  }#t          |!t          tb          f          s|#/                    |          }!nd S |!t          j        u rt          j        S t          |!td                    r)|!j3        t          j4        urt/          t          |!           }!|!t+          t-          %|          |!          S d S d S d S )Nr   )diophantiner<   mT)symspermutec              3   .   K   | ]}|D ]}|j         V  d S r$   )free_symbols)rW   tuplss      r)   rY   z_.<locals>.<genexpr>  s1      DDtDD!Q^DDDDDDDr,   c              3   P   K   | ] }                     |d                    V  !dS )r   N)subs)rW   r   fnns     r)   rY   z_.<locals>.<genexpr>#  s5      "C"C2771ad#3#3"C"C"C"C"C"Cr,   )denomssolve_linearc           
          g }| D ]m} |d|g          \  }}||k    r#|                     t          |                     <|                     t          |t          |d                               nt	          | S )Nr   )rF   r   r   r   r   )exprsr.   solsrX   r9   xisr   s         r)   _solution_unionz_.<locals>._solution_union(  s     D = =%aSE2238 =KK	#////KKS"Q(( ; ;<<<<$<r,   )r;   F)invert_realinvert_complexsolveset)NNc              3   @   K   | ]}t          |t                    V  d S r$   )
isinstancer   rV   s     r)   rY   z_.<locals>.<genexpr>f  s,      ::Az!Y''::::::r,   c              3      K   | ]}|d u V  	d S r$   r%   rV   s     r)   rY   z_.<locals>.<genexpr>q  s&      9919999999r,   c              3   $   K   | ]}|j         V  d S r$   )is_realrV   s     r)   rY   z_.<locals>.<genexpr>w  s$      9919999999r,   )5sympy.solvers.diophantiner   lenlamda	variables	signature	base_setsr   r   r   r   exprr	   r   list	TypeErrorNotImplementedErrorr   anyr   expandr   r   r   r   sympy.solvers.solversr   r   nameas_real_imagr   is_zeror   	make_argsr!   r   sympy.solvers.solvesetr   r   r   	left_open
right_openr   r]   r_   rZ   rE   	intersectrC   r   r   r[   rc   )'rG   rH   r   r0   gmvarr   solnssolnsolmtr   r   r   fn_f_reimifreelamr   r   r   new_infnew_sup	new_lopen	new_ropeninverterg1h1g2h2	range_setrO   	solutionsr   r   r   s'                                       @@@r)   r*   r*      sJ   555555 	DJ !!A% z#tz';;t~a H 1: $EeX&& 	 5?qzm+K 	 !B+'*Cc

AaBBaj  	 3ZZA 	EB
$Q'A[[b1vtLLLMM23     5zzQ Ez!DDDDDDD 	Eu::? !&qJD$,DQ771dii1oo66==??D#F1dOOQZ@@@F "C"C"C"C"CU"C"C"CDD j>>>>>>>>
	  
	  
	  
	  
	  JOJ #16%%%VVAr]]""BBWWR^^WWR^^Qmm: 	- Z5  
	-:qc\ 	-4 eBii((!- - -H 	OOFF1IIq111X&&&	E8	$	$ :	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 JOJ #%$0@9	9 	&"HH%H!UY**B!UY**B::"b::::: )	Qw )r77a< ) gajGQw )r77a< ) gajG
 99w&899999  
I99w&899999  W$ 8'.WG')YOO$..|<<		??17++  (Aqw 7 7I%i(L1IJJ $-$7$7$>$>		AJ& 8z!Iu-- 8).
2R 8%tI7	 9q!i888FFu: :s    D2 2EEc                     t          |j                  t          | j                  k    rt          j        S t	          d t          | j        |j                  D              S )Nc              3   F   K   | ]\  }}|                     |          V  d S r$   )r   )rW   rX   js      r)   rY   z_.<locals>.<genexpr>  s0      GG41aAGGGGGGr,   )r   rE   r   r   r    zipr>   r&   s     r)   r*   r*     sO    
16{{c!&kk! zGG3qvqv3F3FGGGHHr,   c                 D   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     r|j        }|j
        }nV| j        |j        k    r| j        }| j
        }n7t          t          | |g                    d         j        }| j
        p|j
        }| j	        |j	        k     r| j	        }| j        }	nV| j	        |j	        k    r|j	        }|j        }	n7t          t          | |g                    d         j	        }| j        p|j        }	||z
  dk    r|s|	rd}nd}|rt           j        S t          ||||	          S )NFr   T)r   NegativeInfinityrc   r   leftrightr   _is_comparabler`   ra   r   r   r   r   r   )
r'   r(   inftylrh   emptyr`   r   ra   r   s
             r)   r*   r*     s    
*EHe vqw19 	U
 	ai 	1: 	H A tEw!% AGqu, 7QW 	3GEIIWqw 	3GEII
 !A((+1E2q{I515= 	6%CJJUQU] 	6%CJJw!u~~&&q)-C5J;! 	 	j 	E zE3	:666r,   c                     t           j        S r$   )r   r   r&   s     r)   r*   r*     s
    :r,   c                     |S r$   r%   r&   s     r)   r*   r*     r2   r,   c                 .    t          | j        |j        z   S r$   )r   	_elementsr&   s     r)   r*   r*     s    q{Q[022r,   c                 R    	 t          fd| D              S # t          $ r Y d S w xY w)Nc                     g | ]}|v |	S r%   r%   )rW   elr(   s     r)   
<listcomp>z_.<locals>.<listcomp>  s"    555"R1W52555r,   )r   r   r&   s    `r)   r*   r*     sJ    555555566   tts    
&&c                     d S r$   r%   r&   s     r)   r*   r*     r+   r,   c                     | S r$   r%   r&   s     r)   r*   r*     r2   r,   c                     | S r$   r%   r&   s     r)   r*   r*     r2   r,   c                     | S r$   r%   r&   s     r)   r*   r*     r2   r,   c                 *   	 |j         t          j        u r|j        t          j        u r| S t          t          | j        t          |j	                            t          |j                  dz             }t          ||          S # t          $ r Y d S w xY w)Nr<   )_infr   r   _suprc   r   r\   r]   r   r   r   r   r"   
ValueError)r'   r(   r   s      r)   _intlike_intervalr     s    6Q'' 	AFaj,@ 	H#aeWQV__--uQW~~/ABB A&&&   tts   'B AB 
BBc                 "    t          | |          S r$   r   r&   s     r)   r*   r*     r5   r,   c                 "    t          | |          S r$   r   r&   s     r)   r*   r*     r5   r,   N)1sympy.core.functionr   r   sympy.core.mulr   sympy.core.numbersr   sympy.core.relationalr   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)   <module>r      s   6 6 6 6 6 6 6 6       # # # # # # $ $ $ $ $ $ " " " " " " . . . . . . . . & & & & & & 5 5 5 5 5 5 > > > > > > > > . . . . . . K K K K K K K K K K K K K K - - - - - - 0 0 0 0 0 0                H H H H H H H H H H H H ( ( ( ( ( ( J233  L,77  87 L#..I I /.I Hh//  0/ Hh//' ' 0/' Hh//# # 0/# M3//,5 ,5 0/,5\ He,,  -, E8,,7 7 -,7& E8,,= = -,= E5))o$ o$ *)o$d E8,,  -, Hc**` ` +*`F J
33I I 43I Hh///7 /7 0//7b Hc**  +* L#..  /. Iy113 3 213 Is++  ,+ C%%  &% Hi00  10 Hi00  10 Iu--  .-   Hh//# # 0/# Hh//# # 0/# # #r,   