a
     ¬<br  ã                   @   s@  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 d dlmZ d dlmZ d d	lmZmZmZmZ d d
lmZ edƒ\ZZedƒZe  ee¡dd„ ƒZ!e  ee¡dd„ ƒZ!e  ee¡dd„ ƒZ!e  ee	¡dd„ ƒZ!e  ee
¡dd„ ƒZ!e  ee¡dd„ ƒZ!e  ee¡dd„ ƒZ!dS )é    )ÚBasicÚExpr)ÚLambda)ÚooÚInfinityÚNegativeInfinityÚZeroÚInteger)ÚS)Úsymbols)ÚMaxÚMin)ÚImageSet)Úset_div)ÚSetÚIntervalÚ	FiniteSetÚUnion)Ú
Dispatcherzx yÚ_set_powc                 C   s   d S ©N© ©ÚxÚyr   r   úi/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/sympy/sets/handlers/power.pyÚ_   s    r   c                 C   s   t tttftt ƒ| |ƒS r   )r   r   Ú_xÚ_yr   r   r   r   r      s    c                 C   s   | | S r   r   r   r   r   r   r      s    c                 C   s
   t tjƒS r   )r   r
   ÚOne)r   Úzr   r   r   r      s    c                 C   sv  | j | }| j| }|dkr$||kn| j| j  kdkrH| j}| j}|}n| j}| j}|}| j jrztt||ƒt||ƒ||ƒS | jjrœtt||ƒt||ƒ||ƒS |j	r|j rþ| j j
rÂt|t| jƒS | jj
rÜtt |d| jƒS ttt |d| jƒt|t| jƒƒS t||| j| jƒS n`|jrr|jr\| j j
r:t|t| jƒS | jj
rRt|t| jƒS tdtƒS ttj|tj| v|ƒS dS )z]
    Powers in interval arithmetic
    https://en.wikipedia.org/wiki/Interval_arithmetic
    r   TN)ÚstartÚendÚ	left_openÚ
right_openZis_positiver   r   r   Úis_negativeZis_oddÚis_zeror   r   Zis_evenr
   r   )r   ÚexponentÚs1Ús2r#   r$   Zsleftr   r   r   r   #   sF    

"þþ"


c                 C   s°   | j jr:| jdk rttjƒS | j dkr0ttjƒS tdtƒS | jj	rx| j dkrVttjƒS | jdk rltt tƒS tt tƒS | j dkr | jdk r–ttjƒS tdtƒS tt tƒS d S )Né   r   éÿÿÿÿ)
r!   Zis_nonnegativer"   r   r
   r   r   r   r   r%   ©ÚbÚer   r   r   r   S   s"    











c                 C   s   t ttj| ƒtƒS r   )r   r   r
   r   r   r,   r   r   r   r   i   s    N)"Z
sympy.corer   r   Zsympy.core.functionr   Zsympy.core.numbersr   r   r   r   r	   Zsympy.core.singletonr
   Zsympy.core.symbolr   Z(sympy.functions.elementary.miscellaneousr   r   Zsympy.sets.fancysetsr   Zsympy.sets.setexprr   Zsympy.sets.setsr   r   r   r   Zsympy.multipledispatchr   r   r   r   Úregisterr   r   r   r   r   Ú<module>   s2   









/


