
    Ed2                        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                    ee          d
             Ze                    ee          d             Ze                    ee          d             Ze                    ee          d             Ze                    ee          d             Ze                    ee          d             Ze                    ee          d             Ze                    ee          d             ZdS )    )BasicExpr)oo)symbols)
Dispatcher)set_mul)IntervalSetzx y_set_mul_set_divc                     d S N xys     7lib/python3.11/site-packages/sympy/sets/handlers/mul.py_r          4    c                     d S r   r   r   s     r   r   r      r   r   c                     | |z  S r   r   r   s     r   r   r          Q3Jr   c                    | j         |j         z  t          | j        p|j                  f| j         |j        z  t          | j        p|j                  f| j        |j         z  t          | j        p|j                  f| j        |j        z  t          | j        p|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     
17	D!;<<=	
15$q{:al;;<	
$q|:q{;;<	
Q\9Q\::;	G 'llOFG'llOFG	  r   c                     d S r   r   r   s     r   r   r   3   r   r   c                     | |z  S r   r   r   s     r   r   r   7   r   r   c                     d S 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   w!| qwYuz SquW1hr2q|Q[AAB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      s   " " " " " " " " ! ! ! ! ! ! % % % % % % - - - - - - & & & & & & ) ) ) ) ) ) ) ) 
B :j!!:j!! 
5%    !  
3   
4   
8X&&  '&, 
5%    !  
4   
3   
8X&&C C '&C C Cr   