ó
~9­\c           @   s°  d  d l  m Z m Z m Z m Z m Z m Z m Z m Z d  d l	 m
 Z
 m Z m Z d  d l m Z d  d l  m Z m Z d  d l m 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 e e e ƒ d „  ƒ Z e e e ƒ d „  ƒ Z e e e ƒ d „  ƒ Z e e e ƒ d „  ƒ Z d S(   iÿÿÿÿ(   t   Intervalt   Intersectiont   Sett   EmptySett	   FiniteSett   Uniont   ComplexRegiont
   ProductSet(   t   Integerst   Naturalst   Reals(   t   UniversalSet(   t   St   sympify(   t   dispatchc         C   s3   t  |  | ƒ } | |  k r | S| | k r/ |  Sd  S(   N(   R   (   t   at   bt	   intersect(    (    s8   lib/python2.7/site-packages/sympy/sets/handlers/union.pyt
   union_sets	   s
    c         C   s’   | j  t j ƒ r$ t j | ƒ } n  | j rŽ |  j rZ | j rZ t t |  j | j ƒ ƒ S|  j rŽ | j rŽ t t |  j | j ƒ d t	 ƒSn  d  S(   Nt   polar(   t	   is_subsetR   R
   R   t	   from_realt   is_ComplexRegionR   R   t   setst   Truet   None(   R   R   (    (    s8   lib/python2.7/site-packages/sympy/sets/handlers/union.pyR      s    	"c         C   s   | S(   N(    (   R   R   (    (    s8   lib/python2.7/site-packages/sympy/sets/handlers/union.pyR       s    c         C   s   |  S(   N(    (   R   R   (    (    s8   lib/python2.7/site-packages/sympy/sets/handlers/union.pyR   %   s    c         C   sÑ   | j  |  ƒ r |  St | j ƒ t |  j ƒ k r5 d  S|  j d | j d k r |  j d t t |  j d ƒ t | j d ƒ ƒ S|  j d | j d k rÍ t t |  j d  ƒ t | j d  ƒ ƒ |  j d Sd  S(   Ni    i   iÿÿÿÿ(   R   t   lent   argsR   R   R   (   R   R   (    (    s8   lib/python2.7/site-packages/sympy/sets/handlers/union.pyR   )   s    c         C   s   | j  |  ƒ r |  Sd  S(   N(   R   R   (   R   R   (    (    s8   lib/python2.7/site-packages/sympy/sets/handlers/union.pyR   7   s    c         C   s'  |  j  | ƒ r#d d l m } m } | |  j | j ƒ } | |  j | j ƒ } | | k  s | | k rƒ | |  k rƒ | | k rƒ d  S| |  j | j ƒ } | |  j | j ƒ } |  j | k sÅ |  j oÚ | j | k pÚ | j } |  j | k sõ |  j o
| j | k p
| j } t	 | | | | ƒ Sn  d  S(   Niÿÿÿÿ(   t   Mint   Max(
   t   _is_comparablet(   sympy.functions.elementary.miscellaneousR   R   t   endt   startR   t	   left_opent
   right_openR    (   R   R   R   R   R    R!   R"   R#   (    (    s8   lib/python2.7/site-packages/sympy/sets/handlers/union.pyR   =   s    $c         C   s   t  j S(   N(   R   R   (   R   R   (    (    s8   lib/python2.7/site-packages/sympy/sets/handlers/union.pyR   Q   s    c         C   s×   |  j  o3 t | j |  j ƒ ƒ t j k o3 |  j j } |  j oi t | j |  j ƒ ƒ t j k oi |  j j } | sx | rÓ |  j  o |  j | k } |  j o¥ |  j | k } t	 |  j |  j | | ƒ } t
 | | f ƒ Sd  S(   N(   R"   R   t   containsR!   R   t   truet	   is_finiteR#   R    R    t   setR   (   R   R   t   open_left_in_b_and_finitet   open_right_in_b_and_finitet	   open_leftt
   open_rightt   new_a(    (    s8   lib/python2.7/site-packages/sympy/sets/handlers/union.pyR   U   s    	!	!c         C   s   t  |  j | j BŒ  S(   N(   R   t	   _elements(   R   R   (    (    s8   lib/python2.7/site-packages/sympy/sets/handlers/union.pyR   h   s    c            sX   t  ‡  f d †  |  Dƒ ƒ rT t t g  |  D] } ˆ  j | ƒ s) | ^ q) Œ  ˆ  f ƒ Sd  S(   Nc         3   s$   |  ] } ˆ  j  | ƒ t k Vq d  S(   N(   R$   R   (   t   .0t   x(   R   (    s8   lib/python2.7/site-packages/sympy/sets/handlers/union.pys	   <genexpr>o   s    (   t   anyR'   R   R$   R   (   R   R   R/   (    (   R   s8   lib/python2.7/site-packages/sympy/sets/handlers/union.pyR   l   s    5c         C   s   d  S(   N(   R   (   R   R   (    (    s8   lib/python2.7/site-packages/sympy/sets/handlers/union.pyR   t   s    N(   t   sympyR    R   R   R   R   R   R   R   t   sympy.sets.fancysetsR   R	   R
   t   sympy.sets.setsR   R   R   t   sympy.multipledispatchR   R   (    (    (    s8   lib/python2.7/site-packages/sympy/sets/handlers/union.pyt   <module>   s    :