
    sg                        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
 d dlmZmZmZmZmZ d dlmZmZmZmZ d dlmZ ej0                  ej2                  ej4                  ej*                  ej&                  ej$                  g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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)    )S)Symbol)	fuzzy_and
fuzzy_bool	fuzzy_notfuzzy_or)Eq)	FiniteSetIntervalSetUnion
ProductSet)	ComplexesRealsRange	Rationals)
Dispatcheris_subset_setsc                      y N abs     O/var/www/html/venv/lib/python3.12/site-packages/sympy/sets/handlers/issubset.py_r              c                    t        | j                  |j                  k        ryt        | j                  |j                  kD        ry|j                  r6| j                  s*t        t	        | j                  |j                              ry|j
                  r8| j
                  s+t        t	        | j                  |j                              ryy y y NF)r   startend	left_openr	   
right_openr   s     r   r   r      s     !''AGG#$!%%!%%- 	AKKJr!''1777K,L	Q\\jAEE1559I.J /K\r   c                 D    t        | j                  j                        ryy r    )r   measureis_zero)
a_intervalb_fss     r   r   r       s      ##++, -r   c                 T    t        d |j                  D              r|j                  D cg c]  }t        |t              s| }}t         fd|D              ryt         fd|D              ry j                  j
                  rd t         fd|D              ryy y y c c}w )Nc              3   H   K   | ]  }t        |t        t        f        y wr   )
isinstancer   r
   ).0ss     r   	<genexpr>z_.<locals>.<genexpr>)   s     
BA:a(I./
Bs    "c              3   b   K   | ]&  }t        j                  |j                  k         ( y wr   )r   r!   r-   r.   r(   s     r   r/   z_.<locals>.<genexpr>+   s%     I!z***QWW45I   ,/Fc              3   b   K   | ]&  }t        j                  |j                  kD         ( y wr   )r   r"   r1   s     r   r/   z_.<locals>.<genexpr>-   s#     Eaz*..15501Er2   c                     t        t        | j                  |j                  k        t        | j                  |j                  k\        g      S r   )r   r   r"   r!   )s1s2s     r   <lambda>z_.<locals>.<lambda>0   s:    rvv12rxx266122 ) r   c              3   0   K   | ]  } |        y wr   r   )r-   r.   r(   
no_overlaps     r   r/   z_.<locals>.<genexpr>4   s     @:a,@s   )allargsr,   r   r&   
is_nonzero)r(   b_ur.   	intervalsr9   s   `   @r   r   r   '   s    

B
BB #D1Jq(,CQD	DIyIIE9EE((J @i@@ A ) CDs   B%B%c                     | j                   |j                   cxk(  rdk(  rPn y t        t        | j                  |j                  k\        t        | j                  |j                  k        g      S y )N   )stepr   r   r!   stopr   s     r   r   r   7   sW    vv1*QWW%78$QVVqvv%568 9 	9 r   c                    | j                   j                  r|j                  r0| j                  j                  r| j                  |j
                  kD  }n| j                  |j
                  k\  }|j                  r0| j                  j                  r| j                  |j                  k  }n| j                  |j                  k  }t        ||g      S y r   )
rA   is_positiver#   inf	is_finiteleftr$   suprightr   )a_range
b_interval	cond_left
cond_rights       r   r   r   =   s    ||GKK$9$9joo5Iz6I  W[[%:%: z'7'77J 
(8(88J)Z011  r   c                    	 | j                   }|t              kD  ryt        d | j                  D              rt        fd| D              S t        |       }t              }d}D ]c  }|j                  r|j                  |       nt        |j                        rn|dz  }|dz  }t        |      ||z   kD  r yt        |      dk(  sc y y # t        $ r Y y w xY w)NFc              3   F   K   | ]  }|j                  t                y wr   )hasr   )r-   args     r   r/   z_.<locals>.<genexpr>S   s     5SWWV_5s   !c              3   @   K   | ]  }j                  |        y wr   contains)r-   xb_finitesets     r   r/   z_.<locals>.<genexpr>T   s     BQ--a0B   r   r@   T)size
ValueErrorlenanyr;   r   set
is_Integerdiscardr   
is_integer)rJ   rV   a_sizea_setb_remainingcnt_candidater   s    `     r   r   r   J   s     K  	55	5B'BBB G+&  	A||a 1<<("1K5zK-775zQ	 9  s   C 	CCc                 2    | j                   j                  ryy r    r&   is_extended_nonzero)r(   b_ranges     r   r   r   l       -- .r   c                 2    | j                   j                  ryy r    re   )r(   b_rationalss     r   r   r   q   rh   r   c                      yNTr   r   s     r   r   r   v   r   r   c                      yr    r   r   s     r   r   r   z       r   c                      yr    r   r   s     r   r   r   ~   rn   r   c                      yr    r   r   s     r   r   r      rn   r   c                      yrl   r   r   s     r   r   r      r   r   c                      yr    r   r   s     r   r   r      rn   r   c                 ,    t        fd| D              S )Nc              3   @   K   | ]  }j                  |        y wr   rS   )r-   rU   r)   s     r   r/   z_.<locals>.<genexpr>   s     4!T]]1%4rW   )r   )a_psr)   s    `r   r   r      s    4t444r   N)sympy.core.singletonr   sympy.core.symbolr   sympy.core.logicr   r   r   r   sympy.core.relationalr	   sympy.sets.setsr
   r   r   r   r   sympy.sets.fancysetsr   r   r   r   sympy.multipledispatchr   Naturals	Naturals0Integers	_inf_setsr   registerr   r   r   r   <module>r      sm   " $ G G $ G G C C - ZZajj!++qwwT	 ,- c" # 8,	 -	 9- . 5) * &9 '9
 )
2 *
2 	* +B 5) * 9- . 	* + H- . E* + I. / E* + E* + Y/5 05r   