
    \h9                         S r SSKJr  SSKJr  SSKJr  S rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rg)zBThe module contains implemented functions for interval arithmetic.    reduce)interval)import_modulec           	         [        U [        [        45      (       a  [        [	        U 5      5      $ [        U [        5      (       a  U R
                  S:  aU  U R                  S:  aE  [        S[        [	        U R
                  5      [	        U R                  5      5      U R                  S9$ [        [	        U R
                  5      [	        U R                  5      5      $ [        e)Nr   is_valid)

isinstanceintfloatr   absstartendmaxr	   NotImplementedErrorxs    `/var/www/auris/envauris/lib/python3.13/site-packages/sympy/plotting/intervalmath/lib_interval.pyAbsr      s    !c5\""A	Ax	 	 77Q;15519As3qww<QUU<qzzRRCL#aee*55!!    c                 f   [        S5      n[        U [        [        45      (       a*  [	        UR                  U 5      UR                  U 5      5      $ [        U [        5      (       aG  [	        UR                  U R                  5      UR                  U R                  5      U R                  S9$ [        e)z(evaluates the exponential of an intervalnumpyr   )
r   r
   r   r   r   expr   r   r	   r   r   nps     r   r   r      sx    	w	B!c5\""q	266!9--	Ax	 	 qwwLL!!r   c                    [        S5      n[        U [        [        45      (       a@  U S::  a   [	        UR
                  * UR
                  SS9$ [	        UR                  U 5      5      $ [        U [        5      (       a  U R                  (       d*  [	        UR
                  * UR
                  U R                  S9$ U R                  S::  a   [	        UR
                  * UR
                  SS9$ U R                  S::  a   [	        UR
                  * UR
                  SS9$ [	        UR                  U R                  5      UR                  U R                  5      5      $ [        e)z.evaluates the natural logarithm of an intervalr   r   Fr   N)r   r
   r   r   r   inflogr	   r   r   r   r   s     r   r   r   "   s    	w	B!c5\""6RVVGRVVe<<BFF1I&&	Ax	 	 zzRVVGRVVajjAAUUaZRVVGRVVe<<WW\RVVGRVVd;;qww77!!r   c                    [        S5      n[        U [        [        45      (       a@  U S::  a   [	        UR
                  * UR
                  SS9$ [	        UR                  U 5      5      $ [        U [        5      (       a  U R                  (       d*  [	        UR
                  * UR
                  U R                  S9$ U R                  S::  a   [	        UR
                  * UR
                  SS9$ U R                  S::  a   [	        UR
                  * UR
                  SS9$ [	        UR                  U R                  5      UR                  U R                  5      5      $ [        e)z5evaluates the logarithm to the base 10 of an intervalr   r   Fr   N)r   r
   r   r   r   r   log10r	   r   r   r   r   s     r   r    r    8   s    	w	B!c5\""6RVVGRVVe<<BHHQK((	Ax	 	 zzRVVGRVVajjAAUUaZRVVGRVVe<<WW\RVVGRVVd;;)288AEE?;;!!r   c                 L   [        S5      n[        U [        [        45      (       a  [	        UR                  U 5      5      $ [        U [        5      (       aJ  UR                  U R                  5      nUR                  U R                  5      n[	        X#U R                  S9$ [        e)z(evaluates the tan inverse of an intervalr   r   )
r   r
   r   r   r   arctanr   r   r	   r   r   r   r   r   s       r   atanr$   M   sx    	w	B!c5\""		!%%	Ax	 	 		!''"iiQZZ88!!r   c                 d   [        S5      n[        U [        [        45      (       a  [	        UR                  U 5      5      $ [        U [        5      (       GaU  U R                  (       d  [	        SSU R                  S9$ [        U R                  UR                  S-  5      u  p#[        U R                  UR                  S-  5      u  pC[        UR                  U R                  5      UR                  U R                  5      5      n[        UR                  U R                  5      UR                  U R                  5      5      nXB-
  S:  a  [	        SSU R                  S9$ X$:X  a  [	        XVU R                  S9$ US-
  S-  US-
  S-  :w  a  SnUS-
  S-  US-
  S-  :w  a  Sn[	        XV5      $ [        e)z!evaluates the sine of an intervalr      r          @      )r   r
   r   r   r   sinr	   divmodr   pir   minr   r   r   r   na__nbr   r   s          r   r+   r+   [   sP   	w	B!c5\""q	""	Ax	 	 zzBAJJ77-ruus{+BFF177ORVVAEE]3"&&/266!%%=17Q;BAJJ77XE<<Q1}aA-Q1}aA-E''!!r   c                    [        S5      n[        U [        [        45      (       a  [	        UR                  U 5      5      $ [        U [        5      (       Ga  UR                  U R                  5      (       a   UR                  U R                  5      (       d  [	        SSU R                  S9$ [        U R                  UR                  S-  5      u  p#[        U R                  UR                  S-  5      u  pC[        UR                  U R                  5      UR                  U R                  5      5      n[        UR                  U R                  5      UR                  U R                  5      5      nXB-
  S:  a  [	        SSU R                  S9$ X$:X  a  [	        XVU R                  S9$ US-  US-  :w  a  SnUS-
  S-  US-
  S-  :w  a  Sn[	        XVU R                  S9$ [        e)z Evaluates the cos of an intervalr   r&   r'   r   r(   r)      )r   r
   r   r   r   r+   isfiniter   r   r	   r,   r-   r.   cosr   r   r/   s          r   r6   r6   x   sl   	w	B!c5\""q	""	Ax	 	 AGG$$QUU););BAJJ77-ruus{+BFF177ORVVAEE]3"&&/266!%%=17Q;BAJJ77XE<<qyRAI%Q1}aA-E<<!!r   c                 0    [        U 5      [        U 5      -  $ )z Evaluates the tan of an interval)r+   r6   r   s    r   tanr8      s    q6CF?r   c                 R   [        S5      n[        U [        [        45      (       a@  U S:  a  [	        UR                  U 5      5      $ [	        UR                  * UR                  SS9$ [        U [        5      (       a  U R                  S:  a   [	        UR                  * UR                  SS9$ U R                  S:  a   [	        UR                  * UR                  SS9$ [	        UR                  U R                  5      UR                  U R                  5      U R                  S9$ [        e)z(Evaluates the square root of an intervalr   r   Fr   N)r   r
   r   r   r   sqrtr   r   r   r	   r   r   s     r   r:   r:      s    	w	B!c5\""q5BGGAJ''RVVGRVVe<<	Ax	 	 5519RVVGRVVe<<WWq[RVVGRVVd;;BGGAGG,bggaeenZZ) ) "!r   c                     [        S5      n[        S U  5       5      (       d  [        $ U  Vs/ s H3  n[        U[        [
        45      (       d  UR                  (       d  M1  UPM5     nn[        U5      S:X  aW  [        S U  5       5      (       a   [        UR                  * UR                  SS9$ [        UR                  * UR                  SS9$ U Vs/ s H,  n[        U[        [
        45      (       a  UOUR                  PM.     nnU Vs/ s H,  n[        U[        [
        45      (       a  UOUR                  PM.     nn[        [        U5      [        U5      5      $ s  snf s  snf s  snf )z,Evaluates the minimum of a list of intervalsr   c              3   X   #    U  H   n[        U[        [        [        45      v   M"     g 7fNr
   r   r   r   .0args     r   	<genexpr>imin.<locals>.<genexpr>   !     G$3z#UH566$   (*r   c              3   <   #    U  H  oR                   S L v   M     g7fFNr   r@   as     r   rB   rC           51::&   Fr   N)r   allr   r
   r   r   r	   lenr   r   r   r   r.   argsr   rI   new_argsstart_array	end_arrays         r   iminrS      s=   	w	BG$GGG""# #t!z!c5\'B'Bzz t #x=A5555%@@$?? (* (1 'q3,77qQWWD ( 	 * '(& %Qe55Q155@& 	 (K(#i.99#*(   0E!E3E$3E)c                     [        S5      n[        S U  5       5      (       d  [        $ U  Vs/ s H3  n[        U[        [
        45      (       d  UR                  (       d  M1  UPM5     nn[        U5      S:X  aW  [        S U  5       5      (       a   [        UR                  * UR                  SS9$ [        UR                  * UR                  SS9$ U Vs/ s H,  n[        U[        [
        45      (       a  UOUR                  PM.     nnU Vs/ s H,  n[        U[        [
        45      (       a  UOUR                  PM.     nn[        [        U5      [        U5      5      $ s  snf s  snf s  snf )z,Evaluates the maximum of a list of intervalsr   c              3   X   #    U  H   n[        U[        [        [        45      v   M"     g 7fr=   r>   r?   s     r   rB   imax.<locals>.<genexpr>   rD   rE   r   c              3   <   #    U  H  oR                   S L v   M     g7frG   r   rH   s     r   rB   rW      rJ   rK   Fr   N)r   rL   r   r
   r   r   r	   rM   r   r   r   r   r   rN   s         r   imaxrY      s?   	w	BG$GGG""# #t!z!c5\'B'Bzz t #x=A5555%@@$?? (* (1 'q3,77qQWWD ( 	 * '(& %Qe55Q155@& 	 ( K(#i.99#*(rT   c                 f   [        S5      n[        U [        [        45      (       a*  [	        UR                  U 5      UR                  U 5      5      $ [        U [        5      (       aG  [	        UR                  U R                  5      UR                  U R                  5      U R                  S9$ [        e)z,Evaluates the hyperbolic sine of an intervalr   r   )
r   r
   r   r   r   sinhr   r   r	   r   r   s     r   r[   r[      y    	w	B!c5\""
BGGAJ//	Ax	 	 ("''!%%.1::NN!!r   c                 P   [        S5      n[        U [        [        45      (       a*  [	        UR                  U 5      UR                  U 5      5      $ [        U [        5      (       a  U R                  S:  ab  U R                  S:  aR  [        UR                  U R                  5      UR                  U R                  5      5      n[	        SX R                  S9$ UR                  U R                  5      nUR                  U R                  5      n[	        X2U R                  S9$ [        e)z+Evaluates the hyperbolic cos of an intervalr   r   r'   r   )r   r
   r   r   r   coshr   r   r   r	   r   )r   r   r   r   s       r   r^   r^      s    	w	B!c5\""
BGGAJ//	Ax	 	 77Q;15519bggagg&7CAsZZ88 GGAGG$E''!%%.CE<<!!r   c                 f   [        S5      n[        U [        [        45      (       a*  [	        UR                  U 5      UR                  U 5      5      $ [        U [        5      (       aG  [	        UR                  U R                  5      UR                  U R                  5      U R                  S9$ [        e)z+Evaluates the hyperbolic tan of an intervalr   r   )
r   r
   r   r   r   tanhr   r   r	   r   r   s     r   r`   r`      r\   r   c                    [        S5      n[        U [        [        45      (       aY  [	        U 5      S:  a   [        UR                  * UR                  SS9$ [        UR                  U 5      UR                  U 5      5      $ [        U [
        5      (       a  U R                  SL d   U R                  S:  d  U R                  S:  a   [        UR                  * UR                  SS9$ U R                  S:  d  U R                  S:  a   [        UR                  * UR                  SS9$ UR                  U R                  5      nUR                  U R                  5      n[        X#U R                  S9$ g)z)Evaluates the inverse sine of an intervalr   r'   Fr   r&   N)r   r
   r   r   r   r   r   arcsinr	   r   r   r#   s       r   asinrc     s   	w	B!c5\""q6A:RVVGRVVe<<BIIaL"))A,77	Ax	 	 ::!''A+RVVGRVVe<<WWr\QUUQYRVVGRVVd;;IIagg&E))AEE"CE<< 
!r   c                    [        S5      n[        U [        [        45      (       aY  [	        U 5      S:  a   [        UR                  * UR                  SS9$ [        UR                  U 5      UR                  U 5      5      $ [        U [
        5      (       a  U R                  SL d   U R                  S:  d  U R                  S:  a   [        UR                  * UR                  SS9$ U R                  S:  d  U R                  S:  a   [        UR                  * UR                  SS9$ UR                  U R                  5      nUR                  U R                  5      n[        X#U R                  S9$ g)z(Evaluates the inverse cos of an intervalr   r'   Fr   r&   N)r   r
   r   r   r   r   r   arccosr	   r   r   r#   s       r   acosrf     s   	w	B!c5\""q6A:RVVGRVVe<<BIIaL"))A,77	Ax	 	 ::!''A+RVVGRVVe<<WWr\QUUQYRVVGRVVd;;IIagg&E))AEE"CE<< 
!r   c                    [        S5      n[        U [        [        45      (       a  [	        UR                  U 5      5      $ [        U [        5      (       a  U R                  SL a   [	        UR                  * UR                  SS9$ UR                  U R                  5      nUR                  U R                  5      nX#:X  a  [	        X#U R                  S9$ [	        X#SS9$ [        $ )z$Evaluates the ceiling of an intervalr   Fr   N)r   r
   r   r   r   ceilr	   r   r   r   r   r#   s       r   rh   rh   4  s    	w	B!c5\""
##	Ax	 	 ::RVVGRVVe<<GGAGG$E''!%%.C|QZZ@@  T::""r   c                    [        S5      n[        U [        [        45      (       a  [	        UR                  U 5      5      $ [        U [        5      (       a  U R                  SL a   [	        UR                  * UR                  SS9$ UR                  U R                  5      nUR                  U R                  5      nX#:X  a  [	        X#U R                  S9$ [	        X#SS9$ [        $ )z"Evaluates the floor of an intervalr   Fr   N)r   r
   r   r   r   floorr	   r   r   r   r   r#   s       r   rj   rj   I  s    	w	B!c5\""$$	Ax	 	 ::RVVGRVVe<<HHQWW%E((155/C|QZZ@@  T::""r   c                 X   [        S5      n[        U [        [        45      (       a@  U S:  a   [	        UR
                  * UR
                  SS9$ [	        UR                  U 5      5      $ [        U [        5      (       a  U R                  S:  a   [	        UR
                  * UR
                  SS9$ U R                  S:  a   [	        UR
                  * UR
                  SS9$ UR                  U R                  5      nUR                  U R                  5      n[	        X#U R                  S9$ [        $ )z6Evaluates the inverse hyperbolic cosine of an intervalr   r'   Fr   N)r   r
   r   r   r   r   arccoshr   r   r	   r   r#   s       r   acoshrm   ^  s    	w	B!c5\""q5RVVGRVVe<<BJJqM**	Ax	 	 5519RVVGRVVe<<WWq[RVVGRVVd;;JJqww'E**QUU#CE<<""r   c                 L   [        S5      n[        U [        [        45      (       a  [	        UR                  U 5      5      $ [        U [        5      (       aJ  UR                  U R                  5      nUR                  U R                  5      n[	        X#U R                  S9$ [        $ )z4Evaluates the inverse hyperbolic sine of an intervalr   r   )
r   r
   r   r   r   arcsinhr   r   r	   r   r#   s       r   asinhrp   w  sx    	w	B!c5\""

1&&	Ax	 	 

177#jjQZZ88""r   c                    [        S5      n[        U [        [        45      (       aI  [	        U 5      S:  a   [        UR                  * UR                  SS9$ [        UR                  U 5      5      $ [        U [
        5      (       a  U R                  SL d   U R                  S:  d  U R                  S::  a   [        UR                  * UR                  SS9$ U R                  S::  d  U R                  S:  a   [        UR                  * UR                  SS9$ UR                  U R                  5      nUR                  U R                  5      n[        X#U R                  S9$ [        $ )z7Evaluates the inverse hyperbolic tangent of an intervalr   r'   Fr   r&   N)r   r
   r   r   r   r   r   arctanhr	   r   r   r   r#   s       r   atanhrs     s   	w	B!c5\""q6Q;RVVGRVVe<<BJJqM**	Ax	 	 ::!''Q,!%%2+RVVGRVVe<<WW]aeeqjRVVGRVVd;;JJqww'E**QUU#CE<<""r   c                      S n[        X5      $ )zUDefines the three valued ``And`` behaviour for a 2-tuple of
three valued logic valuesc                     U S   SL d  US   SL a  SnOU S   b  US   c  S nOSnU S   SL d  US   SL a  SnX#4$ U S   b  US   c  S nX#4$ SnX#4$ )Nr   FTr'    cmp_intervalacmp_intervalbfirstseconds       r   
reduce_andAnd.<locals>.reduce_and  s    u$a(8E(AE1%q)9)AEEu$a(8E(AF
 	 1%q)9)AF  Fr   r   )rO   r|   s     r   Andr~     s     *##r   c                      S n[        X5      $ )zTDefines the three valued ``Or`` behaviour for a 2-tuple of
three valued logic valuesc                     U S   SL d  US   SL a  SnOU S   b  US   c  S nOSnU S   SL d  US   SL a  SnX#4$ U S   b  US   c  S nX#4$ SnX#4$ )Nr   TFr'   rv   rw   s       r   	reduce_orOr.<locals>.reduce_or  s    t#}Q'74'?E1%q)9)AEEt#}Q'74'?F
 	 1%q)9)AF  Fr   r   )rO   r   s     r   Orr     s     )""r   N)__doc__	functoolsr   sympy.plotting.intervalmathr   sympy.externalr   r   r   r   r    r$   r+   r6   r8   r:   rS   rY   r[   r^   r`   rc   rf   rh   rj   rm   rp   rs   r~   r   rv   r   r   <module>r      s    I  0 (	""","*
"":"<",:*:.""("=,=,#*#*#2
##4$(#r   