ó
    Š*£hÒ<  ã                   óX   • S r SSKJr  SSKJr  SSKJr  SSKJr   " S S5      r	S	 r
S
 rg)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                   óÀ   • \ rS rSrSrSS.S jr\S 5       r\S 5       rS r	S	 r
S
 rS rS rS rS rS rS r\rS rS rS rS r\rS rS rS rS rS rS rSrg)Úintervalé*   a  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                óæ  • Xl         [        U5      S:X  ai  [        US   [        5      (       a*  US   R                  US   R
                  sU l        U l        g [        US   5      U l        [        US   5      U l        g [        U5      S:X  aZ  US   US   :  a'  [        US   5      U l        [        US   5      U l        g [        US   5      U l        [        US   5      U l        g [        S5      e)Nr   r   é   z9interval takes a maximum of two float values as arguments)r   ÚlenÚ
isinstancer	   ÚstartÚendÚfloatÚ
ValueError)Úselfr   ÚargsÚkwargss       Úl/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/plotting/intervalmath/interval_arithmetic.pyÚ__init__Ú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                 ó:   • U R                   U R                  -   S-  $ )Ng       @©r   r   ©r   s    r   ÚmidÚinterval.midP   s   € à—
‘
˜TŸX™XÑ%¨Ñ,Ð,r   c                 ó4   • U R                   U R                  -
  $ ©N)r   r   r   s    r   ÚwidthÚinterval.widthT   s   € à�x‰x˜$Ÿ*™*Ñ$Ð$r   c                 ó8   • SU R                   U R                  4-  $ )Nzinterval(%f, %f)r   r   s    r   Ú__repr__Úinterval.__repr__X   s   € Ø! T§Z¡Z°·±Ð$:Ñ:Ð:r   c                 ó8   • SU R                   U R                  4-  $ )Nz[%f, %f]r   r   s    r   Ú__str__Úinterval.__str__[   s   € Ø˜TŸZ™Z¨¯©Ð2Ñ2Ð2r   c                 ó$  • [        U[        [        45      (       ab  U R                  U:  a  [	        SU R
                  5      $ U R                  U:”  a  [	        SU R
                  5      $ [	        S U R
                  5      $ [        U[        5      (       ay  [        U R
                  UR
                  /5      nU R                  UR                  :  a  [	        SU5      $ U R                  UR                  :”  a  [	        SU5      $ [	        S U5      $ [        $ ©NTF©
r   Úintr   r   r   r   r   r	   r   ÚNotImplemented©r   ÚotherÚvalids      r   Ú__lt__Ú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  • [        U[        [        45      (       ab  U R                  U:”  a  [	        SU R
                  5      $ U R                  U:  a  [	        SU R
                  5      $ [	        S U R
                  5      $ [        U[        5      (       a  UR                  U 5      $ [        $ r,   )
r   r.   r   r   r   r   r   r	   r3   r/   ©r   r1   s     r   Ú__gt__Úinterval.__gt__q   s€   € Ü�eœc¤5˜\×*Ñ*Ø�z‰z˜EÓ!Ü)¨$°·±Ó>Ð>Ø—‘˜EÓ!Ü)¨%°·±Ó?Ð?ä)¨$°·±Ó>Ð>Ü˜œx×(Ñ(Ø—<‘< Ó%Ð%ä!Ð!r   c                 óX  • [        U[        [        45      (       ag  U R                  U:X  a&  U R                  U:X  a  [        SU R                  5      $ X;   a  [        S U R                  5      $ [        SU R                  5      $ [        U[        5      (       aŽ  [        U R                  UR                  /5      nU R                  UR                  :X  a&  U R                  UR                  :X  a  [        SU5      $ U R                  U5      S   b  [        SU5      $ [        S U5      $ [        $ )NTFr   ©r   r.   r   r   r   r   r   r	   r   r3   r/   r0   s      r   Ú__eq__Ú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                 óX  • [        U[        [        45      (       ag  U R                  U:X  a&  U R                  U:X  a  [        SU R                  5      $ X;   a  [        S U R                  5      $ [        SU R                  5      $ [        U[        5      (       aŽ  [        U R                  UR                  /5      nU R                  UR                  :X  a&  U R                  UR                  :X  a  [        SU5      $ U R                  U5      S   b  [        SU5      $ [        S U5      $ [        $ )NFTr   r:   r0   s      r   Ú__ne__Ú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                 ó$  • [        U[        [        45      (       ab  U R                  U::  a  [	        SU R
                  5      $ U R                  U:”  a  [	        SU R
                  5      $ [	        S U R
                  5      $ [        U[        5      (       ay  [        U R
                  UR
                  /5      nU R                  UR                  ::  a  [	        SU5      $ U R                  UR                  :”  a  [	        SU5      $ [	        S U5      $ [        $ r,   r-   r0   s      r   Ú__le__Ú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                 óJ  • [        U[        [        45      (       ab  U R                  U:¼  a  [	        SU R
                  5      $ U R                  U:  a  [	        SU R
                  5      $ [	        S U R
                  5      $ [        U[        5      (       a  UR                  U 5      $ g r,   )	r   r.   r   r   r   r   r   r	   rA   r6   s     r   Ú__ge__Úinterval.__ge__¸   s   € Ü�eœc¤5˜\×*Ñ*Ø�z‰z˜UÓ"Ü)¨$°·±Ó>Ð>Ø—‘˜EÓ!Ü)¨%°·±Ó?Ð?ä)¨$°·±Ó>Ð>Ü˜œx×(Ñ(Ø—<‘< Ó%Ð%ð )r   c                 óú  • [        U[        [        45      (       ai  U R                  (       a&  [	        U R
                  U-   U R                  U-   5      $ U R
                  U-   nU R                  U-   n[	        X#U R                  S9$ [        U[        5      (       a]  U R
                  UR
                  -   nU R                  UR                  -   n[        U R                  UR                  /5      n[	        X#US9$ [        $ ©Nr   )	r   r.   r   r   r	   r   r   r   r/   ©r   r1   r   r   r2   s        r   Ú__add__Úinterval.__add__Ã   sÁ   € Ü�eœc¤5˜\×*Ñ*Ø�}�}Ü §
¡
¨UÑ 2°D·H±H¸uÑ4DÓEÐEàŸ
™
 UÑ*�Ø—h‘h Ñ&�Ü °T·]±]ÑCÐCä˜œx×(Ñ(Ø—J‘J §¡Ñ,ˆEØ—(‘(˜UŸY™YÑ&ˆCÜ˜tŸ}™}¨e¯n©nÐ=Ó>ˆEÜ˜E°Ñ7Ð7ä!Ð!r   c                 óŒ  • [        U[        [        45      (       a2  U R                  U-
  nU R                  U-
  n[        X#U R                  S9$ [        U[
        5      (       a]  U R                  UR                  -
  nU R                  UR                  -
  n[        U R                  UR                  /5      n[        X#US9$ [        $ rG   )	r   r.   r   r   r   r	   r   r   r/   rH   s        r   Ú__sub__Úinterval.__sub__Ö   s›   € Ü�eœc¤5˜\×*Ñ*Ø—J‘J Ñ&ˆEØ—(‘(˜UÑ"ˆCÜ˜E°·±Ñ?Ð?ä˜œx×(Ñ(Ø—J‘J §¡Ñ*ˆEØ—(‘(˜UŸ[™[Ñ(ˆCÜ˜tŸ}™}¨e¯n©nÐ=Ó>ˆEÜ˜E°Ñ7Ð7ä!Ð!r   c                 óð   • [        U[        [        45      (       a0  XR                  -
  nXR                  -
  n[        X#U R                  S9$ [        U[
        5      (       a  UR                  U 5      $ [        $ rG   )	r   r.   r   r   r   r	   r   rL   r/   )r   r1   r   r   s       r   Ú__rsub__Úinterval.__rsub__ä   s^   € Ü�eœc¤5˜\×*Ñ*ØŸH™HÑ$ˆEØŸ*™*Ñ$ˆCÜ˜E°·±Ñ?Ð?Ü˜œx×(Ñ(Ø—=‘= Ó&Ð&ä!Ð!r   c                 ó¾   • U R                   (       a"  [        U R                  * U R                  * 5      $ [        U R                  * U R                  * U R                   S9$ rG   )r   r	   r   r   r   s    r   Ú__neg__Úinterval.__neg__î   sA   € Ø�=�=Ü˜TŸX™X˜I¨¯
©
 {Ó3Ð3ä˜TŸX™X˜I¨¯
©
 {¸T¿]¹]ÑKÐKr   c                 ó<  • [        U[        5      (       Ga7  U R                  SL d  UR                  SL a  [        [        S5      * [        S5      SS9$ U R                  b  UR                  c  [        [        S5      * [        S5      S S9$ / nUR	                  U R
                  UR
                  -  5        UR	                  U R                  UR
                  -  5        UR	                  U R
                  UR                  -  5        UR	                  U R                  UR                  -  5        [        U5      n[        U5      n[        X45      $ [        U[        [        45      (       a/  [        U R
                  U-  U R                  U-  U R                  S9$ [        $ )NFÚinfr   )r   r	   r   r   Úappendr   r   ÚminÚmaxr.   r/   )r   r1   Úintersr   r   s        r   Ú__mul__Ú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�Ü Ó+Ð+Ü˜¤¤U˜|×,Ñ,Ü˜DŸJ™J uÑ,¨d¯h©h°u©nÀtÇ}Á}ÑUÐUä!Ð!r   c                 óô   • [        U[        [        45      (       a%  U R                  U:*  =(       a    U R                  U:¬  $ U R                  UR                  :*  =(       a    UR                  U R                  :*  $ r"   )r   r.   r   r   r   r6   s     r   Ú__contains__Úinterval.__contains__
  sU   € Ü�eœc¤5˜\×*Ñ*Ø—:‘: Ñ&×<¨4¯8©8°uÑ+<Ð<à—:‘: §¡Ñ,×F°·±¸d¿h¹hÑ1FÐFr   c                 óÈ   • [        U[        [        45      (       a  [        U5      nUR	                  U 5      $ [        U[        5      (       a  UR	                  U 5      $ [
        $ r"   )r   r.   r   r	   Ú__truediv__r/   r6   s     r   Ú__rtruediv__Úinterval.__rtruediv__  sQ   € Ü�eœc¤5˜\×*Ñ*Ü˜U“OˆEØ×$Ñ$ TÓ*Ð*Ü˜œx×(Ñ(Ø×$Ñ$ TÓ*Ð*ä!Ð!r   c                 ó\  • U R                   (       d(  [        [        S5      * [        S5      U R                   S9$ [        U[        [        45      (       aJ  US:X  a  [        [        S5      * [        S5      SS9$ [        U R
                  U-  U R                  U-  5      $ [        U[        5      (       Gas  UR                   SL d  U R                   SL a  [        [        S5      * [        S5      SS9$ UR                   b  U R                   c  [        [        S5      * [        S5      S S9$ SU;   a  [        [        S5      * [        S5      S S9$ U nUR                  S:  a  U* nU* n/ nUR                  UR
                  UR
                  -  5        UR                  UR                  UR
                  -  5        UR                  UR
                  UR                  -  5        UR                  UR                  UR                  -  5        [        U5      n[        U5      n[        XE5      $ [        $ )NrU   r   r   F)r   r	   r   r   r.   r   r   rV   rX   rW   r/   )r   r1   ÚthisrY   r   r   s         r   r`   Ú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�Ü Ó+Ð+ä!Ð!r   c                 óV  • SSK JnJn  U R                  (       d  U $ [	        U[
        5      (       a  U" X" U 5      -  5      $ [	        U[        [        45      (       aI  US:  a  SU R                  [        U5      5      -  $ [        U5      (       a  [        X5      $ [        X5      $ [        $ )Nr   )ÚexpÚlogr   )Úlib_intervalrg   rh   r   r   r	   r   r.   Ú__pow__Úabsr   Ú_pow_intÚ
_pow_floatr/   )r   r1   rg   rh   s       r   rj   Úinterval.__pow__B  s‰   € ç*Ø�}�}ØˆKÜ�eœX×&Ñ&Ù�u˜s 4›yÑ(Ó)Ð)Ü˜¤¤s˜|×,Ñ,Ø�q‹yØ˜4Ÿ<™<¬¨E«
Ó3Ñ3Ð3ä˜e×$Ñ$Ü# DÓ0Ð0ä% dÓ2Ð2ä!Ð!r   c                 óN  • [        U[        [        45      (       aß  U R                  (       d  U $ US:  a¢  U R                  S:”  a  [        [        S5      * [        S5      SS9$ [        U R                  5      nUR                  5       u  p4US-  S:X  a  [        [        S5      * [        S5      SS9$ [        U5      U R                  -  * nUn[        XV5      $ [        XR                  -  XR                  -  5      $ [        U[
        5      (       a  UR                  U 5      $ [        $ )Nr   rU   Fr   r   )r   r   r.   r   r#   r	   r   r   Úas_numer_denomrk   r   rj   r/   )r   r1   Úpower_rationalÚnumÚdenomr   r   s          r   Ú__rpow__Ú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˜Ø#˜Ü'¨Ó3Ð3ä §z¡zÑ 1°5¿(¹(±?ÓCÐCÜ˜œx×(Ñ(Ø—=‘= Ó&Ð&ä!Ð!r   c                 óZ   • [        U R                  U R                  U R                  45      $ r"   )Úhashr   r   r   r   s    r   Ú__hash__Úinterval.__hash__m  s    € Ü�T—]‘] D§J¡J°·±Ð9Ó:Ð:r   )r   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Úpropertyr   r#   r&   r)   r3   r7   r;   r>   rA   rD   rI   Ú__radd__rL   rO   rR   rZ   Ú__rmul__r]   ra   r`   rj   rt   rx   Ú__static_attributes__© r   r   r	   r	   *   s©   † ñð" (,õ ,ð( ñ-ó ð-ð ñ%ó ð%ò;ò3ò"ò&"ò"ò("ò&"ò&	&ò"ð" €Hò"ò"òLò"ð( €HòGò"ò'"òR"ò$"õ2;r   r	   c                 ó  • [        U5      nUR                  5       u  p4US-  S:X  aZ  [        U R                  5      U-  n[        U R                  5      U-  nUS:  a  [        S[        XV5      5      nU$ [        XV5      nU$ US-  S:X  a|  U R                  S:  a  [        [        S5      * [        S5      SS9$ U R                  S:  a  [        SU R                  U-  SS9$ [        U R                  U-  U R                  U-  5      $ U R                  S:  a  [        U R                  5      U-  * nOU R                  U-  nU R                  S:  a  [        U R                  5      U-  * nOU R                  U-  n[        XVU R                  S9$ )z1Evaluates an interval raised to a floating point.r   r   rU   Fr   N)	r   rp   rk   r   r   r	   rX   r   r   )ÚinterÚpowerrq   rr   rs   r   r   Úrets           r   rm   rm   q  sZ  € ä˜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ä˜¨U¯^©^Ñ<Ð<r   c                 ój  • [        U5      nUS-  (       a&  [        U R                  U-  U R                  U-  5      $ U R                  S:  aC  U R                  S:”  a3  Sn[	        U R                  U-  U R                  U-  5      n[        X#5      $ [        U R                  U-  U R                  U-  5      $ )z0Evaluates an interval raised to an integer powerr   r   )r.   r	   r   r   rX   )r…   r†   r   r   s       r   rl   rl   ’  s“   € ä�‹J€EØˆq‡yÜ˜Ÿ™ UÑ*¨E¯I©I°uÑ,<Ó=Ð=à�;‰;˜‹?˜uŸy™y¨1›}ØˆEÜ�e—k‘k 5Ñ(¨%¯)©)°UÑ*:Ó;ˆCÜ˜EÓ'Ð'ä˜EŸK™K¨Ñ.°·	±	¸5Ñ0@ÓAÐAr   N)r~   Úsympy.core.numbersr   Úsympy.core.logicr   Úsympy.simplify.simplifyr   Úinterval_membershipr   r	   rm   rl   rƒ   r   r   Ú<module>r�      s2   ðñõD *Ý &Ý -å 3÷D;ñ D;òN
=óBBr   