o
    GZh                      @   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&   L/var/www/auris/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    $)(Zsympy.solvers.solvesetr.   Zsympy.seriesr/   exprlenfree_symbols	variablesr6   subsr   Zis_Piecewiser   r   argsr   Zas_setr   Z	is_Numberr   r   r   r   r   startis_comparableendZsympy.polys.polyutilsr2   listr   NotImplementedError	left_open
right_openr	   
isinstancer   r   r   range)r(   r)   r.   r/   r=   varresultZ
domain_setZp_exprZp_condZintrvlimager2   _start_endZ	soln_exprZsolnsZextrrC   rE   rH   rI   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   rC   rE   rH   rI   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   rB   r'   r&   rV   r*   r+      s   c                    s6   t  |rt fdd|jD  S ttt t|S )Nc                 3   rR   r%   rS   rT   rV   r&   r*   rW      rX   rY   )r   r   rB   r   r   rQ   r'   r&   rV   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   rQ   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   rJ   r=   r   sizer   ZIdentityFunctionr@   r?   r	   rC   	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%   )Zcould_extract_minus_sign)r8   r+   r&   r&   r*   rW      s    z&_.<locals>.<lambda>.<locals>.<genexpr>)sumr   	make_args)er&   r&   r*   <lambda>   s    z_.<locals>.<lambda>a)excludeb)r0   r<   )r=   rJ   r   r@   absr   	Naturals0r   matchZatomsr   r   r`   
is_integerappendZ	is_numberr6   r#   rD   ZImaginaryUnitZis_imaginaryr   r   r    )r(   r]   r=   ncZfxZf_xZ	neg_countrc   re   rh   ZnonintZbibrZ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=   rJ   r   r@   r?   rf   r   r!   rg   ZcoeffrA   Z
is_Integerr   r   )r(   r]   r=   r)   r\   rl   r&   r&   r*   r+      s0   




c                 C   s&   | j }t|ts
d S t| tt tS r%   )r=   rJ   r   r$   r   r   )r(   r]   r=   r&   r&   r*   r+     s   
N)5Zsympy.core.singletonr   Zsympy.sets.setsr   Zsympy.calculus.singularitiesr   Z
sympy.corer   r   Zsympy.core.functionr   r   r	   r
   Zsympy.core.numbersr   r   Zsympy.core.symbolr   r   r   Z&sympy.functions.elementary.exponentialr   r   Z(sympy.functions.elementary.miscellaneousr   r   Zsympy.logic.boolalgr   Zsympy.multipledispatchr   Z
sympy.setsr   r   r   r   r   r   r   r   r   r   Zsympy.sets.fancysetsr    r!   r"   r#   rQ   Z_yZFunctionUnionr$   registerr+   r&   r&   r&   r*   <module>   sT    (






Z













4

