
    wg                     h    d dl mZ 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mZ  G d de      Zd Zy	)
    )Expr)call_highest_priority
_sympifyit   )ImageSet)set_addset_subset_mulset_divset_powset_functionc                   @   e Zd ZdZdZd Z ed       Zd Z e	de
       ed      d               Z e	de
       ed	      d
               Z e	de
       ed      d               Z e	de
       ed      d               Z e	de
       ed      d               Z e	de
       ed      d               Z e	de
       ed      d               Z e	de
       ed      d               Z e	de
       ed      d               Z e	de
       ed      d               Zd Zy)SetExprab  An expression that can take on values of a set.

    Examples
    ========

    >>> from sympy import Interval, FiniteSet
    >>> from sympy.sets.setexpr import SetExpr

    >>> a = SetExpr(Interval(0, 5))
    >>> b = SetExpr(FiniteSet(1, 10))
    >>> (a + b).set
    Union(Interval(1, 6), Interval(10, 15))
    >>> (2*a + b).set
    Interval(1, 20)
    g      &@c                 .    t        j                  | |      S N)r   __new__)clssetargs     W/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/sympy/sets/setexpr.pyr   zSetExpr.__new__   s    ||C((    c                      | j                   d   S )Nr   )args)selfs    r   <lambda>zSetExpr.<lambda>   s    		! r   c                 V    dj                  |j                  | j                              S )NzSetExpr\left({}\right))format_printset)r   printers     r   _latexzSetExpr._latex   s     (//txx0HIIr   other__radd__c                 $    t        t        | |      S r   _setexpr_apply_operationr   r   r!   s     r   __add__zSetExpr.__add__!        (u==r   r'   c                 $    t        t        ||       S r   r$   r&   s     r   r"   zSetExpr.__radd__&        (==r   __rmul__c                 $    t        t        | |      S r   r%   r
   r&   s     r   __mul__zSetExpr.__mul__+   r(   r   r.   c                 $    t        t        ||       S r   r-   r&   s     r   r+   zSetExpr.__rmul__0   r*   r   __rsub__c                 $    t        t        | |      S r   r%   r	   r&   s     r   __sub__zSetExpr.__sub__5   r(   r   r3   c                 $    t        t        ||       S r   r2   r&   s     r   r0   zSetExpr.__rsub__:   r*   r   __rpow__c                 $    t        t        | |      S r   r%   r   r&   s     r   __pow__zSetExpr.__pow__?   r(   r   r8   c                 $    t        t        ||       S r   r7   r&   s     r   r5   zSetExpr.__rpow__D   r*   r   __rtruediv__c                 $    t        t        | |      S r   r%   r   r&   s     r   __truediv__zSetExpr.__truediv__I   r(   r   r=   c                 $    t        t        ||       S r   r<   r&   s     r   r:   zSetExpr.__rtruediv__N   r*   r   c                     t        || j                        }|t        t        || j                              S t        |      S r   )r   r   r   r   )r   funcress      r   
_eval_funczSetExpr._eval_funcS   s7    4*;8D$((344s|r   N)__name__
__module____qualname____doc___op_priorityr   propertyr   r    r   NotImplementedr   r'   r"   r.   r+   r3   r0   r8   r5   r=   r:   rB    r   r   r   r      s    L) ,
-CJ (:&> ' )> (9%> & )> (:&> ' )> (9%> & )> (:&> ' )> (9%> & )> (:&> ' )> (9%> & )> (>*> + )> (=)> * )>r   r   c                     t        |t              r|j                  }t        |t              r|j                  } | ||      }t        |      S r   )
isinstancer   r   )opxyouts       r   r%   r%   [   s=    !WEE!WEE
Q(C3<r   N)
sympy.corer   sympy.core.decoratorsr   r   	fancysetsr   setsr   r	   r
   r   r   r   r   r%   rJ   r   r   <module>rU      s(     C  K KQd Qhr   