
    sg2                     
   d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZmZ  ed      \  Z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y)    )BasicExpr)oo)symbols)
Dispatcher)set_mul)IntervalSetzx y_set_mul_set_divc                      y N xys     J/var/www/html/venv/lib/python3.12/site-packages/sympy/sets/handlers/mul.py_r              c                      y r   r   r   s     r   r   r      r   r   c                     | |z  S r   r   r   s     r   r   r          Q3Jr   c                 2   | j                   |j                   z  t        | j                  xs |j                        f| j                   |j                  z  t        | j                  xs |j                        f| j                  |j                   z  t        | j                  xs |j                        f| j                  |j                  z  t        | j                  xs |j                        ff}t        |      \  }}t        |      \  }}t        ||||      S )zf
    Multiplications in interval arithmetic
    https://en.wikipedia.org/wiki/Interval_arithmetic
    )startbool	left_openend
right_openminmaxr	   )r   r   comvalsminvalminopenmaxvalmaxopens          r   r   r      s     
177	D!;<=	
155$q{{:all;<	
$q||:q{{;<	
Q\\9Q\\:;	G 'lOFG'lOFG	 r   c                      y r   r   r   s     r   r   r   3   r   r   c                     | |z  S r   r   r   s     r   r   r   7   r   r   c                      y r   r   r   s     r   r   r   ;   r   r   c           	      `   |j                   |j                  z  j                  rt        t         t              S |j                   dk(  rt        }nd|j                   z  }|j                  dk(  rt         }nd|j                  z  }t        | t        |||j                  |j                              S )z`
    Divisions in interval arithmetic
    https://en.wikipedia.org/wiki/Interval_arithmetic
    r      )r   r   is_negativer	   r   r   r   r   )r   r   s2s1s       r   r   r   ?   s     	
""R  ww!|qwwYuuzSquuW1hr2q||Q[[ABBr   N)
sympy.corer   r   sympy.core.numbersr   sympy.core.symbolr   sympy.multipledispatchr   sympy.sets.setexprr   sympy.sets.setsr	   r
   _x_yr   r   registerr   r   r   r   <module>r8      sF   " ! % - & ) 
B j!j! 
5%  ! 
3  
4  
8X& ', 
5%  ! 
4  
3  
8X&C 'Cr   