
    Ed                      (   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
mZmZmZ d dlmZmZ d dlmZmZmZ d dlmZ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!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' d dlm(Z(m)Z) d dl*m+Z+m,Z,m-Z- d dlm.Z.  ed          \  Z/Z0ee
fZ1 ed          Z2e23                    ee          d             Z4e23                    e1e"          d             Z4e23                    e
e!          d             Z4e23                    ee!          d             Z4e23                    e1e#          d             Z4e23                    e1e%          d             Z4e23                    e1e(          d             Z4e23                    e1e          d             Z4e23                    e1e&          d             Z4e23                    e1e+          d             Z4e23                    e1e,          d             Z4e23                    e1e-          d             Z4dS )    )S)Set)singularities)ExprAdd)LambdaFunctionClassdiff
expand_mul)Floatoo)DummysymbolsWild)explog)MinMax)true)
Dispatcher)imagesetInterval	FiniteSetUnionImageSetIntersectionRange
Complement)EmptySetis_function_invertible_in_set)IntegersNaturalsReals)match_real_imagzx y_set_functionc                     d S N fxs     =lib/python3.11/site-packages/sympy/sets/handlers/functions.py_r-      s    4    c                 0    t          t          | |           S r'   )r   mapr)   s     r,   r-   r-      s    c!Qii  r.   c           
      6    ddl m} ddlm}  j        }t          |j                  dk    st           j                  dk    rd S  j        d         }|j        s-|	                    |t          d                    j        du rd S |j        rt          j        }}|j        D ]\  }}	|	t          u r|}
n$|	                                }
t#          ||
          }
|j        rt'          |          }nt)          t+          ||          |
          }t-          ||          }t/          ||
          }|t          j        u r n|S j        j        rj        j        sd S 	 ddlm} t;          t=          ||                    t                    dk    r |          n# t>          $ r Y d S w xY wj         r |||j        d	
          }nj        vr  j                  }j!        r |||j        d
          }nj        vr  j                  }t                    dk    r |tE          ||          |          }tG          |t&                    s|t          j        u sd S t;          |          }||g fd|D             z   }tI          | tK          | }}d\  }}||k    r#||k    r||vrj         }||k    r||vrj!        }n"||k    r||vrj!        }||k    r||vrj         }tM          ||||          S t)           tM          j        d         j         d                    t-           fdtO          dt                    dz
            D              z   t)           tM          d         j        dj!                            z   S )Nr   )solveset)limit   T)realF)_nsort+)dir-c                 <    g | ]}|j         	|v  |          S r(   )is_real).0ir*   r+   s     r,   
<listcomp>z_.<locals>.<listcomp>b   sC     !: !: !:!$%I!:23q&!:1 !: !: !:r.   )FFc                 n    g | ]1}t          t          |         |d z            dd                    2S )r4   T)r   r   )r<   r=   r*   sings     r,   r>   z_.<locals>.<listcomp>y   sM     6 6 6 Qa$q1u+tT J JKK 6 6 6r.   )(sympy.solvers.solvesetr2   sympy.seriesr3   exprlenfree_symbols	variablesr;   subsr   is_Piecewiser   r   argsr   as_setr   	is_Numberr   r   r   r   r   startis_comparableendsympy.polys.polyutilsr6   listr   NotImplementedError	left_open
right_openr
   
isinstancer   r   r   range)r*   r+   r2   r3   rD   varresult
domain_setp_exprp_condintrvlimager6   _start_end	soln_exprsolnsextrrM   rO   rS   rT   r@   s   ``                    @r,   r-   r-   "   s   //////"""""" 6D
4! S%5%5%: 
+a.C; 99S%T***++3u< 	F 
 $	 	 	VV~ :#%j&99 >!&)) V!4!4f==65))F $J77JQZ' 7  (; 000000M$Q//00t99q= 	 6$<<D    	{ tS!'s333	
	 17| uT33///	
d	 qxx
4yyA~  GHT$__c22	9i00 	
*	FY~ !: !: !: !: !:u !: !: !: :$Zds ,	:T> 	)  (5#5 (K	d{ *s%/ *\
} )e!3 )L	f} )E!1 )[
sIz:::8AGT!W$%K7 7 8 8 6 6 6 6 6"1c$ii!m446 6 6 77 Qb15$EEFF	G 	Gs   AF! !
F/.F/c                    | t           k    r@t          t          |j                  t          |j                  |j        |j                  S | t          k    r@t          t          |j                  t          |j                  |j        |j                  S t          t          t           | t                              |          S r'   )
r   r   rM   rO   rS   rT   r   r   r   _xr)   s     r,   r-   r-   }   s    Cx MAGc!%jj!+q|LLL	
c MAGc!%jj!+q|LLLF2qquu%%q)))r.   c                 8     t           fd|j        D              S )Nc              3   8   K   | ]}t          |          V  d S r'   r   r<   argr*   s     r,   	<genexpr>z_.<locals>.<genexpr>   s-      668As##666666r.   )r   rJ   r)   s   ` r,   r-   r-      s%    6666qv66677r.   c                      t           |          rt           fd|j        D              S t          t	          t
            t
                              |          S )Nc              3   8   K   | ]}t          |          V  d S r'   rg   rh   s     r,   rj   z_.<locals>.<genexpr>   s-      AA3hq#..AAAAAAr.   )r    r   rJ   r   r   rd   r)   s   ` r,   r-   r-      s[     %Q** .AAAA!&AAABBr11R55))1---r.   c                     |S r'   r(   r)   s     r,   r-   r-      s    Hr.   c                 d    t          t          t           | t                              |          S r'   )r   r   rd   r)   s     r,   r-   r-      s$    F2qquu%%q)))r.   c                 <   |st           j        S t          | j        t                    sd S |j        dk    rt           | |d                             S | t           j        u r|S | j        d         }| j        }||j	        vs||
                    |          j	        v rd S |j        j        r | |j        |z  |j        z             }n | |j         |z  |d         z             }t          |          }||k    r#t          ||t!          |j                            S d S )Nr4   r   rA   )r   r   rU   rD   r   sizer   IdentityFunctionrG   rF   r
   rM   	is_finitestepr   r   r   )r*   selfr+   rD   Fs        r,   r-   r-      s0    zafd## yA~ %47$$$A 	AA6D!! Q$))A,,*C%C z 'AdikDJ&''AtyjlT"X%&&1ADy 01eDI..///0 0r.   c                    | j         }t          |t                    sd S | j        d         }|t	          |          k    rt
          j        S  | d          } | |          |z
  } | |           |z
  }d } ||           ||          k     r||z   }t          d|g          }t          d|g          }	|                    ||z  |	z             }
|
rB|
|         r9|
|         	                    t                    s|
|	         	                    t                    s|
|         |
|	         }	}|dv r>g }t          j        |	          D ]}|j        s|                    |           t          | }	|	j        rA|j        r:t#          |	          \  }}|r%|j        r|j        r||z  }|t
          j        |z  z   }	nV|	j        rO|j        rHt#          |	          \  }}|t
          j        z  }|r%|j        r|j        r||z  }|t
          j        |z  z   }	||z  |	z   }|| j         k    r(t+          t-          ||          t
          j                  S d S )Nr   c                 X    t          d t          j        |           D                       S )Nc              3   >   K   | ]}|                                 V  d S r'   )could_extract_minus_sign)r<   r-   s     r,   rj   z&_.<locals>.<lambda>.<locals>.<genexpr>   sB       # #  88:: # # # # # #r.   )sumr   	make_args)es    r,   <lambda>z_.<locals>.<lambda>   s6    # # #q!!# # # # # r.   a)excludeb)r4   rA   )rD   rU   r   rG   absr   	Naturals0r   matchatomsr   r   r{   
is_integerappend	is_numberr;   r$   rN   ImaginaryUnitis_imaginaryr   r   r!   )r*   rt   rD   ncfxf_x	neg_countr~   r   r   nonintbibrais                  r,   r-   r-      s   6DdD!! 	AAs1vv~ { 	
!A	
1B
!QB%%!)C# #Iy~~		"% QwS1#AS1#AJJqsQwE q au%%au%% Qxq1< 	FmA&& & &} &MM"%%%VA; 	,19 	,$Q''FB ,b& ,1? ,a++[ 	,Q^ 	,$Q''FB1?"B ,b& ,2+; ,b++sQwqv~ 5q$4445 5r.   c                 F   | j         }t          |t                    sd S | j        d         }|j        |hz
  s|t          |          k    r|t          j        u r|S t          j        S |	                    |          }|
                    |d          }|j        r|j        r|||z  |z   k    rv|t          j        u r||z  }|dk    r@|dk    r$|dk    rt          j        S |dk    rt          j        S t          |t          |          S t          |t           |          S d S d S d S d S )Nr   r4   )rD   rU   r   rG   rF   r   r   r"   r   coeffrH   
is_Integerr   r   )r*   rt   rD   r+   rs   r   s         r,   r-   r-      sX   6DdD!! 	AAs" '3q66> 	qz! ;zz!}}IIaOO< 
	'DO 
	'Q
0B 
	'qz! T	ax *19 *Av * {*a * z)QD)))RC&&&#' '
	' 
	' 
	' 
	' 
	' 
	'r.   c                     | j         }t          |t                    sd S t          | t	          t
           t
                              S r'   )rD   rU   r   r%   r   r   )r*   rt   rD   s      r,   r-   r-     s<    6DdD!! HbS"--...r.   N)5sympy.core.singletonr   sympy.sets.setsr   sympy.calculus.singularitiesr   
sympy.corer   r   sympy.core.functionr   r	   r
   r   sympy.core.numbersr   r   sympy.core.symbolr   r   r   &sympy.functions.elementary.exponentialr   r   (sympy.functions.elementary.miscellaneousr   r   sympy.logic.boolalgr   sympy.multipledispatchr   
sympy.setsr   r   r   r   r   r   r   r   r   r    sympy.sets.fancysetsr!   r"   r#   r$   rd   _yFunctionUnionr%   registerr-   r(   r.   r,   <module>r      s   " " " " " "       6 6 6 6 6 6                 G G G G G G G G G G G G ( ( ( ( ( ( ( ( 2 2 2 2 2 2 2 2 2 2 ; ; ; ; ; ; ; ; = = = = = = = = $ $ $ $ $ $ - - - - - -% % % % % % % % % % % % % % % % % % % % C C C C C C C C : : : : : : : : : : B B B B B B 
B'
?++ s++  ,+ y11! ! 21! ))XG XG *)XGt x00* * 10* u--8 8 .-8 |44. . 54. x00  10 s++* * ,+* u--0 0 .-0. x0015 15 1015h x00' ' 10'4 u--/ / .-/ / /r.   