
    g;C                        d dl Z ddlmZ ddlmZ ddlmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m)Z)m+Z+m,Z,m-Z-m.Z.m/Z/ ddl0m1Z1 eefZ2ddl3m4Z4 e5j6        Z7d Z8 G d	 d
e5          Z9 G d de5          Z:d Z; e;ee%          \  e9_<        e9_=        e:_<        e:_=         e;ee&          \  e9_>        e9_?        e:_>        e:_?         e;ee'          \  e9_@        e9_A        e:_@        e:_A         e;ee(          \  e9_B        e9_C        e:_B        e:_C         e;e!e)          \  e9_D        e9_E        e:_D        e:_E        e9jB        e9_F        e9jC        e9_G        e:jB        e:_F        e:jC        e:_G         G d de9          ZH G d de4          ZI	 d dlJZJeJjK        L                    e:           eJjM        L                    e9           dS # eN$ r Y dS w xY w)    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                 "   t          | d          r| j        S t          | t                    rt	          | ||          S t          | t
                    rt          | ||          S t          | t                    rt          | ||          S t          )N_mpf_)
hasattrr4   
isinstancer   r   floatr   r   r   NotImplementedError)xprecroundings      I/var/www/html/ai-engine/env/lib/python3.11/site-packages/mpmath/ctx_iv.pyconvert_mpf_r=      s    q'*17N!YCD((C(C!C!UAJq$$A$AA!Z  D!T8)D)D"D
    c                   D   e Zd ZdZd!dZd Zd Zd Zd Zd Z	e
d	             Ze
d
             Zd Ze
d             Ze
d             Ze
d             Ze
d             Ze
d             Zd ZeZeZeZeZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd"d Z dS )#ivmpfzH
    Interval arithmetic class. Precision is controlled by iv.prec.
    r   c                 6    | j                             |          S N)ctxconvert)clsr9   s     r<   __new__zivmpf.__new__+   s    wq!!!r>   c                 X    | j         \  }}||k    r | ||                    S t          rB   )_mpi_
ValueError)selfrE   	f_convertabs        r<   castz
ivmpf.cast.   s4    z1663yy||$$$r>   c                 L    |                      t          t          j                  S rB   )rN   intr   to_intrJ   s    r<   __int__zivmpf.__int__4   s    yyel+++r>   c                 L    |                      t          t          j                  S rB   )rN   r7   r   to_floatrR   s    r<   	__float__zivmpf.__float__7   s    yy///r>   c                 L    |                      t          t          j                  S rB   )rN   complexr   rU   rR   s    r<   __complex__zivmpf.__complex__:   s    yy%.111r>   c                 h    | j         \  }}||k    rt          |          S t          | j                   S rB   )rH   r/   hashrJ   rL   rM   s      r<   __hash__zivmpf.__hash__=   s2    z166A;;
###r>   c                     | S rB    rR   s    r<   realz
ivmpf.realD   s    Kr>   c                     | j         j        S rB   )rC   zerorR   s    r<   imagz
ivmpf.imagG   s    8=(r>   c                     | S rB   r_   rR   s    r<   	conjugatezivmpf.conjugateJ   s    r>   c                 N    | j         \  }}| j                            ||f          S rB   rH   rC   make_mpfr\   s      r<   rL   zivmpf.aL   '    z1x  !Q(((r>   c                 N    | j         \  }}| j                            ||f          S rB   rg   r\   s      r<   rM   zivmpf.bQ   ri   r>   c                 r    | j         }t          | j        |j                  }|                    ||f          S rB   )rC   r   rH   r:   rh   rJ   rC   vs      r<   midz	ivmpf.midV   s2    hDJ))||QF###r>   c                 r    | j         }t          | j        |j                  }|                    ||f          S rB   )rC   r   rH   r:   rh   rl   s      r<   deltazivmpf.delta\   s2    hdj#(++||QqE"""r>   c                     | j         t          fS rB   )rH   mpi_zerorR   s    r<   _mpci_zivmpf._mpci_b   s    z8##r>   c                       t          d          )Nz-no ordering relation is defined for intervals	TypeError)argss    r<   _comparezivmpf._comparef   s    GHHHr>   c                 v    | j                             |          }| j        |j        k    o|j        | j        k    S rB   )rC   mpfrL   rM   )rJ   ts     r<   __contains__zivmpf.__contains__n   s.    HLLOO!#2AC46M2r>   c                 @    t          | j        | j        j                  S rB   )r   rH   rC   r:   rR   s    r<   __str__zivmpf.__str__r   s    tz48=111r>   c                     | j         j        rt          |           S | j        \  }}t	          | j         j                  }t          j        ||          }t          j        ||          }d|d|dS )Nzmpi(, ))rC   prettystrrH   r
   r:   r   to_str)rJ   rL   rM   ns       r<   __repr__zivmpf.__repr__u   sm    8? 	t99z1TX]##LALA !111%%r>   c                     t          |d          s*	 | j                            |          }n#  t          cY S xY w || j        |j                  S )NrH   )r5   rC   rD   NotImplementedrH   )sr{   cmpfuns      r<   rx   zivmpf._compare~   sY    q'"" 	&&EMM!$$&%%%%vagqw'''s   - 	8c                 B    |                      |t          j                  S rB   )rx   r   mpi_eqr   r{   s     r<   __eq__zivmpf.__eq__       QZZ5<888r>   c                 B    |                      |t          j                  S rB   )rx   r   mpi_ner   s     r<   __ne__zivmpf.__ne__   r   r>   c                 B    |                      |t          j                  S rB   )rx   r   mpi_ltr   s     r<   __lt__zivmpf.__lt__   r   r>   c                 B    |                      |t          j                  S rB   )rx   r   mpi_ler   s     r<   __le__zivmpf.__le__   r   r>   c                 B    |                      |t          j                  S rB   )rx   r   mpi_gtr   s     r<   __gt__zivmpf.__gt__   r   r>   c                 B    |                      |t          j                  S rB   )rx   r   mpi_ger   s     r<   __ge__zivmpf.__ge__   r   r>   c                 p    | j                             t          | j        | j         j                            S rB   )rC   rh   r   rH   r:   rR   s    r<   __abs__zivmpf.__abs__   (    x  TX]!C!CDDDr>   c                 p    | j                             t          | j        | j         j                            S rB   )rC   rh   r   rH   r:   rR   s    r<   __pos__zivmpf.__pos__   r   r>   c                 p    | j                             t          | j        | j         j                            S rB   )rC   rh   r   rH   r:   rR   s    r<   __neg__zivmpf.__neg__   r   r>   Nc                 <    | j                             | |||          S rB   rC   almosteqr   r{   rel_epsabs_epss       r<   aezivmpf.ae       u~~aGW555r>   )r   NN)!__name__
__module____qualname____doc__rF   rN   rS   rV   rY   r]   propertyr`   rc   re   rL   rM   rn   rp   rs   rx   r   r   r   r|   r~   r   r   r   r   r   r   r   r   r_   r>   r<   r@   r@   &   s        " " " "  , , ,0 0 02 2 2$ $ $  X(( X($$$) ) X) ) ) X) $ $ X$
 # # X#
 $ $ X$I I I FFFF3 3 32 2 2& & &( ( ( 988888888888888888E E EE E EE E E6 6 6 6 6 6r>   r@   c                       e Zd ZddZd Zd Zd Zed             Zed             Z	ed             Z
ed	             Zed
             Zed             Zd Zd Zd ZddZd Zd Zd ZexZxZZd Zd Zd ZddZdS )ivmpcr   c                     | j                             |          }| j                             |          }t          |           }|j        |j        f|_        |S rB   )rC   rD   newrH   rs   )rE   reimys       r<   rF   zivmpc.__new__   sH    W__R  W__R  HH8RX%r>   c                     | j         \  \  }}\  }}||k    r||k    rt          ||f          S t          | j                   S rB   )rs   r0   r[   rJ   rL   rM   cds        r<   r]   zivmpc.__hash__   sH    A166a1ffQF###$$$r>   c                     | j         j        rt          |           S dt          | j                  dt          | j                  dS )Nziv.mpc(r   r   )rC   r   r   reprr`   rc   r   s    r<   r   zivmpc.__repr__   sA    5< 	q66M	#'<<<<af>>r>   c                 \    dt          | j                  dt          | j                  dS )N( + *j))r   r`   rc   r   s    r<   r~   zivmpc.__str__   s'      #AFS[[[[99r>   c                 Z    | j         \  \  }}\  }}| j                            ||f          S rB   rs   rC   rh   r   s        r<   rL   zivmpc.a   /    A1x  !Q(((r>   c                 Z    | j         \  \  }}\  }}| j                            ||f          S rB   r   r   s        r<   rM   zivmpc.b   r   r>   c                 Z    | j         \  \  }}\  }}| j                            ||f          S rB   r   r   s        r<   r   zivmpc.c   r   r>   c                 Z    | j         \  \  }}\  }}| j                            ||f          S rB   r   r   s        r<   r   zivmpc.d   r   r>   c                 L    | j                             | j        d                   S Nr   rC   rh   rs   r   s    r<   r`   z
ivmpc.real       u~~ahqk***r>   c                 L    | j                             | j        d                   S Nr   r   r   s    r<   rc   z
ivmpc.imag   r   r>   c                 h    | j         \  }}| j                            |t          |          f          S rB   )rs   rC   make_mpcr   )r   rL   rM   s      r<   re   zivmpc.conjugate   s+    x1u~~q'!**o...r>   c                 .   | j                             |          }| j        |j        cxk    o
| j        k    nc p\| j        |j        cxk    o
| j        k    nc p=|j        | j        cxk    o
|j        k    nc p|j        | j        cxk    o
|j        k    nc }| j        |j        cxk    o
| j        k    nc p\| j        |j        cxk    o
| j        k    nc p=|j        | j        cxk    o
|j        k    nc p|j        | j        cxk    o
|j        k    nc }|o|S rB   )rC   rD   rL   rM   r   r   )r   r{   real_overlapimag_overlaps       r<   overlapzivmpc.overlap   sh   EMM!qs))))ac))))oqsac/@/@/@/@QS/@/@/@/@oacQSFWFWFWFWTUTWFWFWFWFWo]^]`dedg]n]n]n]nklkn]n]n]n]nqs))))ac))))oqsac/@/@/@/@QS/@/@/@/@oacQSFWFWFWFWTUTWFWFWFWFWo]^]`dedg]n]n]n]nklkn]n]n]n]n,,r>   c                 n    | j                             |          }|j        | j        v o|j        | j        v S rB   )rC   rD   r`   rc   r   s     r<   r|   zivmpc.__contains__   s2    EMM!v4AFaf$44r>   Fc                 &   t          || j        j                  s*	 | j                            |          }n#  t          cY S xY wt          |d          r|j        t          f}nt          |d          r|j        }|r| j        |k    S | j        |k    S NrH   rs   )	r6   rC   _typesrD   r   r5   rH   rr   rs   )r   r{   netvals       r<   rx   zivmpc._compare   s    !QU\** 	&&EMM!$$&%%%%1g 	7H$DDQ!! 	8D 	$8t##x4s	   7 	Ac                 ,    |                      |          S rB   rx   r   s     r<   r   zivmpc.__eq__   s    QZZ]]*r>   c                 .    |                      |d          S )NTr   r   s     r<   r   zivmpc.__ne__   s    QZZ4000r>   c                      t          d          )Nz#complex intervals cannot be orderedru   r   s     r<   r   zivmpc.__lt__   s    I&KLLLr>   c                 p    | j                             t          | j        | j         j                            S rB   )rC   r   r%   rs   r:   r   s    r<   r   zivmpc.__neg__   %    15>>(18QUZ*H*HIIIr>   c                 p    | j                             t          | j        | j         j                            S rB   )rC   r   r$   rs   r:   r   s    r<   r   zivmpc.__pos__   r   r>   c                 p    | j                             t          | j        | j         j                            S rB   )rC   rh   r+   rs   r:   r   s    r<   r   zivmpc.__abs__   r   r>   Nc                 <    | j                             | |||          S rB   r   r   s       r<   r   zivmpc.ae   r   r>   )r   r   )Fr   )r   r   r   rF   r]   r   r~   r   rL   rM   r   r   r`   rc   re   r   r|   rx   r   r   r   r   r   r   r   r   r   r   r_   r>   r<   r   r      s          % % %? ? ?
: : : ) ) X) ) ) X) ) ) X) ) ) X) + + X+ + + X+/ / /- - -5 5 5        +**000LLL%%F%VfIIIIIIIII6 6 6 6 6 6r>   r   c                 X     fd fdfd}fd}fd}fd}||||fS )Nc                 N    |                       ||| j                            S rB   )r   r:   )rC   svalr   	f_complexs      r<   	g_complexz_binary_op.<locals>.g_complex   s%    ||IIdD#(;;<<<r>   c                     	 |                       ||| j                            S # t          $ r" |t          f}|t          f} | ||          cY S w xY wrB   )rh   r:   r.   rr   )rC   r   r   f_realr   s      r<   g_realz_binary_op.<locals>.g_real   ss    	.<<tT38 < <=== 	. 	. 	.(#D(#D9S$-----	.s   $( )AAc                 V   t          |t                    rt          S | j        }t          ||j                  s|                    |          }t          |d          r || j        |j                  S t          |d          r || j        t          f|j	                  S t          S r   )
r6   r1   r   rC   r   rD   r5   rH   rr   rs   r   r{   rC   r   r   s      r<   lop_realz_binary_op.<locals>.lop_real   s    a!!8.#8e!SZ((<ckk!nn!1gDvvc17AG'D'D D1hU		#7JAH(U(U!Ur>   c                    | j         }t          ||j                  s|                    |          }t	          |d          r ||j        | j                  S t	          |d          r ||j        | j        t          f          S t          S r   )	rC   r6   r   rD   r5   rH   rs   rr   r   r   s      r<   rop_realz_binary_op.<locals>.rop_real  s    e!SZ((<ckk!nn!1gDvvc17AG'D'D D1hU		#qx!'8AT(U(U!Ur>   c                     t          |t                    rt          S | j        }t          || j        j                  s:	 | j                            |          }n# t          t          f$ r
 t          cY S w xY w || j        |j                  S rB   )	r6   r1   r   rC   r   rD   rI   rv   rs   r   r{   rC   r   s      r<   lop_complexz_binary_op.<locals>.lop_complex  s    a!!8.#8e!QU\** 	&&EMM!$$	* & & &%%%%&yah111s    A A65A6c                     | j         }t          || j         j                  s| j                             |          } ||j        | j                  S rB   )rC   r6   r   rD   rs   r   s      r<   rop_complexz_binary_op.<locals>.rop_complex  sK    e!QU\** 	!a  Ayah111r>   r_   )r   r   r   r   r   r   r   r   s   ``    @@r<   
_binary_opr      s    = = = = =. . . . . .          2 2 2 2 22 2 2 2 2
 X{K77r>   c                   0    e Zd Zd Zd Z ee          ZdS )ivmpf_constantc                 2    t          |           }||_        |S rB   )r   _f)rE   frJ   s      r<   rF   zivmpf_constant.__new__%  s    3xxr>   c                     | j         j        d         }|                     |t                    }|                     |t                    }||fS r   )rC   _precr   r   r   )rJ   r:   rL   rM   s       r<   	_get_mpi_zivmpf_constant._get_mpi_)  s?    x~a GGD+&&GGD-((!tr>   N)r   r   r   rF   r  r   rH   r_   r>   r<   r   r   $  s=            
 HYEEEr>   r   c                       e Zd Zd ZddZd ZddZed             Zd Z	d Z
 ed	 e	          Z ed
 e
          Zd Zd Zd Zd ZddZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd dZdS )!MPIntervalContextc                     t          dt          fi           | _        t          dt          fi           | _        | j        | j        f| _        t          dt          fi           | _        dg| _        | 	                    d           | j        t          | j        gx| j        _        x| j        _        | j        _        | x| j        _        x| j        _        | j        _        d| _        t          j        |            |                                  d S )Nr@   r   r   5   F)typer@   rz   r   mpcr   r   	_constantr   	_set_precr   _ctxdatarC   r   r2   __init___init_builtinsrC   s    r<   r  zMPIntervalContext.__init__2  s    w"--w"--gsw'
-/@"EED	bHKQTVYV_G```!1CG4D8;;;CGK#'+
$S)))r>   Nc                 ^    ||                      |          S |                      ||f          S rB   )rz   )rC   rL   rM   s      r<   _mpizMPIntervalContext._mpi?  s+    9771::ww!u~~r>   c                    |                      d          | _        |                      d          | _        |                      d          | _        | j         | _        |                      d          | _        |                     dd          | _        |                     t          j
        t          j                  | _        |                     t          j                  | _        |                     t          j        t          j                  | _        |                     t          j        t          j                  | _        |                     t          j        t          j                  | _        |                     t          j                  | _        |                     t          j        t          j                  | _        |                     t          j        t          j                  | _        |                     t          j         t          j!                  | _"        |                     t          j#        t          j$                  | _%        | j%        | _&        | '                    d           | _(        | '                    t          j)                  | _*        | '                    t          j+                  | _,        | '                    t          j-                  | _.        | '                    t          j/                  | _0        | '                    t          j1                  | _2        | '                    t          j3                  | _4        | '                    t          j5                  | _6        | '                    t          j7                  | _8        | '                    t          j9                  | _:        | '                    t          j;                  | _<        d S )Nr   r   infnanc                     dt           d| z
  dfS Nr   r   )r   )r:   rnds     r<   <lambda>z2MPIntervalContext._init_builtins.<locals>.<lambda>W  s    1gqvq2I r>   )=rz   onerb   r  ninfr  r  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facr  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	twinprimer  s    r<   r  z MPIntervalContext._init_builtinsD  sk   ''!**771::''%..G8''%..!((GG))%.99''u~FF((GG((GG((77**5?E<LMM	--e.@%BUVV++E,<e>OPP
..u/BEDXYY--- I IJJu|,,ek**--..==00--..MM%/22	mmE$566}}U%788}}U%788e&9::r>   c                       fd}|S )Nc                 n   |r"|                     dj        d                   }nj        d         }                    |           } t          | d          r$                     | j        |                    S t          | d          r$                     | j        |                    S t          )Nr:   r   rH   rs   )	getr   rD   r5   rh   rH   r   rs   rI   )r9   kwargsr:   rC   r   r   s      r<   gz/MPIntervalContext._wrap_mpi_function.<locals>.gd  s     $zz&#)A,77y|AAq'"" ;||FF17D$9$9:::q(## ?||IIah$=$=>>>r>   r_   )rC   r   r   rO  s   ``` r<   r  z$MPIntervalContext._wrap_mpi_functionc  s/    
	 
	 
	 
	 
	 
	 
	 r>   c                 >    |rfd}n}t          | ||           d S )Nc                     | j         fd|D             }| j        }	 | xj        dz  c_         | g|R i |}|| _        n# || _        w xY w|
 S )Nc                 &    g | ]} |          S r_   r_   ).0rL   rD   s     r<   
<listcomp>zFMPIntervalContext._wrap_specfun.<locals>.f_wrapped.<locals>.<listcomp>v  s!    111q

111r>   
   )rD   r:   )rC   rw   rN  r:   retvalrD   r   s        @r<   	f_wrappedz2MPIntervalContext._wrap_specfun.<locals>.f_wrappedt  s}    +1111D111x$HHNHHQs4T444V44F#CHHtCHOOOOws   A 	A)setattr)rE   namer   wraprW  s     `  r<   _wrap_specfunzMPIntervalContext._wrap_specfunq  sH     		 	 	 	 	 	 IT9%%%%%r>   c                 x    t          dt          |                    | j        d<   t          |          | _        d S )Nr   r   )maxrP   r   r   _dpsrC   r   s     r<   r	  zMPIntervalContext._set_prec  s,    1c!ff~~	!q>>r>   c                 x    t          |          | j        d<   t          dt          |                    | _        d S r  )r	   r   r]  rP   r^  r_  s     r<   _set_dpszMPIntervalContext._set_dps  s,    "1~~	!q#a&&>>r>   c                     | j         d         S r   )r   r  s    r<   r  zMPIntervalContext.<lambda>  s    	! r>   c                     | j         S rB   )r^  r  s    r<   r  zMPIntervalContext.<lambda>  s    sx r>   c                 <    t          | j                  }||_        |S rB   )r   rz   rH   rC   rm   rL   s      r<   rh   zMPIntervalContext.make_mpf  s    LLr>   c                 <    t          | j                  }||_        |S rB   )r   r  rs   re  s      r<   r   zMPIntervalContext.make_mpc  s    LLr>   c                     |\  }}t          j        ||| j        t                    }t          j        ||| j        t                    }|                     ||f          S rB   )r   r   r:   r   r   rh   )rC   pqpqrL   rM   s         r<   _mpqzMPIntervalContext._mpq  sQ    11ch<<1ch>>||QF###r>   c                    t          || j        | j        f          r|S t          || j                  r|
 S t          |t                    st          |d          rJ|                     |j                  }|                     |j                  }|                     ||          S t          |t                    r*t          || j                  }|                     |          S t          |d          r|j        \  }}n	 |\  }}n# t          t          f$ r |x}}Y nw xY wt          |d          r|j        d         }nt!          || j        t"                    }t          |d          r|j        d         }nt!          || j        t$                    }|t&          k    s|t&          k    rt(          }t*          }t-          ||          s
J d            |                     ||f          S )N_mpc_rH   r   r   z"endpoints must be properly ordered)r6   rz   r  r  rX   r5   rD   r`   rc   r   r#   r:   rh   rH   rv   rI   r=   r   r   r   r   r   r   )rC   r9   r   r   rm   rL   rM   s          r<   rD   zMPIntervalContext.convert  s   a#'37+,, 	Ha'' 	2Ia!! 	"WQ%8%8 	"QV$$BQV$$B772b>>!a$$ 	#Q))A<<??"1g 	=7DAqq11z*   	AAAq'"" ;GAJ CHk::q'"" =GAJ CHm<<99T		AAa||AAAAAA||QF###s   D DD   c                 *   |                      |          }t          |d          rt          j        |j        |fi |S t          |d          rEt          j        |j        d         |fi |}t          j        |j        d         |fi |}d|d|dS d S )NrH   rs   r   r   r   r   r   )rD   r5   r   
mpi_to_strrH   rs   )rC   r9   r   rN  r   r   s         r<   nstrzMPIntervalContext.nstr  s    KKNN1g 	:#AGQ99&9991h 	,!!(1+q;;F;;B!!(1+q;;F;;BB$&BB++	, 	,r>   c                    |                      |          }t          || j                  rCt          |                     |j                  |                     |j                            dz   S t          j        |j	                  \  }}|\  }}}}|r||z   S |t          k    r| j        S |t          k    r| j        S | j        S r   )rD   r6   r  r]  magr`   rc   r   r   rH   r   r  r   r  r  rC   r9   rL   rM   signmanr  bcs           r<   rs  zMPIntervalContext.mag  s    KKNNa!! 	=swwqv881<<}QW%%1c3 	r6M::8O997Nwr>   c                     dS )NFr_   rC   r9   s     r<   isnanzMPIntervalContext.isnan  s    ur>   c                     || j         k    S rB   )r  ry  s     r<   isinfzMPIntervalContext.isinf  s    CG|r>   c                     |                      |          }|j        \  }}||k    r|\  }}}}|r|dk    S |t          k    S d S r   )rD   rH   r   rt  s           r<   isintzMPIntervalContext.isint  sS    KKNNw166!"D#sB  ax:tr>   c                     |                      |          j        \  }}t          j        ||          }t          j        ||          }|                     ||f          S rB   )rD   rH   r   	mpf_shiftrh   )rC   r9   r   rL   rM   s        r<   ldexpzMPIntervalContext.ldexp  sP    {{1~~#1OAq!!OAq!!||QqE"""r>   c                 P    t          |                     |                    j        S rB   )absrD   rL   ry  s     r<   absminzMPIntervalContext.absmin      3;;q>>""$$r>   c                 P    t          |                     |                    j        S rB   )r  rD   rM   ry  s     r<   absmaxzMPIntervalContext.absmax  r  r>   c                     |                      |          j        }|                      |          j        }|                     t          j        ||| j                            S rB   )rD   rH   rh   r   	mpi_atan2r:   )rC   r   r9   s      r<   atan2zMPIntervalContext.atan2  sH    KKNN KKNN ||EOAa99:::r>   c                 h   t          |t          j                  r|dfS t          |t                    r2|\  }}|                     |          |                     |          z  dfS |                     |          }t          || j                  r|dfS t          || j                  r|dfS t          )NZRC)r6   r   r   tuplerz   rD   r  rI   )rC   r9   ri  rj  s       r<   _convert_paramz MPIntervalContext._convert_param  s    a)) 	c6Ma 	2DAqGGAJJ+S11KKNNa!! 	c6Ma!! 	c6Mr>   c                 V    t          || j                  pt          |t                    S rB   )r6   rz   r   rC   zs     r<   _is_real_typezMPIntervalContext._is_real_type  s#    !SW%%AAy)A)AAr>   c                 ,    t          || j                  S rB   )r6   r  r  s     r<   _is_complex_typez"MPIntervalContext._is_complex_type  s    !SW%%%r>   p  c                    t          |          }t          |          }t          |||z             }	| j        x}
}d}	 |D ]}|||         |z   z  }|	D ]}|||         |z   z  }|dz  }||z  }||z  }|
|z  }
|dk    r|
S ||k    r| j        Pr  )listranger  NoConvergence)rC   ri  rj  typescoeffsr  maxtermsrN  numdenr   r{   kis                 r<   hypsumzMPIntervalContext.hypsum	  s    fAhhAacllA		(,,!q	!,!!,,!q	!,!!FAAFAAFAAFAAvv 8||''		(r>   rB   )rn  )r  )r   r   r   r  r  r  r  classmethodr[  r	  ra  r   r:   dpsrh   r   rk  rD   rq  rs  rz  r|  r~  r  r  r  r  r  r  r  r  r_   r>   r<   r  r  0  s            
; ; ;>    & & [& " " "" " " 8,,i88D
(''
2
2C  
  
$ $ $$ $ $B, , , ,        # # #% % %% % %; ; ;
  B 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   rr   ctx_baser2   objectrF   r   r=   r@   r   r   __add____radd____sub____rsub____mul____rmul____div____rdiv____pow____rpow____truediv____rtruediv__r   r  numbersComplexregisterRealImportErrorr_   r>   r<   <module>r     sR          % % % % % %                                                                                            ' & & & & &5> ) ) ) ) ) )n  o6 o6 o6 o6 o6F o6 o6 o6b[6 [6 [6 [6 [6F [6 [6 [6z%8 %8 %8N @Jz'S[?\?\ <u~u}en?Iz'S[?\?\ <u~u}en?Iz'S[?\?\ <u~u}en?Iz'S[?\?\ <u~u}en?Iz'S[?\?\ <u~u}enM 5#5M 5#5
  
  
  
  
 U 
  
  
 i( i( i( i( i(+ i( i( i(d	NNNOU###L%      	 	 	DD	s   ,8G& &G/.G/