Ë
    7^(hÒ<  ã                   óX   — d Z ddlmZ ddlmZ ddlmZ ddlmZ  G d„ d«      Z	d	„ Z
d
„ Zy)añ  
Interval Arithmetic for plotting.
This module does not implement interval arithmetic accurately and
hence cannot be used for purposes other than plotting. If you want
to use interval arithmetic, use mpmath's interval arithmetic.

The module implements interval arithmetic using numpy and
python floating points. The rounding up and down is not handled
and hence this is not an accurate implementation of interval
arithmetic.

The module uses numpy for speed which cannot be achieved with mpmath.
é    )Ú
int_valued)Ú	fuzzy_and)Ú	nsimplifyé   )ÚintervalMembershipc                   ó¶   — e Zd ZdZddœd„Zed„ «       Zed„ «       Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zd„ Zd„ ZeZd„ Zd„ Zd„ Zd„ ZeZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Úintervala:   Represents an interval containing floating points as start and
    end of the interval
    The is_valid variable tracks whether the interval obtained as the
    result of the function is in the domain and is continuous.
    - True: Represents the interval result of a function is continuous and
            in the domain of the function.
    - False: The interval argument of the function was not in the domain of
             the function, hence the is_valid of the result interval is False
    - None: The function was not continuous over the interval or
            the function's argument interval is partly in the domain of the
            function

    A comparison between an interval and a real number, or a
    comparison between two intervals may return ``intervalMembership``
    of two 3-valued logic values.
    T©Úis_validc                óØ  — || _         t        |«      dk(  rdt        |d   t        «      r*|d   j                  |d   j
                  c| _        | _        y t        |d   «      | _        t        |d   «      | _        y t        |«      dk(  rY|d   |d   k  r't        |d   «      | _        t        |d   «      | _        y t        |d   «      | _        t        |d   «      | _        y t        d«      ‚)Nr   r   é   z9interval takes a maximum of two float values as arguments)r   ÚlenÚ
isinstancer	   ÚstartÚendÚfloatÚ
ValueError)Úselfr   ÚargsÚkwargss       úm/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/plotting/intervalmath/interval_arithmetic.pyÚ__init__zinterval.__init__<   sË   € Ø ˆŒÜˆt‹9˜Š>Ü˜$˜q™'¤8Ô,Ø'+¨A¡w§}¡}°d¸1±g·k±kÐ$�”
˜D�Hä" 4¨¡7›^�”
Ü   a¡›>�•Ü�‹Y˜!Š^Ø�A‰w˜˜a™Ò Ü" 4¨¡7›^�”
Ü   a¡›>�•ä" 4¨¡7›^�”
Ü   a¡›>�•ô ð +ó ,ð ,ó    c                 ó:   — | j                   | j                  z   dz  S )Ng       @©r   r   ©r   s    r   Úmidzinterval.midP   s   € à—
‘
˜TŸX™XÑ%¨Ñ,Ð,r   c                 ó4   — | j                   | j                  z
  S ©N)r   r   r   s    r   Úwidthzinterval.widthT   s   € à�x‰x˜$Ÿ*™*Ñ$Ð$r   c                 ó8   — d| j                   | j                  fz  S )Nzinterval(%f, %f)r   r   s    r   Ú__repr__zinterval.__repr__X   s   € Ø! T§Z¡Z°·±Ð$:Ñ:Ð:r   c                 ó8   — d| j                   | j                  fz  S )Nz[%f, %f]r   r   s    r   Ú__str__zinterval.__str__[   s   € Ø˜TŸZ™Z¨¯©Ð2Ñ2Ð2r   c                 ó  — t        |t        t        f«      r`| j                  |k  rt	        d| j
                  «      S | j                  |kD  rt	        d| j
                  «      S t	        d | j
                  «      S t        |t        «      rwt        | j
                  |j
                  g«      }| j                  |j                  k  rt	        d|«      S | j                  |j                  kD  rt	        d|«      S t	        d |«      S t        S ©NTF©
r   Úintr   r   r   r   r   r	   r   ÚNotImplemented©r   ÚotherÚvalids      r   Ú__lt__zinterval.__lt__^   sÉ   € Ü�eœc¤5˜\Ô*Ø�x‰x˜%ÒÜ)¨$°·±Ó>Ð>Ø—‘˜eÒ#Ü)¨%°·±Ó?Ð?ä)¨$°·±Ó>Ð>ä˜œxÔ(Ü˜tŸ}™}¨e¯n©nÐ=Ó>ˆEØ�x‰x˜%Ÿ,™,Ò&Ü)¨$°Ó6Ð6Ø�z‰z˜EŸI™IÒ%Ü)¨%°Ó7Ð7Ü% d¨EÓ2Ð2ä!Ð!r   c                 ó<  — t        |t        t        f«      r`| j                  |kD  rt	        d| j
                  «      S | j                  |k  rt	        d| j
                  «      S t	        d | j
                  «      S t        |t        «      r|j                  | «      S t        S r&   )
r   r(   r   r   r   r   r   r	   r-   r)   ©r   r+   s     r   Ú__gt__zinterval.__gt__q   sz   € Ü�eœc¤5˜\Ô*Ø�z‰z˜EÒ!Ü)¨$°·±Ó>Ð>Ø—‘˜EÒ!Ü)¨%°·±Ó?Ð?ä)¨$°·±Ó>Ð>Ü˜œxÔ(Ø—<‘< Ó%Ð%ä!Ð!r   c                 ó8  — t        |t        t        f«      rd| j                  |k(  r%| j                  |k(  rt        d| j                  «      S || v rt        d | j                  «      S t        d| j                  «      S t        |t        «      r‹t        | j                  |j                  g«      }| j                  |j                  k(  r%| j                  |j                  k(  rt        d|«      S | j                  |«      d   �t        d|«      S t        d |«      S t        S )NTFr   ©r   r(   r   r   r   r   r   r	   r   r-   r)   r*   s      r   Ú__eq__zinterval.__eq__~   sâ   € Ü�eœc¤5˜\Ô*Ø�z‰z˜UÒ" t§x¡x°5Ò'8Ü)¨$°·±Ó>Ð>Ø˜‰}Ü)¨$°·±Ó>Ð>ä)¨%°·±Ó?Ð?ä�eœXÔ&Ü˜tŸ}™}¨e¯n©nÐ=Ó>ˆEØ�z‰z˜UŸ[™[Ò(¨T¯X©X¸¿¹Ò-BÜ)¨$°Ó6Ð6Ø—‘˜UÓ# AÑ&Ð2Ü)¨%°Ó7Ð7ä)¨$°Ó6Ð6ä!Ð!r   c                 ó8  — t        |t        t        f«      rd| j                  |k(  r%| j                  |k(  rt        d| j                  «      S || v rt        d | j                  «      S t        d| j                  «      S t        |t        «      r‹t        | j                  |j                  g«      }| j                  |j                  k(  r%| j                  |j                  k(  rt        d|«      S | j                  |«      d   �t        d|«      S t        d |«      S t        S )NFTr   r2   r*   s      r   Ú__ne__zinterval.__ne__’   sâ   € Ü�eœc¤5˜\Ô*Ø�z‰z˜UÒ" t§x¡x°5Ò'8Ü)¨%°·±Ó?Ð?Ø˜‰}Ü)¨$°·±Ó>Ð>ä)¨$°·±Ó>Ð>ä�eœXÔ&Ü˜tŸ}™}¨e¯n©nÐ=Ó>ˆEØ�z‰z˜UŸ[™[Ò(¨T¯X©X¸¿¹Ò-BÜ)¨%°Ó7Ð7Ø—;‘;˜uÓ% aÑ(Ð0Ü)¨$°Ó6Ð6Ü% d¨EÓ2Ð2ä!Ð!r   c                 ó  — t        |t        t        f«      r`| j                  |k  rt	        d| j
                  «      S | j                  |kD  rt	        d| j
                  «      S t	        d | j
                  «      S t        |t        «      rwt        | j
                  |j
                  g«      }| j                  |j                  k  rt	        d|«      S | j                  |j                  kD  rt	        d|«      S t	        d |«      S t        S r&   r'   r*   s      r   Ú__le__zinterval.__le__¥   sÉ   € Ü�eœc¤5˜\Ô*Ø�x‰x˜5Ò Ü)¨$°·±Ó>Ð>Ø�z‰z˜EÒ!Ü)¨%°·±Ó?Ð?ä)¨$°·±Ó>Ð>ä�eœXÔ&Ü˜tŸ}™}¨e¯n©nÐ=Ó>ˆEØ�x‰x˜5Ÿ;™;Ò&Ü)¨$°Ó6Ð6Ø�z‰z˜EŸI™IÒ%Ü)¨%°Ó7Ð7Ü% d¨EÓ2Ð2ä!Ð!r   c                 ó2  — t        |t        t        f«      r`| j                  |k\  rt	        d| j
                  «      S | j                  |k  rt	        d| j
                  «      S t	        d | j
                  «      S t        |t        «      r|j                  | «      S y r&   )	r   r(   r   r   r   r   r   r	   r7   r/   s     r   Ú__ge__zinterval.__ge__¸   sy   € Ü�eœc¤5˜\Ô*Ø�z‰z˜UÒ"Ü)¨$°·±Ó>Ð>Ø—‘˜EÒ!Ü)¨%°·±Ó?Ð?ä)¨$°·±Ó>Ð>Ü˜œxÔ(Ø—<‘< Ó%Ð%ð )r   c                 óì  — t        |t        t        f«      rh| j                  r&t	        | j
                  |z   | j                  |z   «      S | j
                  |z   }| j                  |z   }t	        ||| j                  ¬«      S t        |t        «      ra| j
                  |j
                  z   }| j                  |j                  z   }t        | j                  |j                  g«      }t	        |||¬«      S t        S ©Nr
   )	r   r(   r   r   r	   r   r   r   r)   ©r   r+   r   r   r,   s        r   Ú__add__zinterval.__add__Ã   s¿   € Ü�eœc¤5˜\Ô*Ø�}Š}Ü §
¡
¨UÑ 2°D·H±H¸uÑ4DÓEÐEàŸ
™
 UÑ*�Ø—h‘h Ñ&�Ü  s°T·]±]ÔCÐCä˜œxÔ(Ø—J‘J §¡Ñ,ˆEØ—(‘(˜UŸY™YÑ&ˆCÜ˜tŸ}™}¨e¯n©nÐ=Ó>ˆEÜ˜E 3°Ô7Ð7ä!Ð!r   c                 óˆ  — t        |t        t        f«      r6| j                  |z
  }| j                  |z
  }t        ||| j                  ¬«      S t        |t
        «      ra| j                  |j                  z
  }| j                  |j                  z
  }t        | j                  |j                  g«      }t        |||¬«      S t        S r;   )	r   r(   r   r   r   r	   r   r   r)   r<   s        r   Ú__sub__zinterval.__sub__Ö   s™   € Ü�eœc¤5˜\Ô*Ø—J‘J Ñ&ˆEØ—(‘(˜UÑ"ˆCÜ˜E 3°·±Ô?Ð?ä˜œxÔ(Ø—J‘J §¡Ñ*ˆEØ—(‘(˜UŸ[™[Ñ(ˆCÜ˜tŸ}™}¨e¯n©nÐ=Ó>ˆEÜ˜E 3°Ô7Ð7ä!Ð!r   c                 óè   — t        |t        t        f«      r6|| j                  z
  }|| j                  z
  }t        ||| j                  ¬«      S t        |t
        «      r|j                  | «      S t        S r;   )	r   r(   r   r   r   r	   r   r?   r)   )r   r+   r   r   s       r   Ú__rsub__zinterval.__rsub__ä   s^   € Ü�eœc¤5˜\Ô*Ø˜DŸH™HÑ$ˆEØ˜$Ÿ*™*Ñ$ˆCÜ˜E 3°·±Ô?Ð?Ü˜œxÔ(Ø—=‘= Ó&Ð&ä!Ð!r   c                 óº   — | j                   r"t        | j                   | j                   «      S t        | j                   | j                   | j                   ¬«      S r;   )r   r	   r   r   r   s    r   Ú__neg__zinterval.__neg__î   sA   € Ø�=Š=Ü˜TŸX™X˜I¨¯
©
 {Ó3Ð3ä˜TŸX™X˜I¨¯
©
 {¸T¿]¹]ÔKÐKr   c                 ó4  — t        |t        «      �r:| j                  du s|j                  du r!t        t        d«       t        d«      d¬«      S | j                  �|j                  €!t        t        d«       t        d«      d ¬«      S g }|j	                  | j
                  |j
                  z  «       |j	                  | j                  |j
                  z  «       |j	                  | j
                  |j                  z  «       |j	                  | j                  |j                  z  «       t        |«      }t        |«      }t        ||«      S t        |t        t        f«      r2t        | j
                  |z  | j                  |z  | j                  ¬«      S t        S )NFÚinfr
   )r   r	   r   r   Úappendr   r   ÚminÚmaxr(   r)   )r   r+   Úintersr   r   s        r   Ú__mul__zinterval.__mul__ô   s(  € Ü�eœXÕ&Ø�}‰} Ñ%¨¯©¸5Ñ)@Ü¤ u£ ¬u°U«|ÀeÔLÐLØ—‘Ð&¨%¯.©.Ð*@Ü¤ u£ ¬u°U«|ÀdÔKÐKà�Ø—‘˜dŸj™j¨5¯;©;Ñ6Ô7Ø—‘˜dŸh™h¨¯©Ñ4Ô5Ø—‘˜dŸj™j¨5¯9©9Ñ4Ô5Ø—‘˜dŸh™h¨¯©Ñ2Ô3Ü˜F›�Ü˜&“k�Ü  sÓ+Ð+Ü˜¤¤U˜|Ô,Ü˜DŸJ™J uÑ,¨d¯h©h°u©nÀtÇ}Á}ÔUÐUä!Ð!r   c                 óÖ   — t        |t        t        f«      r | j                  |k  xr | j                  |k\  S | j                  |j                  k  xr |j                  | j                  k  S r   )r   r(   r   r   r   r/   s     r   Ú__contains__zinterval.__contains__
  sR   € Ü�eœc¤5˜\Ô*Ø—:‘: Ñ&Ò<¨4¯8©8°uÑ+<Ð<à—:‘: §¡Ñ,ÒF°·±¸d¿h¹hÑ1FÐFr   c                 ó´   — t        |t        t        f«      rt        |«      }|j	                  | «      S t        |t        «      r|j	                  | «      S t
        S r   )r   r(   r   r	   Ú__truediv__r)   r/   s     r   Ú__rtruediv__zinterval.__rtruediv__  sK   € Ü�eœc¤5˜\Ô*Ü˜U“OˆEØ×$Ñ$ TÓ*Ð*Ü˜œxÔ(Ø×$Ñ$ TÓ*Ð*ä!Ð!r   c                 óN  — | j                   s+t        t        d«       t        d«      | j                   ¬«      S t        |t        t        f«      rL|dk(  r!t        t        d«       t        d«      d¬«      S t        | j
                  |z  | j                  |z  «      S t        |t        «      �rv|j                   du s| j                   du r!t        t        d«       t        d«      d¬«      S |j                   �| j                   €!t        t        d«       t        d«      d ¬«      S d|v r!t        t        d«       t        d«      d ¬«      S | }|j                  dk  r| }| }g }|j                  |j
                  |j
                  z  «       |j                  |j                  |j
                  z  «       |j                  |j
                  |j                  z  «       |j                  |j                  |j                  z  «       t        |«      }t        |«      }t        ||«      S t        S )NrE   r
   r   F)r   r	   r   r   r(   r   r   rF   rH   rG   r)   )r   r+   ÚthisrI   r   r   s         r   rN   zinterval.__truediv__  s«  € à�}Š}äœU 5›\˜M¬5°«<À$Ç-Á-ÔPÐPÜ�eœc¤5˜\Ô*Ø˜Šzä¤ u£ ¬u°U«|ÀeÔLÐLä §
¡
¨UÑ 2°D·H±H¸uÑ4DÓEÐEä˜œxÕ(Ø�~‰~ Ñ&¨$¯-©-¸5Ñ*@Ü¤ u£ ¬u°U«|ÀeÔLÐLØ—‘Ð'¨4¯=©=Ð+@Ü¤ u£ ¬u°U«|ÀdÔKÐKð ˜‘:Ü#¤U¨5£\ M´5¸³<È$ÔOÐOð �Ø—9‘9˜q’=Ø ˜5�DØ"˜F�Eð �Ø—‘˜dŸj™j¨5¯;©;Ñ6Ô7Ø—‘˜dŸh™h¨¯©Ñ4Ô5Ø—‘˜dŸj™j¨5¯9©9Ñ4Ô5Ø—‘˜dŸh™h¨¯©Ñ2Ô3Ü˜F›�Ü˜&“k�Ü  sÓ+Ð+ä!Ð!r   c                 ó2  — ddl m}m} | j                  s| S t	        |t
        «      r || || «      z  «      S t	        |t        t        f«      rE|dk  rd| j                  t        |«      «      z  S t        |«      rt        | |«      S t        | |«      S t        S )Nr   )ÚexpÚlogr   )Úlib_intervalrS   rT   r   r   r	   r   r(   Ú__pow__Úabsr   Ú_pow_intÚ
_pow_floatr)   )r   r+   rS   rT   s       r   rV   zinterval.__pow__B  s„   € ç*Ø�}Š}ØˆKÜ�eœXÔ&Ù�u™s 4›yÑ(Ó)Ð)Ü˜¤¤s˜|Ô,Ø�qŠyØ˜4Ÿ<™<¬¨E«
Ó3Ñ3Ð3ä˜eÔ$Ü# D¨%Ó0Ð0ä% d¨EÓ2Ð2ä!Ð!r   c                 ó>  — t        |t        t        f«      rá| j                  s| S |dk  r¨| j                  dkD  r!t        t        d«       t        d«      d¬«      S t        | j                  «      }|j                  «       \  }}|dz  dk(  r!t        t        d«       t        d«      d¬«      S t        |«      | j                  z   }|}t        ||«      S t        || j                  z  || j                  z  «      S t        |t
        «      r|j                  | «      S t        S )Nr   rE   Fr
   r   )r   r   r(   r   r    r	   r   r   Úas_numer_denomrW   r   rV   r)   )r   r+   Úpower_rationalÚnumÚdenomr   r   s          r   Ú__rpow__zinterval.__rpow__T  sö   € Ü�eœe¤S˜\Ô*Ø—=’=à�Ø˜’Ø—:‘: ’>Ü#¤U¨5£\ M´5¸³<È%ÔPÐPä%.¨t¯z©zÓ%:�NØ!/×!>Ñ!>Ó!@‘J�C˜Ø˜q‘y A’~Ü'¬¨u«¨´u¸U³|Ø16ô 8ð 8ô "% U£¨T¯Z©ZÑ!7Ð 7˜Ø#˜Ü'¨¨sÓ3Ð3ä  t§z¡zÑ 1°5¸$¿(¹(±?ÓCÐCÜ˜œxÔ(Ø—=‘= Ó&Ð&ä!Ð!r   c                 óZ   — t        | j                  | j                  | j                  f«      S r   )Úhashr   r   r   r   s    r   Ú__hash__zinterval.__hash__m  s    € Ü�T—]‘] D§J¡J°·±Ð9Ó:Ð:r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úpropertyr   r    r"   r$   r-   r0   r3   r5   r7   r9   r=   Ú__radd__r?   rA   rC   rJ   Ú__rmul__rL   rO   rN   rV   r_   rb   © r   r   r	   r	   *   s©   „ ñð" (,ô ,ð( ñ-ó ð-ð ñ%ó ð%ò;ò3ò"ò&"ò"ò("ò&"ò&	&ò"ð" €Hò"ò"òLò"ð( €HòGò"ò'"òR"ò$"ó2;r   r	   c                 ó$  — t        |«      }|j                  «       \  }}|dz  dk(  r[t        | j                  «      |z  }t        | j                  «      |z  }|dk  rt        dt        ||«      «      }|S t        ||«      }|S |dz  dk(  r€| j                  dk  r!t        t        d«       t        d«      d¬«      S | j                  dk  rt        d| j                  |z  d¬«      S t        | j                  |z  | j                  |z  «      S | j                  dk  rt        | j                  «      |z   }n| j                  |z  }| j                  dk  rt        | j                  «      |z   }n| j                  |z  }t        ||| j                  ¬«      S )z1Evaluates an interval raised to a floating point.r   r   rE   Fr
   N)	r   r[   rW   r   r   r	   rH   r   r   )ÚinterÚpowerr\   r]   r^   r   r   Úrets           r   rY   rY   q  sb  € ä˜uÓ%€NØ×.Ñ.Ó0�J€CˆØ
ˆQ�w�!‚|Ü�E—K‘KÓ  %Ñ'ˆÜ�%—)‘)‹n˜eÑ#ˆØ�1Š9Ü˜1œc %¨›oÓ.ˆCð ˆ
ô ˜5 #Ó&ˆCØˆ
Ø	�‰�aŠØ�9‰9�qŠ=ÜœU 5›\˜M¬5°«<À%ÔHÐHØ�[‰[˜1Š_Ü˜A˜uŸy™y¨%Ñ/¸$Ô?Ð?ä˜EŸK™K¨Ñ.°·	±	¸5Ñ0@ÓAÐAà�;‰;˜Š?Ü˜Ÿ™Ó% uÑ,Ð,‰Eà—K‘K Ñ&ˆEà�9‰9�qŠ=Ü�u—y‘y“> 5Ñ(Ð(‰Cà—)‘)˜UÑ"ˆCä˜˜s¨U¯^©^Ô<Ð<r   c                 ó^  — t        |«      }|dz  r&t        | j                  |z  | j                  |z  «      S | j                  dk  rC| j                  dkD  r4d}t	        | j                  |z  | j                  |z  «      }t        ||«      S t        | j                  |z  | j                  |z  «      S )z0Evaluates an interval raised to an integer powerr   r   )r(   r	   r   r   rH   )rl   rm   r   r   s       r   rX   rX   ’  s•   € ä�‹J€EØˆq‚yÜ˜Ÿ™ UÑ*¨E¯I©I°uÑ,<Ó=Ð=à�;‰;˜Š?˜uŸy™y¨1š}ØˆEÜ�e—k‘k 5Ñ(¨%¯)©)°UÑ*:Ó;ˆCÜ˜E 3Ó'Ð'ä˜EŸK™K¨Ñ.°·	±	¸5Ñ0@ÓAÐAr   N)rf   Úsympy.core.numbersr   Úsympy.core.logicr   Úsympy.simplify.simplifyr   Úinterval_membershipr   r	   rY   rX   rj   r   r   ú<module>rt      s2   ðñõD *Ý &Ý -å 3÷D;ñ D;òN
=óBBr   