U
    ZÊ¹j½   ã                   @   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ƒZ2e2 3ee¡dd„ ƒZ4e2 3e1e"¡dd„ ƒZ4e2 3e
e!¡dd„ ƒZ4e2 3ee!¡dd„ ƒZ4e2 3e1e#¡dd„ ƒZ4e2 3e1e%¡dd„ ƒZ4e2 3e1e(¡dd„ ƒZ4e2 3e1e¡dd„ ƒZ4e2 3e1e&¡dd„ ƒZ4e2 3e1e+¡dd„ ƒZ4e2 3e1e,¡dd„ ƒZ4e2 3e1e-¡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&   ú\/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/sets/handlers/functions.pyÚ_   s    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sj| 	|t
dd�¡jdkrjd S |jrðtj}ˆ}|jD ]j\}}	|	tkr–|}
n|	 ¡ }
t||
ƒ}
|jr¸t|ƒ}ntt||ƒ|
ƒ}t||ƒ}t||
ƒ}|tjkr€ qìq€|S ˆjj�rˆjj�sd S z6ddlm} tt||ˆƒƒ‰tˆƒdk�r<|ˆƒ‰W n tk
�rV   Y d S X ˆj �rt|||ˆjd	d
�}nˆjˆk�rŠˆ ˆjƒ}ˆj!�r¦|||ˆjdd
�}nˆjˆk�r¼ˆ ˆjƒ}tˆƒdk�r¶|t"||ƒ|ƒ}t#|tƒ�sö|tjk�söd S t|ƒ}||g‡ ‡fdd„|D ƒ }t$|Ž t%|Ž  }}d\}}||k�rt||k�rX||k�rXˆj }||k�r¨||k�r¨ˆj!}n4||k�rŽ||k�rŽˆj!}||k�r¨||k�r¨ˆ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 d S )Nr   )Úsolveset)Úlimité   T)ÚrealF)Ú_nsortú+)Údirú-c                    s"   g | ]}|j r|ˆk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 )r/   T)r   r   r6   )r(   Úsingr&   r*   r9   y   s   ÿéÿÿÿÿ)(Zsympy.solvers.solvesetr-   Zsympy.seriesr.   ÚexprÚlenÚfree_symbolsÚ	variablesr5   Úsubsr   Zis_Piecewiser   r   Úargsr   Zas_setr   Z	is_Numberr   r   r   r   r   ÚstartÚis_comparableÚendZsympy.polys.polyutilsr1   Úlistr   ÚNotImplementedErrorÚ	left_openÚ
right_openr	   Ú
isinstancer   r   r   Úrange)r(   r)   r-   r.   r<   ÚvarÚresultZ
domain_setZp_exprZp_condZintrvlÚimager1   Ú_startÚ_endZ	soln_exprZsolnsZextrrB   rD   rG   rH   r&   )r(   r:   r)   r*   r+   "   s�    







ÿ
 ÿÿþüc                 C   s`   | t kr&tt |jƒt |jƒ|j|jƒS | tkrLtt|jƒt|jƒ|j|jƒS ttt	| t	ƒƒ|ƒS r%   )
r   r   rB   rD   rG   rH   r   r   r   Ú_xr'   r&   r&   r*   r+   }   s
    c                    s   t ‡ fdd„|jD ƒŽ S )Nc                 3   s   | ]}t ˆ |ƒV  qd S r%   ©r   ©r7   Úarg©r(   r&   r*   Ú	<genexpr>‡   s     ú_.<locals>.<genexpr>)r   rA   r'   r&   rT   r*   r+   …   s    c                    s:   t ˆ |ƒr"t‡ fdd„|jD ƒŽ S tttˆ tƒƒ|ƒS d S )Nc                 3   s   | ]}t ˆ |ƒV  qd S r%   rQ   rR   rT   r&   r*   rU   �   s     rV   )r   r   rA   r   r   rP   r'   r&   rT   r*   r+   ‰   s    
c                 C   s   |S r%   r&   r'   r&   r&   r*   r+   ‘   s    c                 C   s   t tt| tƒƒ|ƒS r%   )r   r   rP   r'   r&   r&   r*   r+   •   s    c                 C   sÌ   |s
t jS t| jtƒsd S |jdkr4t| |d ƒƒS | t jkrB|S | jd }| j}||j	ksl|| 
|¡j	krpd S |jjrŽ| |j| |j ƒ}n| |j | |d  ƒ}t|ƒ}||krÈt||t|jƒƒS d S )Nr/   r   r;   )r   r   rI   r<   r   Úsizer   ZIdentityFunctionr?   r>   r	   rB   Ú	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r0tjS | dƒ}| |ƒ| }| | ƒ| }dd„ }||ƒ||ƒk rr|| }td|gd�}td|gd�}	| || |	 ¡}
|
�rÀ|
| �rÀ|
|  	t
¡�sÀ|
|	  	t
¡�sÀ|
| |
|	  }}	|dk�rg }t |	¡D ]}|jsú| |¡ qút|Ž }	|	j�rb|j�rbt|	ƒ\}}|�r´|j�r´|j�r´||; }|tj|  }	nR|	j�r´|j�r´t|	ƒ\}}|tj }|�r´|j�r´|j�r´||; }|tj|  }	|| |	 }|| j k�rÞt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)r7   r+   r&   r&   r*   rU   À   s   ÿz&_.<locals>.<lambda>.<locals>.<genexpr>)Úsumr   Ú	make_args)Úer&   r&   r*   Ú<lambda>À   s   ÿz_.<locals>.<lambda>Úa)ÚexcludeÚb)r/   r;   )r<   rI   r   r?   Úabsr   Ú	Naturals0r   ÚmatchZatomsr   r   r]   Ú
is_integerÚappendZ	is_numberr5   r#   rC   ZImaginaryUnitZis_imaginaryr   r   r    )r(   rZ   r<   ÚnÚcZfxZf_xZ	neg_countr`   rb   re   ZnonintZbiÚbrZair&   r&   r*   r+   ±   sR    

ÿþ

c                 C   sØ   | j }t|tƒsd S | jd }|j|h sÔ|t|ƒkrJ|tjkrD|S tjS | 	|¡}| 
|d¡}|jrÔ|jrÔ||| | krÔ|tjkrŽ||7 }|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 )Nr   r/   )r<   rI   r   r?   r>   rc   r   r!   rd   Zcoeffr@   Z
is_Integerr   r   )r(   rZ   r<   r)   rY   ri   r&   r&   r*   r+   æ   s,    




c                 C   s&   | j }t|tƒsd S t| tt tƒƒS r%   )r<   rI   r   r$   r   r   )r(   rZ   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#   rP   Z_yZFunctionUnionr$   Úregisterr+   r&   r&   r&   r*   Ú<module>   sR   (





Z













4


