
    Ed                     p    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d	S )
    )Expr)call_highest_priority
_sympifyit   )ImageSet)set_addset_subset_mulset_divset_powset_functionc                   8   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dS )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     2lib/python3.11/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                 \    d                     |                    | j                            S )NzSetExpr\left({}\right))format_printset)r   printers     r   _latexzSetExpr._latex   s$    (//tx0H0HI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   sA    4** 	58D$(334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 J J Z((:&&> > '& )(> Z((9%%> > &% )(> Z((:&&> > '& )(> Z((9%%> > &% )(> Z((:&&> > '& )(> Z((9%%> > &% )(> Z((:&&> > '& )(> Z((9%%> > &% )(> Z((>**> > +* )(> Z((=))> > *) )(>    r   r   c                     t          |t                    r|j        }t          |t                    r|j        } | ||          }t          |          S r   )
isinstancer   r   )opxyouts       r   r%   r%   [   sO    !W E!W E
"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 C C C C C C C       K K K K K K K K K K K K K K K KQ Q Q Q Qd Q Q Qh    r   