
    [h;C                        S SK r SSKJr  SSKJr  SSKJrJrJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J)r)J+r+J,r,J-r-J.r.J/r/  SSK0J1r1  \\4r2SSK3J4r4  \5Rl                  r7S r8 " S	 S
\55      r9 " S S\55      r:S r;\;" \\%5      u  \9l<        \9l=        \:l<        \:l=        \;" \\&5      u  \9l>        \9l?        \:l>        \:l?        \;" \\'5      u  \9l@        \9lA        \:l@        \:lA        \;" \\(5      u  \9lB        \9lC        \:lB        \:lC        \;" \!\)5      u  \9lD        \9lE        \:lD        \:lE        \9R                  \9lF        \9R                  \9lG        \:R                  \:lF        \:R                  \:lG         " S S\95      rH " S S\45      rI S SKJrJ\JR                  R                  \:5        \JR                  R                  \95        g! \N a     gf = f)    N   )libmp)
basestring),	int_typesMPZ_ONEprec_to_dpsdps_to_precrepr_dpsround_floorround_ceilingfzerofinffninffnanmpf_lempf_negfrom_int
from_floatfrom_strfrom_rationalmpi_mid	mpi_deltampi_strmpi_absmpi_posmpi_negmpi_addmpi_submpi_mulmpi_divmpi_pow_intmpi_powmpi_from_strmpci_posmpci_negmpci_addmpci_submpci_mulmpci_divmpci_powmpci_absr*   mpci_expmpci_logComplexResultmpf_hashmpc_hash)_matrix)StandardBaseContextc                    [        U S5      (       a  U R                  $ [        U [        5      (       a  [	        XU5      $ [        U [
        5      (       a  [        XU5      $ [        U [        5      (       a  [        XU5      $ [        e)N_mpf_)
hasattrr4   
isinstancer   r   floatr   r   r   NotImplementedError)xprecroundings      E/var/www/auris/envauris/lib/python3.13/site-packages/mpmath/ctx_iv.pyconvert_mpf_r=      sh    q'177N!Y((C!C!UJq$AA!Z  !8)D"D
    c                   $   \ rS rSrSrS"S jrS rS rS rS r	S r
\S	 5       r\S
 5       rS r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       rS r\r\r\r\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#S  jr!S!r"g)$ivmpf&   z@
Interval arithmetic class. Precision is controlled by iv.prec.
c                 8    U R                   R                  U5      $ N)ctxconvert)clsr9   s     r<   __new__ivmpf.__new__+   s    wwq!!r>   c                 P    U R                   u  p4X4:X  a  U" U" U5      5      $ [        erC   )_mpi_
ValueError)selfrF   	f_convertabs        r<   cast
ivmpf.cast.   s'    zz6y|$$r>   c                 J    U R                  [        [        R                  5      $ rC   )rP   intr   to_intrL   s    r<   __int__ivmpf.__int__4   s    yyell++r>   c                 J    U R                  [        [        R                  5      $ rC   )rP   r7   r   to_floatrU   s    r<   	__float__ivmpf.__float__7   s    yy//r>   c                 J    U R                  [        [        R                  5      $ rC   )rP   complexr   rY   rU   s    r<   __complex__ivmpf.__complex__:   s    yy%..11r>   c                 h    U R                   u  pX:X  a  [        U5      $ [        U R                   5      $ rC   )rJ   r/   hashrL   rN   rO   s      r<   __hash__ivmpf.__hash__=   s+    zz6A;

##r>   c                     U $ rC    rU   s    r<   real
ivmpf.realD   s    Kr>   c                 .    U R                   R                  $ rC   )rD   zerorU   s    r<   imag
ivmpf.imagG   s    88==(r>   c                     U $ rC   rf   rU   s    r<   	conjugateivmpf.conjugateJ   s    r>   c                 V    U R                   u  pU R                  R                  X45      $ rC   rJ   rD   make_mpfrb   s      r<   rN   ivmpf.aL   $    zzxx  !((r>   c                 V    U R                   u  pU R                  R                  X"45      $ rC   rq   rb   s      r<   rO   ivmpf.bQ   rt   r>   c                 ~    U R                   n[        U R                  UR                  5      nUR	                  X"45      $ rC   )rD   r   rJ   r:   rr   rL   rD   vs      r<   mid	ivmpf.midV   s0    hhDJJ)||QF##r>   c                 ~    U R                   n[        U R                  UR                  5      nUR	                  X"45      $ rC   )rD   r   rJ   r:   rr   rx   s      r<   deltaivmpf.delta\   s0    hhdjj#((+||QE""r>   c                 &    U R                   [        4$ rC   )rJ   mpi_zerorU   s    r<   _mpci_ivmpf._mpci_b   s    zz8##r>   c                      [        S5      e)Nz-no ordering relation is defined for intervals	TypeError)argss    r<   _compareivmpf._comparef   s    GHHr>   c                     U R                   R                  U5      nU R                  UR                  :*  =(       a    UR                  U R                  :*  $ rC   )rD   mpfrN   rO   )rL   ts     r<   __contains__ivmpf.__contains__n   s6    HHLLO!##2ACC466M2r>   c                 V    [        U R                  U R                  R                  5      $ rC   )r   rJ   rD   r:   rU   s    r<   __str__ivmpf.__str__r   s    tzz488==11r>   c                    U R                   R                  (       a  [        U 5      $ U R                  u  p[	        U R                   R
                  5      n[        R                  " X5      n[        R                  " X#5      nSU< SU< S3$ )Nzmpi(, ))rD   prettystrrJ   r
   r:   r   to_str)rL   rN   rO   ns       r<   __repr__ivmpf.__repr__u   s[    88??t9zzTXX]]#LLLL !1%%r>   c                     [        US5      (       d   U R                  R                  U5      nU" U R                  UR                  5      $ !   [        s $ = f)NrJ   )r5   rD   rE   NotImplementedrJ   )sr   cmpfuns      r<   r   r   ~   sJ    q'""&EEMM!$ aggqww''&%%s   A Ac                 B    U R                  U[        R                  5      $ rC   )r   r   mpi_eqr   r   s     r<   __eq__ivmpf.__eq__       QZZ5<<88r>   c                 B    U R                  U[        R                  5      $ rC   )r   r   mpi_ner   s     r<   __ne__ivmpf.__ne__   r   r>   c                 B    U R                  U[        R                  5      $ rC   )r   r   mpi_ltr   s     r<   __lt__ivmpf.__lt__   r   r>   c                 B    U R                  U[        R                  5      $ rC   )r   r   mpi_ler   s     r<   __le__ivmpf.__le__   r   r>   c                 B    U R                  U[        R                  5      $ rC   )r   r   mpi_gtr   s     r<   __gt__ivmpf.__gt__   r   r>   c                 B    U R                  U[        R                  5      $ rC   )r   r   mpi_ger   s     r<   __ge__ivmpf.__ge__   r   r>   c                     U R                   R                  [        U R                  U R                   R                  5      5      $ rC   )rD   rr   r   rJ   r:   rU   s    r<   __abs__ivmpf.__abs__   *    xx  TXX]]!CDDr>   c                     U R                   R                  [        U R                  U R                   R                  5      5      $ rC   )rD   rr   r   rJ   r:   rU   s    r<   __pos__ivmpf.__pos__   r   r>   c                     U R                   R                  [        U R                  U R                   R                  5      5      $ rC   )rD   rr   r   rJ   r:   rU   s    r<   __neg__ivmpf.__neg__   r   r>   Nc                 :    U R                   R                  XX#5      $ rC   rD   almosteqr   r   rel_epsabs_epss       r<   aeivmpf.ae       uu~~aG55r>   rf   )r   NN)#__name__
__module____qualname____firstlineno____doc__rG   rP   rV   rZ   r^   rc   propertyrg   rk   rn   rN   rO   rz   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__rf   r>   r<   r@   r@   &   s   ",02$  ( ($) ) ) ) $ $
 # #
 $ $I FFFF32&( 988888EEE6r>   r@   c                       \ rS rSrSS jrS rS rS r\S 5       r	\S 5       r
\S 5       r\S	 5       r\S
 5       r\S 5       rS rS rS rSS jrS rS rS r\=r=rrS rS rS rSS jrSrg)ivmpc   c                     U R                   R                  U5      nU R                   R                  U5      n[        U 5      nUR                  UR                  4Ul        U$ rC   )rD   rE   newrJ   r   )rF   reimys       r<   rG   ivmpc.__new__   sH    WW__R WW__R H88RXX%r>   c                 ~    U R                   u  u  pu  p4X:X  a  X4:X  a  [        X45      $ [        U R                   5      $ rC   )r   r0   ra   rL   rN   rO   cds        r<   rc   ivmpc.__hash__   s8    6afQF##$$r>   c                     U R                   R                  (       a  [        U 5      $ S[        U R                  5      < S[        U R
                  5      < S3$ )Nziv.mpc(r   r   )rD   r   r   reprrg   rk   r   s    r<   r   ivmpc.__repr__   s6    55<<q6M #'<aff>>r>   c                 d    S[        U R                  5      < S[        U R                  5      < S3$ )N( + *j))r   rg   rk   r   s    r<   r   ivmpc.__str__   s     #AFFS[99r>   c                 `    U R                   u  u  pu  p4U R                  R                  X45      $ rC   r   rD   rr   r   s        r<   rN   ivmpc.a   *    xx  !((r>   c                 `    U R                   u  u  pu  p4U R                  R                  X"45      $ rC   r   r   s        r<   rO   ivmpc.b   r   r>   c                 `    U R                   u  u  pu  p4U R                  R                  X345      $ rC   r   r   s        r<   r   ivmpc.c   r   r>   c                 `    U R                   u  u  pu  p4U R                  R                  XD45      $ rC   r   r   s        r<   r   ivmpc.d   r   r>   c                 R    U R                   R                  U R                  S   5      $ Nr   rD   rr   r   r   s    r<   rg   
ivmpc.real       uu~~ahhqk**r>   c                 R    U R                   R                  U R                  S   5      $ Nr   r   r   s    r<   rk   
ivmpc.imag   r   r>   c                 j    U R                   u  pU R                  R                  U[        U5      45      $ rC   )r   rD   make_mpcr   )r   rN   rO   s      r<   rn   ivmpc.conjugate   s(    xxuu~~q'!*o..r>   c                    U R                   R                  U5      nU R                  UR                  s=:*  =(       a    U R                  :*  Os  =(       d    U R                  UR                  s=:*  =(       a    U R                  :*  Os  =(       dm    UR                  U R                  s=:*  =(       a    UR                  :*  Os  =(       d3    UR                  U R                  s=:*  =(       a    UR                  :*  Os  nU R                  UR                  s=:*  =(       a    U R
                  :*  Os  =(       d    U R                  UR
                  s=:*  =(       a    U R
                  :*  Os  =(       dm    UR                  U R                  s=:*  =(       a    UR
                  :*  Os  =(       d3    UR                  U R
                  s=:*  =(       a    UR
                  :*  Os  nU=(       a    U$ rC   )rD   rE   rN   rO   r   r   )r   r   real_overlapimag_overlaps       r<   overlapivmpc.overlap   s'   EEMM!qss))acc)oqssacc/@/@QSS/@oaccQSSFWFWTUTWTWFWo]^]`]`dedgdg]n]nklknkn]nqss))acc)oqssacc/@/@QSS/@oaccQSSFWFWTUTWTWFWo]^]`]`dedgdg]n]nklknkn]n,,r>   c                     U R                   R                  U5      nUR                  U R                  ;   =(       a    UR                  U R                  ;   $ rC   )rD   rE   rg   rk   r   s     r<   r   ivmpc.__contains__   s9    EEMM!vv4AFFaff$44r>   c                 h   [        XR                  R                  5      (       d   U R                  R                  U5      n[        US5      (       a  UR                  [        4nO[        US5      (       a  UR                  nU(       a  U R                  W:g  $ U R                  W:H  $ !   [        s $ = fNrJ   r   )	r6   rD   _typesrE   r   r5   rJ   r   r   )r   r   netvals       r<   r   ivmpc._compare   s    !UU\\**&EEMM!$ 1g77H$DQ!!88D88t##xx4&%%s   B' 'B1c                 $    U R                  U5      $ rC   r   r   s     r<   r   ivmpc.__eq__   s    QZZ]*r>   c                 &    U R                  US5      $ )NTr  r   s     r<   r   ivmpc.__ne__   s    QZZ400r>   c                     [        S5      e)Nz#complex intervals cannot be orderedr   r   s     r<   r   ivmpc.__lt__   s    I&KLLr>   c                     U R                   R                  [        U R                  U R                   R                  5      5      $ rC   )rD   r   r%   r   r:   r   s    r<   r   ivmpc.__neg__   '    155>>(188QUUZZ*HIIr>   c                     U R                   R                  [        U R                  U R                   R                  5      5      $ rC   )rD   r   r$   r   r:   r   s    r<   r   ivmpc.__pos__   r  r>   c                     U R                   R                  [        U R                  U R                   R                  5      5      $ rC   )rD   rr   r+   r   r:   r   s    r<   r   ivmpc.__abs__   r  r>   Nc                 :    U R                   R                  XX#5      $ rC   r   r   s       r<   r   ivmpc.ae   r   r>   rf   )r   r   )Fr   )r   r   r   r   rG   rc   r   r   r   rN   rO   r   r   rg   rk   rn   r  r   r   r   r   r   r   r   r   r   r   r   r   r   rf   r>   r<   r   r      s    %?
: ) ) ) ) ) ) ) ) + + + +/-5  +0L%%F%VfIII6r>   r   c                 `   ^ ^^^ U4S jmU U4S jmUU4S jnUU4S jnU4S jnU4S jnX#XE4$ )Nc                 H   > U R                  T" XU R                  5      5      $ rC   )r   r:   )rD   svalr
  	f_complexs      r<   	g_complex_binary_op.<locals>.g_complex   s    ||Id#((;<<r>   c                    >  U R                  T" XU R                  5      5      $ ! [         a    U[        4nU[        4nT" XU5      s $ f = frC   )rr   r:   r.   r   )rD   r  r
  f_realr   s      r<   g_real_binary_op.<locals>.g_real   sR    	.<<t388 <== 	.(#D(#DS--	.s   !% #A
Ac                 x  > [        U[        5      (       a  [        $ U R                  n[        XR                  5      (       d  UR                  U5      n[        US5      (       a  T" X R                  UR                  5      $ [        US5      (       a#  T" X R                  [        4UR                  5      $ [        $ r  )
r6   r1   r   rD   r  rE   r5   rJ   r   r   r   r   rD   r   r$  s      r<   lop_real_binary_op.<locals>.lop_real   s    a!!.#8ee!ZZ((ckk!n!1gvc77AGG'D D1h	#7JAHH(U!Ur>   c                 B  > U R                   n[        XR                  5      (       d  UR                  U5      n[	        US5      (       a  T" X!R
                  U R
                  5      $ [	        US5      (       a#  T" X!R                  U R
                  [        45      $ [        $ r  )	rD   r6   r  rE   r5   rJ   r   r   r   r'  s      r<   rop_real_binary_op.<locals>.rop_real  st    ee!ZZ((ckk!n!1gvc77AGG'D D1h	#xx!''8AT(U!Ur>   c                 D  > [        U[        5      (       a  [        $ U R                  n[        XR                  R                  5      (       d   U R                  R                  U5      nT" X R                  UR                  5      $ ! [        [        4 a	    [        s $ f = frC   )	r6   r1   r   rD   r  rE   rK   r   r   r   r   rD   r   s      r<   lop_complex_binary_op.<locals>.lop_complex  s{    a!!.#8ee!UU\\**&EEMM!$ hh11 	* &%%&s   B BBc                    > U R                   n[        XR                   R                  5      (       d  U R                   R                  U5      nT" X!R                  U R                  5      $ rC   )rD   r6   r  rE   r   r.  s      r<   rop_complex_binary_op.<locals>.rop_complex  sF    ee!UU\\**a Ahh11r>   rf   )r#  r  r(  r+  r/  r2  r   r$  s   ``    @@r<   
_binary_opr4     s.    =.22
 {77r>   c                   0    \ rS rSrS rS r\" \5      rSrg)ivmpf_constanti$  c                 (    [        U 5      nXl        U$ rC   )r   _f)rF   frL   s      r<   rG   ivmpf_constant.__new__%  s    3xr>   c                     U R                   R                  S   nU R                  U[        5      nU R                  U[        5      nX#4$ r   )rD   _precr8  r   r   )rL   r:   rN   rO   s       r<   	_get_mpi_ivmpf_constant._get_mpi_)  s;    xx~~a GGD+&GGD-(tr>   )r8  N)	r   r   r   r   rG   r=  r   rJ   r   rf   r>   r<   r6  r6  $  s    
 YEr>   r6  c                       \ rS rSrS rSS jrS rSS jr\S 5       r	S r
S	 r\" S
 \
5      r\" S \5      rS rS rS rS rSS 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 S jrSr g)!MPIntervalContexti0  c                 V   [        S[        40 5      U l        [        S[        40 5      U l        U R                  U R                  4U l        [        S[        40 5      U l        S/U l        U R                  S5        U R                  [        U R                  /=U R                  l        =U R                  l        U R                  l        U =U R                  l        =U R                  l        U R                  l        SU l        [        R                  " U 5        U R!                  5         g )Nr@   r   r6  5   F)typer@   r   r   mpcr  r6  	_constantr<  	_set_precr   _ctxdatarD   r   r2   __init___init_builtinsrD   s    r<   rH  MPIntervalContext.__init__2  s    w"-w"-ggsww'
-/@"ED	bHKQTVYV_V_G```!1CGG4D8;;;CGGK#''+
$$S)r>   Nc                 N    Uc  U R                  U5      $ U R                  X45      $ rC   )r   )rD   rN   rO   s      r<   _mpiMPIntervalContext._mpi?  s%    9771:wwu~r>   c                    U R                  S5      U l        U R                  S5      U l        U R                  S5      U l        U R                  * U l        U R                  S5      U l        U R                  SS5      U l        U R                  [        R                  [        R                  5      U l        U R                  [        R                  5      U l        U R                  [        R                  [        R                   5      U l        U R                  [        R$                  [        R&                  5      U l        U R                  [        R*                  [        R,                  5      U l        U R                  [        R0                  5      U l        U R                  [        R4                  [        R6                  5      U l        U R                  [        R:                  [        R<                  5      U l        U R                  [        R@                  [        RB                  5      U l"        U R                  [        RF                  [        RH                  5      U l%        U RJ                  U l&        U RO                  S 5      U l(        U RO                  [        RR                  5      U l*        U RO                  [        RV                  5      U l,        U RO                  [        RZ                  5      U l.        U RO                  [        R^                  5      U l0        U RO                  [        Rb                  5      U l2        U RO                  [        Rf                  5      U l4        U RO                  [        Rj                  5      U l6        U RO                  [        Rn                  5      U l8        U RO                  [        Rr                  5      U l:        U RO                  [        Rv                  5      U l<        g )Nr   r   infnanc                     S[         SU -
  S4$ Nr   r   )r   )r:   rnds     r<   <lambda>2MPIntervalContext._init_builtins.<locals>.<lambda>W  s    1gqvq2Ir>   )=r   onerj   rP  ninfrQ  rD  j_wrap_mpi_functionr   mpi_expr,   expmpi_sqrtsqrtmpi_logr-   lnmpi_cosmpci_coscosmpi_sinmpci_sinsinmpi_tantan	mpi_gamma
mpci_gammagammampi_loggammampci_loggammaloggamma
mpi_rgammampci_rgammargammampi_factorialmpci_factorial	factorialfacrE  epsmpf_pipimpf_eempf_ln2ln2mpf_ln10ln10mpf_phiphi	mpf_eulereulermpf_catalancatalanmpf_glaisherglaishermpf_khinchinkhinchinmpf_twinprime	twinprimerJ  s    r<   rI   MPIntervalContext._init_builtinsD  sb   ''!*771:''%.GG8''%.!((G))%..9''u~~F((G((G((7**5??E<L<LM	--e.@.@%BUBUV++E,<,<e>O>OP
..u/B/BEDXDXY---- IJu||,ekk*--.==0--.MM%//2	mmE$5$56}}U%7%78}}U%7%78e&9&9:r>   c                    ^ ^^ U UU4S jnU$ )Nc                 j  > U(       a   UR                  STR                  S   5      nOTR                  S   nTR                  U 5      n [        U S5      (       a"  TR	                  T" U R
                  U5      5      $ [        U S5      (       a"  TR                  T" U R                  U5      5      $ [        e)Nr:   r   rJ   r   )	getr<  rE   r5   rr   rJ   r   r   rK   )r9   kwargsr:   rD   r  r#  s      r<   g/MPIntervalContext._wrap_mpi_function.<locals>.gd  s    zz&#))A,7yy|AAq'""||F177D$9::q(##||Iahh$=>>r>   rf   )rD   r#  r  r  s   ``` r<   rZ  $MPIntervalContext._wrap_mpi_functionc  s    
	 r>   c                 >   ^ U(       a  U4S jnOTn[        XU5        g )Nc                    > U R                   nU Vs/ s H
  oC" U5      PM     nnU R                  n U =R                  S-  sl        T" U /UQ70 UD6nXPl        U7$ s  snf ! XPl        f = f)N
   )rE   r:   )rD   r   r  rE   rN   r:   retvalr9  s          r<   	f_wrapped2MPIntervalContext._wrap_specfun.<locals>.f_wrappedt  sm    ++,01Dq
D1xx$HHNHs4T4V4F#Hw 2  $Hs   A!A! !A))setattr)rF   namer9  wrapr  s     `  r<   _wrap_specfunMPIntervalContext._wrap_specfunq  s    	 I9%r>   c                 h    [        S[        U5      5      U R                  S'   [        U5      U l        g )Nr   r   )maxrS   r<  r   _dpsrD   r   s     r<   rF  MPIntervalContext._set_prec  s$    1c!f~		!q>r>   c                 h    [        U5      U R                  S'   [        S[        U5      5      U l        g rS  )r	   r<  r  rS   r  r  s     r<   _set_dpsMPIntervalContext._set_dps  s$    "1~		!q#a&>r>   c                      U R                   S   $ r   )r<  rJ  s    r<   rU  MPIntervalContext.<lambda>  s    		!r>   c                     U R                   $ rC   )r  rJ  s    r<   rU  r    s    sxxr>   c                 <    [        U R                  5      nXl        U$ rC   )r   r   rJ   rD   ry   rN   s      r<   rr   MPIntervalContext.make_mpf  s    Lr>   c                 <    [        U R                  5      nXl        U$ rC   )r   rD  r   r  s      r<   r   MPIntervalContext.make_mpc  s    Lr>   c                     Uu  p#[         R                  " X#U R                  [        5      n[         R                  " X#U R                  [        5      nU R                  XE45      $ rC   )r   r   r:   r   r   rr   )rD   pqpqrN   rO   s         r<   _mpqMPIntervalContext._mpq  sJ    chh<chh>||QF##r>   c                    [        XR                  U R                  45      (       a  U$ [        XR                  5      (       a  U7$ [        U[        5      (       d  [        US5      (       aG  U R                  UR                  5      nU R                  UR                  5      nU R                  X#5      $ [        U[        5      (       a&  [        XR                  5      nU R                  U5      $ [        US5      (       a  UR                  u  pVO{ Uu  pV[        US5      (       a  UR                  S   nO[!        XPR                  ["        5      n[        US5      (       a  UR                  S   nO[!        X`R                  [$        5      nU[&        :X  d
  U[&        :X  a  [(        n[*        n[-        XV5      (       d   S5       eU R                  XV45      $ ! [        [        4 a    U=pV Nf = f)N_mpc_rJ   r   r   z"endpoints must be properly ordered)r6   r   rD  rE  r]   r5   rE   rg   rk   r   r#   r:   rr   rJ   r   rK   r=   r   r   r   r   r   r   )rD   r9   r   r   ry   rN   rO   s          r<   rE   MPIntervalContext.convert  s   a''377+,,Ha''2Ia!!WQ%8%8QVV$BQVV$B772>!a$$Q)A<<?"1g77DAq q'""GGAJ HHk:q'""GGAJ HHm<9T	AAa||AAA|||QF## z* 	As   G G('G(c                 X   U R                  U5      n[        US5      (       a"  [        R                  " UR                  U40 UD6$ [        US5      (       aU  [        R                  " UR
                  S   U40 UD6n[        R                  " UR
                  S   U40 UD6nSU< SU< S3$ g )NrJ   r   r   r   r   r   r   )rE   r5   r   
mpi_to_strrJ   r   )rD   r9   r   r  r   r   s         r<   nstrMPIntervalContext.nstr  s    KKN1g##AGGQ9&991h!!!((1+q;F;B!!!((1+q;F;B$&++  r>   c                    U R                  U5      n[        XR                  5      (       aA  [        U R	                  UR
                  5      U R	                  UR                  5      5      S-   $ [        R                  " UR                  5      u  p#Uu  pEpgU(       a  Xg-   $ U[        :X  a  U R                  $ U[        :X  a  U R                  $ U R                  $ r   )rE   r6   rD  r  magrg   rk   r   r   rJ   r   rX  r   rQ  rP  rD   r9   rN   rO   signmanr\  bcs           r<   r  MPIntervalContext.mag  s    KKNa!!swwqvv81<<}}QWW%36M:88O977Nwwr>   c                     g)NFrf   rD   r9   s     r<   isnanMPIntervalContext.isnan  s    r>   c                     XR                   :H  $ rC   )rP  r  s     r<   isinfMPIntervalContext.isinf  s    GG|r>   c                     U R                  U5      nUR                  u  p#X#:X  a  Uu  pEpgU(       a  US:  $ U[        :H  $ g r   )rE   rJ   r   r  s           r<   isintMPIntervalContext.isint  sB    KKNww6!"Dsax:r>   c                     U R                  U5      R                  u  p4[        R                  " X25      n[        R                  " XB5      nU R	                  X445      $ rC   )rE   rJ   r   	mpf_shiftrr   )rD   r9   r   rN   rO   s        r<   ldexpMPIntervalContext.ldexp  sD    {{1~##OOA!OOA!||QE""r>   c                 J    [        U R                  U5      5      R                  $ rC   )absrE   rN   r  s     r<   absminMPIntervalContext.absmin      3;;q>"$$$r>   c                 J    [        U R                  U5      5      R                  $ rC   )r  rE   rO   r  s     r<   absmaxMPIntervalContext.absmax  r  r>   c                     U R                  U5      R                  nU R                  U5      R                  nU R                  [        R                  " XU R
                  5      5      $ rC   )rE   rJ   rr   r   	mpi_atan2r:   )rD   r   r9   s      r<   atan2MPIntervalContext.atan2  sF    KKN  KKN  ||EOOA9::r>   c                 j   [        U[        R                  5      (       a  US4$ [        U[        5      (       a)  Uu  p#U R	                  U5      U R	                  U5      -  S4$ U R                  U5      n[        XR                  5      (       a  US4$ [        XR                  5      (       a  US4$ [        e)NZRC)r6   r   r   tupler   rE   rD  rK   )rD   r9   r  r  s       r<   _convert_param MPIntervalContext._convert_param  s    a))c6MaDAGGAJ+S11KKNa!!c6Ma!!c6Mr>   c                 Z    [        XR                  5      =(       d    [        U[        5      $ rC   )r6   r   r   rD   zs     r<   _is_real_typeMPIntervalContext._is_real_type  s    !WW%AAy)AAr>   c                 ,    [        XR                  5      $ rC   )r6   rD  r  s     r<   _is_complex_type"MPIntervalContext._is_complex_type  s    !WW%%r>   c                 
   [        U5      n[        U5      n[        XU-   5      n	U R                  =pSn U H  oXM   U-   -  nM     U	 H  oXM   U-   -  nM     US-  oU-  oU-  oU-  n
US:X  a  U
$ X:  a  U R                  eMP  rS  )listrangerW  NoConvergence)rD   r  r  typescoeffsr  maxtermsr  numdenr   r   kis                 r<   hypsumMPIntervalContext.hypsum	  s    fAhAcl	!,!S	!,!SFAFAFAFAAv |''' r>   rf   rC   )   )ip  )!r   r   r   r   rH  rM  rI  rZ  classmethodr  rF  r  r   r:   dpsrr   r   r  rE   r  r  r  r  r  r  r  r  r  r  r  r  r  r   rf   r>   r<   r@  r@  0  s    
;> & & "" ,i8D
'
2C

$$B,#%%;
B&(r>   r@  )Ooperator r   libmp.backendr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   matrices.matricesr1   r   ctx_baser2   objectrG   r   r=   r@   r   r4  __add____radd____sub____rsub____mul____rmul____div____rdiv____pow____rpow____truediv____rtruediv__r6  r@  numbersComplexregisterRealImportErrorrf   r>   r<   <module>r     s     %            '5> )nno6F o6b[6F [6z%8N @J'S[?\ <u~u}en?I'S[?\ <u~u}en?I'S[?\ <u~u}en?I'S[?\ <u~u}en?I'S[?\ <u~u}enMM 5#5MM 5#5
 U 
 i(+ i(d	OOU#LL%  		s   *:G% %G.-G.