
    sgG                     P   d dl mZmZmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZmZ  e
d      Z e
d      Zej!                  ee      d        Zej!                  ee      d	        Zej!                  ee      d
        Zej!                  ee      d        Zej!                  ee      d        Zej!                  ee      d        Zej!                  ee      d        Zej!                  ee      d        Zej!                  ee      d        Zej!                  ee      d        Zy)    )ooInfinityNegativeInfinity)S)BasicExpr)
Dispatcher)Interval	FiniteSet_set_add_set_subc                      y N xys     J/var/www/html/venv/lib/python3.12/site-packages/sympy/sets/handlers/add.py_r              c                     | |z   S r   r   r   s     r   r   r          Q3Jr   c                     t        | j                  |j                  z   | j                  |j                  z   | j                  xs |j                  | j                  xs |j                        S )z`
    Additions in interval arithmetic
    https://en.wikipedia.org/wiki/Interval_arithmetic
    r
   startend	left_open
right_openr   s     r   r   r      sO     AGGagg%quuquu}KK.1;;0LN Nr   c                     | j                   t        j                  u rt        t         t              S t        t        j                  h      S r   )r   r   r   r
   r   r   r   r   s     r   r   r   $   s4    ww!$$$R  ajj\""r   c                     | j                   t        j                  u rt        t         t              S t        t        j                  h      S r   )r   r   r   r
   r   r   r   r   s     r   r   r   *   s5    uu

R  a(()**r   c                      y r   r   r   s     r   r   r   1   r   r   c                     | |z
  S r   r   r   s     r   r   r   6   r   r   c                     t        | j                  |j                  z
  | j                  |j                  z
  | j                  xs |j                  | j                  xs |j                        S )zc
    Subtractions in interval arithmetic
    https://en.wikipedia.org/wiki/Interval_arithmetic
    r   r   s     r   r   r   ;   sN     AGGaeeOQUUQWW_KK/1<<1LN Nr   c                     | j                   t        j                  u rt        t         t              S t        t               S r   r   r   r   r
   r   r   r   s     r   r   r   E   /    ww!$$$R  bS>r   c                     | j                   t        j                  u rt        t         t              S t        t               S r   r&   r   s     r   r   r   K   r'   r   N)sympy.core.numbersr   r   r   sympy.core.singletonr   
sympy.corer   r   sympy.multipledispatchr	   
sympy.setsr
   r   r   r   registerr   r   r   r   <module>r/      s}   = = " " - * j!j! 
5%  ! 
4  
8X&N 'N 
8X&# '#
 
8-.+ /+ 
5%  ! 
4  
8X&N 'N 
8X& '
 
8-. /r   