o
    jg                      @   s  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Z1edZ2e23eedd Z4e23e1e"dd Z4e23e
e!dd Z4e23ee!dd Z4e23e1e#dd Z4e23e1e%dd Z4e23e1e(dd Z4e23e1edd Z4e23e1e&dd Z4e23e1e+dd Z4e23e1e,dd Z4e23e1e-d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                 C   s   d S N fxr&   r&   U/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/sets/handlers/functions.py_      r+   c                 C   s   t t| | S r%   )r   mapr'   r&   r&   r*   r+      s   c                    s   ddl m} ddlm}  j}t|jdkst jdkrd S  jd }|js5|	|t
ddjdu r5d S |jrytj}}|jD ]6\}}	|	tu rK|}
n	|	 }
t||
}
|jr\t|}ntt|||
}t||}t||
}|tju rv |S q@|S jjrjjsd S zddlm} tt||tdkr|W n
 ty   Y d S w j r|||jd	d
}n
jvr j}j!r|||jdd
}n
jvrֈ j}tdkrQ|t"|||}t#|ts|tju sd S t|}||g fdd|D  }t$| t%| }}d\}}||kr0||kr"||vr"j }||kr/||vr/j!}n||kr=||vr=j!}||krJ||vrJj }t&||||S t t&jd j dt fddt'dtd D   t t&d jdj! S )Nr   )solveset)limit   T)realF)_nsort+)dir-c                    s"   g | ]}|j r|v r |qS r&   )is_real.0ir'   r&   r*   
<listcomp>b   s    z_.<locals>.<listcomp>)FFc              	      s,   g | ]}t  t| |d   ddqS )r0   T)r   r   r7   )r(   singr&   r*   r:   y   s    $)(sympy.solvers.solvesetr.   sympy.seriesr/   exprlenfree_symbols	variablesr6   subsr   is_Piecewiser   r   argsr   as_setr   	is_Numberr   r   r   r   r   startis_comparableendsympy.polys.polyutilsr2   listr   NotImplementedError	left_open
right_openr	   
isinstancer   r   r   range)r(   r)   r.   r/   r?   varresult
domain_setp_exprp_condintrvlimager2   _start_end	soln_exprsolnsextrrH   rJ   rN   rO   r&   )r(   r;   r)   r*   r+   "   s   












c                 C   s`   | 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   rH   rJ   rN   rO   r   r   r   _xr'   r&   r&   r*   r+   }   s
   c                    s   t  fdd|jD  S )Nc                 3       | ]}t  |V  qd S r%   r   r8   argr(   r&   r*   	<genexpr>       _.<locals>.<genexpr>)r   rE   r'   r&   rc   r*   r+      s   c                    s6   t  |rt fdd|jD  S ttt t|S )Nc                 3   r_   r%   r`   ra   rc   r&   r*   rd      re   rf   )r   r   rE   r   r   r^   r'   r&   rc   r*   r+      s   
c                 C   s   |S r%   r&   r'   r&   r&   r*   r+      r,   c                 C   s   t tt| t|S r%   )r   r   r^   r'   r&   r&   r*   r+      s   c                 C   s   |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s6||
|j	v r8d S |jjrG| |j| |j }n| |j | |d  }t|}||krdt||t|jS d S )Nr0   r   r<   )r   r   rP   r?   r   sizer   IdentityFunctionrB   rA   r	   rH   	is_finitestepr
   r   r   )r(   selfr)   r?   Fr&   r&   r*   r+      s&   


c                 C   s  | j }t|ts
d S | jd }|t|krtjS | d}| || }| | | }dd }||||k r9|| }td|gd}td|gd}	||| |	 }
|
r|
| r|
| 	t
s|
|	 	t
s|
| |
|	 }}	|dv rg }t|	D ]
}|js|| qxt| }	|	jr|jrt|	\}}|r|jr|jr||; }|tj|  }	n$|	jr|jrt|	\}}|tj }|r|jr|jr||; }|tj|  }	|| |	 }|| j krtt||tjS d S )Nr   c                 S   s   t dd t| D S )Nc                 s   s    | ]}|  V  qd S r%   )could_extract_minus_sign)r8   r+   r&   r&   r*   rd      s    z&_.<locals>.<lambda>.<locals>.<genexpr>)sumr   	make_args)er&   r&   r*   <lambda>   s    z_.<locals>.<lambda>a)excludeb)r0   r<   )r?   rP   r   rB   absr   	Naturals0r   matchatomsr   r   ro   
is_integerappend	is_numberr6   r#   rI   ImaginaryUnitis_imaginaryr   r   r    )r(   rk   r?   ncfxf_x	neg_countrr   rt   rw   nonintbibrair&   r&   r*   r+      sX   




c                 C   s   | j }t|ts
d S | jd }|j|h sj|t|kr%|tju r"|S tjS |	|}|
|d}|jrl|jrn||| | krp|tju rG||7 }|dkrc|dkr]|dkrVtjS |dkr]tjS t|t|S t|t |S d S d S d S d S )Nr   r0   )r?   rP   r   rB   rA   ru   r   r!   rv   coeffrC   
is_Integerr   r   )r(   rk   r?   r)   rj   r   r&   r&   r*   r+      s0   




c                 C   s&   | j }t|ts
d S t| tt tS r%   )r?   rP   r   r$   r   r   )r(   rk   r?   r&   r&   r*   r+     s   
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#   r^   _yFunctionUnionr$   registerr+   r&   r&   r&   r*   <module>   sT    (






Z













4

