+
    ‰°³j·“  ã                   ó&  € ^RI HtHt ^RIHtHtHtHtHtH	t	H
t
HtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t.H/t/H0t0H1t1H2t2H3t3H4t4H5t5H6t6H7t7H8t8H9t9H:t:H;t;H<t<H=t=H>t>H?t?H@t@HAtAHBtBHCtCHDtDHEtEHFtFHGtGHHtHHItIHJtJHKtKHLtLHMtMHNtNHOtOHPtPHQtQHRtRHStSHTtTHUtUHVtVHWtWHXtXHYtYHt ^RIZH[t[ ^RIZH\t\ ]]P¼                  t_ ! R R]]4      t` ! R R]`4      taR	tbR
tcRtdR]c: R]d: R2teR2R ltf]f! RRRR4      ]ang        ]f! RR]c,           R]c,           R]d,           4      ]anh        ]f! RR]c,           R]c,           R]d,           4      ]ani        ]f! RR]c,           R]c,           R]d,           4      ]anj        ]f! R R!]c,           R"]c,           R#]d,           4      ]ank        ]f! R$R%]c,           R&]c,           R'4      ]anl        ]f! R(]eR)]c,           R*]d,           4      ]anm        ]aPÐ                  ]ann        ]aPÔ                  ]ano        ]aPÖ                  ]anp        ]aPâ                  ]anr         ! R+ R,]a4      ts ! R- R.]`4      tt]u]t3tv ! R/ R0]]4      tw ^ R1Ixtx]xPò                  Põ                  ]t4       ]xPö                  Põ                  ]a4       R1#   ]| d     R1# i ; i)3é   )Ú
basestringÚexec_)WÚMPZÚMPZ_ZEROÚMPZ_ONEÚ	int_typesÚrepr_dpsÚround_floorÚround_ceilingÚdps_to_precÚround_nearestÚprec_to_dpsÚComplexResultÚto_pickableÚfrom_pickableÚ	normalizeÚfrom_intÚ
from_floatÚfrom_npfloatÚfrom_DecimalÚfrom_strÚto_intÚto_floatÚto_strÚfrom_rationalÚfrom_man_expÚfoneÚfzeroÚfinfÚfninfÚfnanÚmpf_absÚmpf_posÚmpf_negÚmpf_addÚmpf_subÚmpf_mulÚmpf_mul_intÚmpf_divÚmpf_rdiv_intÚmpf_pow_intÚmpf_modÚmpf_eqÚmpf_cmpÚmpf_ltÚmpf_gtÚmpf_leÚmpf_geÚmpf_hashÚmpf_randÚmpf_sumÚbitcountÚto_fixedÚ
mpc_to_strÚmpc_to_complexÚmpc_hashÚmpc_posÚmpc_is_nonzeroÚmpc_negÚmpc_conjugateÚmpc_absÚmpc_addÚmpc_add_mpfÚmpc_subÚmpc_sub_mpfÚmpc_mulÚmpc_mul_mpfÚmpc_mul_intÚmpc_divÚmpc_div_mpfÚmpc_powÚmpc_pow_mpfÚmpc_pow_intÚmpc_mpf_divÚmpf_powÚmpf_piÚ
mpf_degreeÚmpf_eÚmpf_phiÚmpf_ln2Úmpf_ln10Ú	mpf_eulerÚmpf_catalanÚ	mpf_aperyÚmpf_khinchinÚmpf_glaisherÚmpf_twinprimeÚmpf_mertensr   )Úrational)Úfunction_docsc                   ó.   a € ] tR t^!t o Rt. tR tRtV tR# )Ú	mpnumericzBase class for mpf and mpc.c                ó   € \         h©N)ÚNotImplementedError)ÚclsÚvals   &&ÚU/home/luca/screen-checking/.venv/lib/python3.14/site-packages/mpmath/ctx_mp_python.pyÚ__new__Úmpnumeric.__new__$   s   € Ü!Ð!ó    © N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__re   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @rd   r^   r^   !   s   ø‡ € Ù%Ø€I÷"ð "rg   r^   c                   óˆ  a € ] tR t^'t o RtR.t]3R lt]R 4       t	]R 4       t
]R 4       t]! R 4      t]! R 4      t]! R	 4      t]! R
 4      t]! R 4      t]! R 4      tR tR tR tR tR tR tR tR tR tR tR t]tR tR t R t!R t"R t#R t$R t%R t&R  t'R! t(R" t)R# t*R$ t+R% t,R& t-R,R( lt.R) t/R* t0R+t1V t2R'# )-Ú_mpfz‘
An mpf instance holds a real-valued floating-point number. mpf:s
work analogously to Python floats, but support arbitrary-precision
arithmetic.
Ú_mpf_c                ó  € V P                   P                  w  r4V'       d>   VP                  RV4      pRV9   d   \        VR,          4      pVP                  RV4      p\	        V4      V J dA   VP
                  w  rVrxV'       g   V'       d   V# \        V 4      p	\        WVWxW44      V	n        V	# \	        V4      \        J d™   \        V4      ^8X  d.   \        V 4      p	\        V^ ,          V^,          W44      V	n        V	# \        V4      ^8X  dF   V\        \        \        39  d   Vw  rVrx\        V\        V4      WxW44      p\        V 4      p	Wn        V	# \        h\        V 4      p	\!        V P#                  WV4      W44      V	n        V	# )z{A new mpf can be created from a Python float, an int, a
or a decimal string representing a number in floating-point
format.ÚprecÚdpsÚrounding)ÚcontextÚ_prec_roundingÚgetr   Útyperu   Únewr   ÚtupleÚlenr   r   r    r!   r   Ú
ValueErrorr#   Úmpf_convert_arg)
rb   rc   Úkwargsrw   ry   ÚsignÚmanÚexpÚbcÚvs
   &&,       rd   re   Ú_mpf.__new__/   sF  € ð Ÿ™×3Ñ3‰ˆßØ—:‘:˜f dÓ+ˆDØ˜ŒÜ" 6¨%¥=Ó1�Ø—z‘z *¨hÓ7ˆHÜ�‹9˜ÓØ!$§¡ÑˆD�sßŸSØ�
Ü�C“ˆAÜ ¨3°DÓCˆAŒGØˆHÜ�#‹Yœ%ÓÜ�3‹x˜1Œ}Ü˜“H�Ü& s¨1¥v¨s°1­v°tÓF�”Ø�Ü�3‹x˜1Œ}Øœt¤U¬DÐ1Ô1Ø),Ñ&�D˜sÜ# D¬#¨c«(°C¸TÓL�CÜ˜“H�Ø”Ø�ÜÐä�C“ˆAÜ˜c×1Ñ1°#¸XÓFÈÓWˆAŒGØˆHrg   c                óÂ  € \        V\        4      '       d   \        V4      # \        V\        4      '       d   \	        V4      # \        V\
        4      '       d   \        WV4      # \        WP                  P                  4      '       d   VP                  W#4      # \        VR 4      '       d   VP                  # \        VR4      '       dI   V P                  P                  VP                  W#4      4      p\        VR 4      '       d   VP                  # \        VR4      '       d"   VP                  w  rVWV8X  d   V# \        R4      h\!        R\#        V4      ,           4      h)ru   Ú_mpmath_Ú_mpi_z,can only create mpf from zero-width intervalúcannot create mpf from )Ú
isinstancer   r   Úfloatr   r   r   rz   ÚconstantÚfuncÚhasattrru   Úconvertr‹   rŒ   r�   Ú	TypeErrorÚrepr)rb   Úxrw   ry   ÚtÚaÚbs   &&&&   rd   r‚   Ú_mpf.mpf_convert_argR   s  € ä�aœ×#Ò#¬H°Q«KÐ%7Ü�aœ×Ò¬
°1«Ð!5Ü�aœ×$Ò$¬X°a¸xÓ-HÐ&HÜ�aŸ™×-Ñ-×.Ò.°q·v±v¸dÓ7MÐ0MÜ�1�g×Ò q§w¡w Ü�1�j×!Ò!Ø—‘×#Ñ# A§J¡J¨tÓ$>Ó?ˆAÜ�q˜'×"Ò"Ø—w‘w�Ü�1�g×ÒØ—7‘7‰DˆAØŒvØ�ÜÐKÓLÐLÜÐ1´D¸³GÕ;Ó<Ð<rg   c                óª  € \        V\        4      '       d   \        V4      # \        V\        4      '       d   \	        V4      # \        V\
        4      '       d   V P                  P                  V4      # \        V\        P                  4      '       d/   VP                  w  r#\        W#V P                  P                  4      # \        VR 4      '       d   VP                  # \        VR4      '       d^   V P                  P                  VP                   ! V P                  P"                  !  4      p\        VR 4      '       d   VP                  # V# \$        # )ru   r‹   )rŽ   r   r   r�   r   Úcomplex_typesrz   Úmpcr[   ÚmpqÚ_mpq_r   rw   r’   ru   r“   r‹   r{   ÚNotImplemented)rb   r–   ÚpÚqr—   s   &&   rd   Úmpf_convert_rhsÚ_mpf.mpf_convert_rhsd   sê   € ä�aœ×#Ò#¬H°Q«KÐ%7Ü�aœ×Ò¬
°1«Ð!5Ü�aœ×'Ò'°·±·±ÀÓ0BÐ)BÜ�aœŸ™×&Ò&Ø—7‘7‰DˆAÜ   s§{¡{×'7Ñ'7Ó8Ð8Ü�1�g×Ò q§w¡w Ü�1�j×!Ò!Ø—‘×#Ñ# A§J¢J°·±×0JÑ0JÑ$KÓLˆAÜ�q˜'×"Ò"Ø—w‘w�ØˆHÜÐrg   c                ó„   € V P                  V4      p\        V4      \        J d   V P                  P	                  V4      # V# r`   )r£   r}   r   rz   Úmake_mpf)rb   r–   s   &&rd   Úmpf_convert_lhsÚ_mpf.mpf_convert_lhst   s8   € à×Ñ Ó"ˆÜ�‹7”eÓØ—;‘;×'Ñ'¨Ó*Ð*Øˆrg   c                ó(   € V P                   R ,          # ):r   é   N©ru   ©Úselfs   &rd   Ú<lambda>Ú_mpf.<lambda>{   s   €  D§J¡J¨s¦Org   c                ó(   € V P                   ^,          # ©r   r«   r¬   s   &rd   r®   r¯   |   ó   €  §
¡
¨1¦rg   c                ó(   € V P                   ^,          # )é   r«   r¬   s   &rd   r®   r¯   }   r²   rg   c                ó(   € V P                   ^,          # )rª   r«   r¬   s   &rd   r®   r¯   ~   s   € ˜tŸz™z¨!ž}rg   c                ó   € V # r`   rh   r¬   s   &rd   r®   r¯   €   s   € ¡rg   c                ó.   € V P                   P                  # r`   )rz   Úzeror¬   s   &rd   r®   r¯   �   s   €  §¡×!2Ò!2rg   c                ó   € V # r`   rh   r¬   s   &rd   r®   r¯   ƒ   s   € ™Trg   c                ó,   € \        V P                  4      # r`   )r   ru   r¬   s   &rd   Ú__getstate__Ú_mpf.__getstate__…   s   € ¤;¨t¯z©zÓ#:Ð:rg   c                ó&   € \        V4      V n        R # r`   )r   ru   ©r­   rc   s   &&rd   Ú__setstate__Ú_mpf.__setstate__†   s   € ¬m¸CÓ.@ ¦rg   c                ó²   € V P                   P                  '       d   \        V 4      # R \        V P                  V P                   P
                  4      ,          # )z	mpf('%s'))rz   ÚprettyÚstrr   ru   Ú_repr_digits©Úss   &rd   Ú__repr__Ú_mpf.__repr__ˆ   s;   € Ø�9‰9××ÐÜ�q“6ˆMØœV A§G¡G¨Q¯Y©Y×-CÑ-CÓDÕDÐDrg   c                óV   € \        V P                  V P                  P                  4      # r`   )r   ru   rz   Ú_str_digitsrÅ   s   &rd   Ú__str__Ú_mpf.__str__�   s   € œ6 !§'¡'¨1¯9©9×+@Ñ+@ÓAÐArg   c                ó,   € \        V P                  4      # r`   )r3   ru   rÅ   s   &rd   Ú__hash__Ú_mpf.__hash__Ž   s   € œH Q§W¡WÓ-Ð-rg   c                ó>   € \        \        V P                  4      4      # r`   )Úintr   ru   rÅ   s   &rd   Ú__int__Ú_mpf.__int__�   s   € œ3œv a§g¡g›Ó/Ð/rg   c                ó>   € \        \        V P                  4      4      # r`   )Úlongr   ru   rÅ   s   &rd   Ú__long__Ú_mpf.__long__�   s   € œD¤¨¯©£Ó1Ð1rg   c                óf   € \        V P                  V P                  P                  ^,          R7      # ©r   )Úrnd)r   ru   rz   r{   rÅ   s   &rd   Ú	__float__Ú_mpf.__float__‘   s!   € œX a§g¡g°1·9±9×3KÑ3KÈAÕ3NÔOÐOrg   c                ó*   € \        \        V 4      4      # r`   )Úcomplexr�   rÅ   s   &rd   Ú__complex__Ú_mpf.__complex__’   s   € œw¤u¨Q£xÓ0Ð0rg   c                ó(   € V P                   \        8g  # r`   )ru   r   rÅ   s   &rd   Ú__nonzero__Ú_mpf.__nonzero__“   s   € ˜qŸw™w¬%Ñ/Ð/rg   c                ón   € V P                   w  rw  r4V! V4      p\        V P                  W44      Vn        V# r`   )Ú_ctxdatar"   ru   ©rÆ   rb   r~   rw   ry   rˆ   s   &     rd   Ú__abs__Ú_mpf.__abs__—   ó3   € Ø%&§Z¡ZÑ"ˆÑ"�4Ù�‹HˆÜ˜!Ÿ'™' 4Ó2ˆŒØˆrg   c                ón   € V P                   w  rw  r4V! V4      p\        V P                  W44      Vn        V# r`   )rå   r#   ru   ræ   s   &     rd   Ú__pos__Ú_mpf.__pos__�   ré   rg   c                ón   € V P                   w  rw  r4V! V4      p\        V P                  W44      Vn        V# r`   )rå   r$   ru   ræ   s   &     rd   Ú__neg__Ú_mpf.__neg__£   ré   rg   c                ó    € \        VR 4      '       d   VP                  pMV P                  V4      pV\        J d   V# V! V P                  V4      # r«   )r’   ru   r£   r    )rÆ   r—   r‘   s   &&&rd   Ú_cmpÚ	_mpf._cmp©   sF   € Ü�1�g×ÒØ—‘‰Aà×!Ñ! !Ó$ˆAØ”NÓ"Ø�Ù�A—G‘G˜QÓÐrg   c                ó.   € V P                  V\        4      # r`   )rñ   r.   ©rÆ   r—   s   &&rd   Ú__cmp__Ú_mpf.__cmp__²   s   € ˜aŸf™f Q¬Ó0Ð0rg   c                ó.   € V P                  V\        4      # r`   )rñ   r/   rô   s   &&rd   Ú__lt__Ú_mpf.__lt__³   ó   € ˜QŸV™V A¤vÓ.Ð.rg   c                ó.   € V P                  V\        4      # r`   )rñ   r0   rô   s   &&rd   Ú__gt__Ú_mpf.__gt__´   rú   rg   c                ó.   € V P                  V\        4      # r`   )rñ   r1   rô   s   &&rd   Ú__le__Ú_mpf.__le__µ   rú   rg   c                ó.   € V P                  V\        4      # r`   )rñ   r2   rô   s   &&rd   Ú__ge__Ú_mpf.__ge__¶   rú   rg   c                óJ   € V P                  V4      pV\        J d   V# V'       * # r`   ©Ú__eq__r    )rÆ   r—   rˆ   s   && rd   Ú__ne__Ú_mpf.__ne__¸   ó#   € Ø�H‰H�Q‹KˆØ”ÓØˆHØŒuˆrg   c                óô   € V P                   w  r#w  rE\        V4      \        9   d0   V! V4      p\        \	        V4      V P
                  WE4      Vn        V# V P                  V4      pV\        J d   V# W,
          # r`   )rå   r}   r   r&   r   ru   r§   r    ©rÆ   r—   rb   r~   rw   ry   rˆ   s   &&     rd   Ú__rsub__Ú_mpf.__rsub__¾   si   € Ø%&§Z¡ZÑ"ˆÑ"�4Ü�‹7”iÔÙ�C“ˆAÜœh q›k¨1¯7©7°DÓCˆAŒGØˆHØ×Ñ˜aÓ ˆØ”ÓØˆHØ�uˆrg   c                óä   € V P                   w  r#w  rE\        V\        4      '       d&   V! V4      p\        WP                  WE4      Vn        V# V P                  V4      pV\        J d   V# W,          # r`   )rå   rŽ   r   r*   ru   r§   r    r  s   &&     rd   Ú__rdiv__Ú_mpf.__rdiv__É   sd   € Ø%&§Z¡ZÑ"ˆÑ"�4Ü�aœ×#Ò#Ù�C“ˆAÜ" 1§g¡g¨tÓ>ˆAŒGØˆHØ×Ñ˜aÓ ˆØ”ÓØˆHØ�uˆrg   c                óL   € V P                  V4      pV\        J d   V# W,          # r`   ©r§   r    rô   s   &&rd   Ú__rpow__Ú_mpf.__rpow__Ô   ó&   € Ø×Ñ˜aÓ ˆØ”ÓØˆHØ�vˆrg   c                óL   € V P                  V4      pV\        J d   V# W,          # r`   r  rô   s   &&rd   Ú__rmod__Ú_mpf.__rmod__Ú   ó&   € Ø×Ñ˜aÓ ˆØ”ÓØˆHØ�uˆrg   c                ó8   € V P                   P                  V 4      # r`   )rz   ÚsqrtrÅ   s   &rd   r  Ú	_mpf.sqrtà   s   € Ø�y‰y�~‰~˜aÓ Ð rg   Nc                ó:   € V P                   P                  WW#4      # r`   ©rz   Úalmosteq©rÆ   r—   Úrel_epsÚabs_epss   &&&&rd   ÚaeÚ_mpf.aeã   ó   € Ø�y‰y×!Ñ! !¨Ó9Ð9rg   c                ó.   € \        V P                  V4      # r`   )r7   ru   )r­   rw   s   &&rd   r7   Ú_mpf.to_fixedæ   s   € Ü˜Ÿ
™
 DÓ)Ð)rg   c                ó.   € \        \        V 4      .VO5!  # r`   )Úroundr�   )r­   Úargss   &*rd   Ú	__round__Ú_mpf.__round__é   s   € Ü”U˜4“[Ð( 4Ó(Ð(rg   r«   ©NN)3ri   rj   rk   rl   rm   rn   r   re   Úclassmethodr‚   r£   r§   ÚpropertyÚman_expr…   r†   r‡   ÚrealÚimagÚ	conjugater»   r¿   rÇ   rË   rÎ   rÒ   rÖ   rÛ   rß   râ   Ú__bool__rç   rë   rî   rñ   rõ   rø   rü   rÿ   r  r  r  r  r  r  r  r#  r7   r+  ro   rp   rq   s   @rd   rt   rt   '   s!  ø‡ € ñð
 �	€Iàô !ðF ñ=ó ð=ð" ñó ðð ñó ðñ Ñ3Ó4€GÙ
Ñ-Ó
.€CÙ
Ñ-Ó
.€CÙ	Ñ,Ó	-€BáÑ%Ó&€DÙÑ2Ó3€Dá!€Iâ:Ú@òEò
 BÚ-Ú/Ú1ÚOÚ0Ú/à€Hòòòò ò 1Ú.Ú.Ú.Ú.òò	ò	òòò!ô:ò*÷)ð )rg   rt   a  
def %NAME%(self, other):
    mpf, new, (prec, rounding) = self._ctxdata
    sval = self._mpf_
    if hasattr(other, '_mpf_'):
        tval = other._mpf_
        %WITH_MPF%
    ttype = type(other)
    if ttype in int_types:
        %WITH_INT%
    elif ttype is float:
        tval = from_float(other)
        %WITH_MPF%
    elif hasattr(other, '_mpc_'):
        tval = other._mpc_
        mpc = type(other)
        %WITH_MPC%
    elif ttype is complex:
        tval = from_float(other.real), from_float(other.imag)
        mpc = self.context.mpc
        %WITH_MPC%
    if isinstance(other, mpnumeric):
        return NotImplemented
    try:
        other = mpf.context.convert(other, strings=False)
    except TypeError:
        return NotImplemented
    return self.%NAME%(other)
z-; obj = new(mpf); obj._mpf_ = val; return objz-; obj = new(mpc); obj._mpc_ = val; return objzD
        try:
            val = mpf_pow(sval, tval, prec, rounding) zÈ
        except ComplexResult:
            if mpf.context.trap_complex:
                raise
            mpc = mpf.context.mpc
            val = mpc_pow((sval, fzero), (tval, fzero), prec, rounding) Ú
c                 óÜ   € \         pVP                  R V4      pVP                  RV4      pVP                  RV4      pVP                  RV 4      p/ p\        V\        4       V4       WP,          # )z
%WITH_INT%z
%WITH_MPC%z
%WITH_MPF%z%NAME%)Úmpf_binary_opÚreplacer   Úglobals)ÚnameÚwith_mpfÚwith_intÚwith_mpcÚcodeÚnps   &&&&  rd   Ú	binary_opr@    sa   € Ü€DØ�<‰<˜ hÓ/€DØ�<‰<˜ hÓ/€DØ�<‰<˜ hÓ/€DØ�<‰<˜ $Ó'€DØ	€BÜ	ˆ$”“	˜2ÔØ�8€Org   r  zreturn mpf_eq(sval, tval)z$return mpf_eq(sval, from_int(other))z3return (tval[1] == fzero) and mpf_eq(tval[0], sval)Ú__add__z)val = mpf_add(sval, tval, prec, rounding)z4val = mpf_add(sval, from_int(other), prec, rounding)z-val = mpc_add_mpf(tval, sval, prec, rounding)Ú__sub__z)val = mpf_sub(sval, tval, prec, rounding)z4val = mpf_sub(sval, from_int(other), prec, rounding)z2val = mpc_sub((sval, fzero), tval, prec, rounding)Ú__mul__z)val = mpf_mul(sval, tval, prec, rounding)z.val = mpf_mul_int(sval, other, prec, rounding)z-val = mpc_mul_mpf(tval, sval, prec, rounding)Ú__div__z)val = mpf_div(sval, tval, prec, rounding)z4val = mpf_div(sval, from_int(other), prec, rounding)z-val = mpc_mpf_div(sval, tval, prec, rounding)Ú__mod__z)val = mpf_mod(sval, tval, prec, rounding)z4val = mpf_mod(sval, from_int(other), prec, rounding)z+raise NotImplementedError("complex modulo")Ú__pow__z.val = mpf_pow_int(sval, other, prec, rounding)z2val = mpc_pow((sval, fzero), tval, prec, rounding)c                   óN   a € ] tR tRt o RtR	R ltR
R lt]R 4       tR t	Rt
V tR# )Ú	_constantiJ  zéRepresents a mathematical constant with dynamic precision.
When printed or used in an arithmetic operation, a constant
is converted to a regular mpf at the working precision. A
regular mpf can also be obtained using the operation +x.c                ót   € \         P                  V 4      pW$n        Wn        \	        \
        VR 4      Vn        V# ©Ú )Úobjectre   r:  r‘   Úgetattrr\   rm   )rb   r‘   r:  Údocnamer˜   s   &&&& rd   re   Ú_constant.__new__P  s/   € Ü�N‰N˜3ÓˆØŒØŒÜœM¨7°BÓ7ˆŒ	Øˆrg   Nc                óÔ   € V P                   P                  w  rEV'       g   TpV'       g   TpV'       d   \        V4      pV P                   P                  V P	                  W4      4      # r`   )rz   r{   r   r¦   r‘   )r­   rw   rx   ry   Úprec2Ú	rounding2s   &&&&  rd   Ú__call__Ú_constant.__call__W  sL   € ØŸ<™<×6Ñ6Ñˆß˜E�Tß I˜ß”{ 3Ó'�Ø�|‰|×$Ñ$ T§Y¡Y¨tÓ%>Ó?Ð?rg   c                óT   € V P                   P                  w  rV P                  W4      # r`   )rz   r{   r‘   )r­   rw   ry   s   &  rd   ru   Ú_constant._mpf_^  s"   € àŸ™×4Ñ4‰ˆØ�y‰y˜Ó(Ð(rg   c           	     ól   € R V P                   : RV P                  P                  V ! ^R7      4      : R2# )Ú<z: )rx   z~>)r:  rz   Únstrr¬   s   &rd   rÇ   Ú_constant.__repr__c  s$   � Ø"Ÿiœi¨¯©×):Ñ):¹4ÀB¼<Ö)HÐIÐIrg   rh   rJ  )NNN)ri   rj   rk   rl   rm   re   rS  r/  ru   rÇ   ro   rp   rq   s   @rd   rH  rH  J  s6   ø‡ € ñ@ô
ô@ð ñ)ó ð)÷Jð Jrg   rH  c                   ó  a € ] tR tRt o RtR.tR"R lt]! R 4      t]! R 4      t	R t
R tR	 tR
 tR tR tR tR tR tR t]tR t]R 4       tR tR tR t]t]t]t]tR tR tR t R t!R t"]t#R t$R t%R t&R t']!t(]&t)R#R  lt*R!t+V t,R# )$Ú_mpcig  z·
An mpc represents a complex number using a pair of mpf:s (one
for the real part and another for the imaginary part.) The mpc
class behaves fairly similarly to Python's complex type.
Ú_mpc_c                ó|  € \         P                  V 4      p\        V\        4      '       d   VP                  VP
                  r!M%\        VR 4      '       d   VP                  Vn        V# V P                  P                  V4      pV P                  P                  V4      pVP                  VP                  3Vn        V# ©r]  )rL  re   rŽ   rœ   r1  r2  r’   r]  rz   Úmpfru   )rb   r1  r2  rÆ   s   &&& rd   re   Ú_mpc.__new__p  s†   € Ü�N‰N˜3ÓˆÜ�dœM×*Ò*ØŸ™ D§I¡I‘$Ü�T˜7×#Ò#Ø—j‘jˆAŒGØˆHØ�{‰{�‰˜tÓ$ˆØ�{‰{�‰˜tÓ$ˆØ—:‘:˜tŸz™zÐ*ˆŒØˆrg   c                óZ   € V P                   P                  V P                  ^ ,          4      # ©é    ©rz   r¦   r]  r¬   s   &rd   r®   Ú_mpc.<lambda>|  ó   €  §¡×!6Ñ!6°t·z±zÀ!µ}Ô!Erg   c                óZ   € V P                   P                  V P                  ^,          4      # r±   re  r¬   s   &rd   r®   rf  }  rg  rg   c                ór   € \        V P                  ^ ,          4      \        V P                  ^,          4      3# rc  )r   r]  r¬   s   &rd   r»   Ú_mpc.__getstate__  s'   € Ü˜4Ÿ:™: a�=Ó)¬;°t·z±zÀ!µ}Ó+EÐEÐErg   c                óX   € \        V^ ,          4      \        V^,          4      3V n        R# ©rd  N)r   r]  r¾   s   &&rd   r¿   Ú_mpc.__setstate__‚  s    € Ü" 3 q¥6Ó*¬M¸#¸a½&Ó,AÐAˆŽ
rg   c                óò   € V P                   P                  '       d   \        V 4      # \        V P                  4      ^R p\        V P
                  4      ^R p\        V 4      P                  : RV: RV: R2# )é   z(real=z, imag=Ú)éÿÿÿÿ)rz   rÂ   rÃ   r•   r1  r2  r}   ri   )rÆ   ÚrÚis   &  rd   rÇ   Ú_mpc.__repr__…  sZ   € Ø�9‰9××ÐÜ�q“6ˆMÜ�—‘‹L˜˜2ÐˆÜ�—‘‹L˜˜2ÐˆÜ)-¨a«×)9Ô)9»1»aÐ@Ð@rg   c                ód   € R \        V P                  V P                  P                  4      ,          # )z(%s))r8   r]  rz   rÊ   rÅ   s   &rd   rË   Ú_mpc.__str__Œ  s"   € Øœ
 1§7¡7¨A¯I©I×,AÑ,AÓBÕBÐBrg   c                óf   € \        V P                  V P                  P                  ^,          R7      # rÙ   )r9   r]  rz   r{   rÅ   s   &rd   rß   Ú_mpc.__complex__�  s"   € Ü˜aŸg™g¨1¯9©9×+CÑ+CÀAÕ+FÔGÐGrg   c                ón   € V P                   w  rw  r4V! V4      p\        V P                  W44      Vn        V# r`   )rå   r;   r]  ræ   s   &     rd   rë   Ú_mpc.__pos__’  ré   rg   c                óª   € V P                   P                  w  r\        V P                   P                  4      p\	        V P
                  W4      Vn        V# r`   )rz   r{   r~   r`  r?   r]  ru   )rÆ   rw   ry   rˆ   s   &   rd   rç   Ú_mpc.__abs__˜  s<   € ØŸ™×1Ñ1‰ˆÜ�—	‘	—‘ÓˆÜ˜!Ÿ'™' 4Ó2ˆŒØˆrg   c                ón   € V P                   w  rw  r4V! V4      p\        V P                  W44      Vn        V# r`   )rå   r=   r]  ræ   s   &     rd   rî   Ú_mpc.__neg__ž  ré   rg   c                ón   € V P                   w  rw  r4V! V4      p\        V P                  W44      Vn        V# r`   )rå   r>   r]  ræ   s   &     rd   r3  Ú_mpc.conjugate¤  s3   € Ø%&§Z¡ZÑ"ˆÑ"�4Ù�‹HˆÜ §¡¨Ó8ˆŒØˆrg   c                ó,   € \        V P                  4      # r`   )r<   r]  rÅ   s   &rd   râ   Ú_mpc.__nonzero__ª  s   € Ü˜aŸg™gÓ&Ð&rg   c                ó,   € \        V P                  4      # r`   )r:   r]  rÅ   s   &rd   rÎ   Ú_mpc.__hash__¯  s   € Ü˜Ÿ™Ó Ð rg   c                ól   €  V P                   P                  V4      pV#   \         d
    \        u # i ; ir`   )rz   r“   r”   r    )rb   r–   Úys   && rd   Úmpc_convert_lhsÚ_mpc.mpc_convert_lhs²  s5   € ð	"Ø—‘×#Ñ# AÓ&ˆAØˆHøÜô 	"Ü!Ò!ð	"ús   ‚ Ÿ3²3c                ó  € \        VR 4      '       g6   \        V\        4      '       d   R# V P                  V4      pV\        J d   V# V P
                  VP
                  8H  ;'       d    V P                  VP                  8H  # )r]  F)r’   rŽ   rÃ   r‡  r    r1  r2  rô   s   &&rd   r  Ú_mpc.__eq__º  sd   € Ü�q˜'×"Ò"Ü˜!œS×!Ò!ÙØ×!Ñ! !Ó$ˆAØ”NÓ"Ø�Ø�v‰v˜Ÿ™Ñ×4Ð4 A§F¡F¨a¯f©fÑ$4Ð4rg   c                óJ   € V P                  V4      pV\        J d   V# V'       * # r`   r  )rÆ   r—   r™   s   && rd   r  Ú_mpc.__ne__Ã  r	  rg   c                 ó   € \        R 4      h)z3no ordering relation is defined for complex numbers)r”   )r*  s   *rd   Ú_compareÚ_mpc._compareÉ  s   € ÜÐMÓNÐNrg   c                óf  € V P                   w  r#w  rE\        VR 4      '       g`   V P                  V4      pV\        J d   V# \        VR4      '       d1   V! V4      p\	        V P
                  VP                  WE4      Vn        V# V! V4      p\        V P
                  VP
                  WE4      Vn        V# ©r]  ru   )rå   r’   r‡  r    rA   r]  ru   r@   r  s   &&     rd   rA  Ú_mpc.__add__Ñ  ó–   € Ø%&§Z¡ZÑ"ˆÑ"�4Ü�q˜'×"Ò"Ø×!Ñ! !Ó$ˆAØ”NÓ"Ø�Ü�q˜'×"Ò"Ù˜“H�Ü% a§g¡g¨q¯w©w¸ÓG�”Ø�Ù�‹HˆÜ˜!Ÿ'™' 1§7¡7¨DÓ;ˆŒØˆrg   c                óf  € V P                   w  r#w  rE\        VR 4      '       g`   V P                  V4      pV\        J d   V# \        VR4      '       d1   V! V4      p\	        V P
                  VP                  WE4      Vn        V# V! V4      p\        V P
                  VP
                  WE4      Vn        V# r‘  )rå   r’   r‡  r    rC   r]  ru   rB   r  s   &&     rd   rB  Ú_mpc.__sub__ß  r“  rg   c                ó   € V P                   w  r#w  rE\        VR 4      '       g­   \        V\        4      '       d'   V! V4      p\	        V P
                  WV4      Vn        V# V P                  V4      pV\        J d   V# \        VR4      '       d1   V! V4      p\        V P
                  VP                  WE4      Vn        V# V P                  V4      pV! V4      p\        V P
                  VP
                  WE4      Vn        V# r‘  )rå   r’   rŽ   r   rF   r]  r‡  r    rE   ru   rD   r  s   &&     rd   rC  Ú_mpc.__mul__í  sÕ   € Ø%&§Z¡ZÑ"ˆÑ"�4Ü�q˜'×"Ò"Ü˜!œY×'Ò'Ù˜“H�Ü% a§g¡g¨q¸ÓA�”Ø�Ø×!Ñ! !Ó$ˆAØ”NÓ"Ø�Ü�q˜'×"Ò"Ù˜“H�Ü% a§g¡g¨q¯w©w¸ÓG�”Ø�Ø×!Ñ! !Ó$ˆAÙ�‹HˆÜ˜!Ÿ'™' 1§7¡7¨DÓ;ˆŒØˆrg   c                óf  € V P                   w  r#w  rE\        VR 4      '       g`   V P                  V4      pV\        J d   V# \        VR4      '       d1   V! V4      p\	        V P
                  VP                  WE4      Vn        V# V! V4      p\        V P
                  VP
                  WE4      Vn        V# r‘  )rå   r’   r‡  r    rH   r]  ru   rG   r  s   &&     rd   rD  Ú_mpc.__div__   r“  rg   c                óª  € V P                   w  r#w  rE\        V\        4      '       d'   V! V4      p\        V P                  WV4      Vn        V# V P                  V4      pV\        J d   V# V! V4      p\        VR 4      '       d)   \        V P                  VP                  WE4      Vn        V# \        V P                  VP                  WE4      Vn        V# r«   )rå   rŽ   r   rK   r]  r‡  r    r’   rJ   ru   rI   r  s   &&     rd   rF  Ú_mpc.__pow__  s³   € Ø%&§Z¡ZÑ"ˆÑ"�4Ü�aœ×#Ò#Ù�C“ˆAÜ! !§'¡'¨1°HÓ=ˆAŒGØˆHØ×Ñ˜aÓ ˆØ”ÓØˆHÙ�‹HˆÜ�1�g×ÒÜ! !§'¡'¨1¯7©7°DÓCˆAŒGð ˆô ˜aŸg™g q§w¡w°Ó?ˆAŒGØˆrg   c                óL   € V P                  V4      pV\        J d   V# W,
          # r`   ©r‡  r    rô   s   &&rd   r  Ú_mpc.__rsub__   r  rg   c                óæ   € V P                   w  r#w  rE\        V\        4      '       d'   V! V4      p\        V P                  WV4      Vn        V# V P                  V4      pV\        J d   V# W,          # r`   )rå   rŽ   r   rF   r]  r‡  r    r  s   &&     rd   Ú__rmul__Ú_mpc.__rmul__&  sf   € Ø%&§Z¡ZÑ"ˆÑ"�4Ü�aœ×#Ò#Ù�C“ˆAÜ! !§'¡'¨1°HÓ=ˆAŒGØˆHØ×Ñ˜aÓ ˆØ”ÓØˆHØ�uˆrg   c                óL   € V P                  V4      pV\        J d   V# W,          # r`   r�  rô   s   &&rd   r  Ú_mpc.__rdiv__1  r  rg   c                óL   € V P                  V4      pV\        J d   V# W,          # r`   r�  rô   s   &&rd   r  Ú_mpc.__rpow__7  r  rg   Nc                ó:   € V P                   P                  WW#4      # r`   r  r   s   &&&&rd   r#  Ú_mpc.ae@  r%  rg   r_  )rd  rd  r-  )-ri   rj   rk   rl   rm   rn   re   r/  r1  r2  r»   r¿   rÇ   rË   rß   rë   rç   rî   r3  râ   r4  rÎ   r.  r‡  r  r  rŽ  rü   rÿ   r  rA  rB  rC  rD  rF  Ú__radd__r  r   r  r  Ú__truediv__Ú__rtruediv__r#  ro   rp   rq   s   @rd   r\  r\  g  s÷   ø‡ € ñð �	€Iô
ñ ÑEÓF€DÙÑEÓF€DòFòBòAòCòHòòòòò'ð €Hò!ð ñ"ó ð"ò5òòOð €FØ€FØ€FØ€Fòòòò&òð  €Hòò	òòð €KØ€L÷:ò :rg   r\  c                   óØ   a € ] tR tRt o R tR tR tR tR tR t	]
! R ]4      t]
! R	 ]	4      tRR
 ltR tR tR tR tRR ltRR ltRR ltRR lt]R 4       tR tR tR tRtV tR# )ÚPythonMPContextiG  c                ó  € ^5\         .V n        \        R\        3/ 4      V n        \        R\
        3/ 4      V n        V P                  \        V P                  .V P                  n        V P                  \        V P                  .V P                  n        W P                  n	        W P                  n	        \        R\        3/ 4      V n        V P                  \        V P                  .V P                  n        W P                  n	        R# )é5   r`  r�   r�   N)r   r{   r}   rt   r`  r\  r�   r~   rå   rz   rH  r�   ©Úctxs   &rd   Ú__init__ÚPythonMPContext.__init__I  s¸   € Ø ¤-Ð0ˆÔÜ�uœt˜g rÓ*ˆŒÜ�uœt˜g rÓ*ˆŒØŸG™G¤S¨#×*<Ñ*<Ð=ˆ�‰ÔØŸG™G¤S¨#×*<Ñ*<Ð=ˆ�‰ÔØ�‰ŒØ�‰ŒÜ˜J¬¨°bÓ9ˆŒØ!$§¡¬#¨s×/AÑ/AÐ Bˆ�‰ÔØ"�‰Örg   c                ó<   € \        V P                  4      pWn        V# r`   )r~   r`  ru   ©r°  rˆ   r˜   s   && rd   r¦   ÚPythonMPContext.make_mpfU  ó   € Ü�—‘‹LˆØŒØˆrg   c                ó<   € \        V P                  4      pWn        V# r`   )r~   r�   r]  r´  s   && rd   Úmake_mpcÚPythonMPContext.make_mpcZ  r¶  rg   c                óN   € ^5;V n         V P                  ^ &   ^V n        RV n        R# )r®  FN)Ú_precr{   Ú_dpsÚtrap_complexr¯  s   &rd   ÚdefaultÚPythonMPContext.default_  s(   € Ø,.Ð.ˆŒ	�C×&Ñ& qÑ)ØˆŒØ ˆÖrg   c                óx   € \        ^\        V4      4      ;V n        V P                  ^ &   \	        V4      V n        R# )r   N)ÚmaxrÑ   r»  r{   r   r¼  ©r°  Úns   &&rd   Ú	_set_precÚPythonMPContext._set_precd  s.   € Ü,/°´3°q³6«NÐ:ˆŒ	�C×&Ñ& qÑ)Ü˜q“>ˆŽrg   c                óx   € \        V4      ;V n        V P                  ^ &   \        ^\	        V4      4      V n        R# rl  )r   r»  r{   rÁ  rÑ   r¼  rÂ  s   &&rd   Ú_set_dpsÚPythonMPContext._set_dpsh  s.   € Ü,7¸«NÐ:ˆŒ	�C×&Ñ& qÑ)Ü�qœ#˜a›&“>ˆŽrg   c                ó   € V P                   # r`   )r»  r¯  s   &rd   r®   ÚPythonMPContext.<lambda>l  s   €  §	¢	rg   c                ó   € V P                   # r`   )r¼  r¯  s   &rd   r®   rÊ  m  s   € ˜sŸxšxrg   c                ó²  € \        V4      V P                  9   d   V# \        V\        4      '       d   V P	                  \        V4      4      # \        V\        4      '       d   V P	                  \        V4      4      # \        V\        4      '       d:   V P                  \        VP                  4      \        VP                  4      34      # \        V4      P                  R8X  d   V P                  V4      # \        V\        P                  4      '       d>   \         P"                  ! \%        VP&                  4      \%        VP(                  4      4      pV P*                  w  r4\        V\         P"                  4      '       d*   VP,                  w  rVV P	                  \/        WVV4      4      # V'       d5   \        V\0        4      '       d    \3        WV4      pV P	                  V4      # \7        VR4      '       d   V P	                  VP8                  4      # \7        VR4      '       d   V P                  VP:                  4      # \7        VR4      '       d!   V P=                  VP?                  W44      4      # \        V4      P                  R8X  d   V P	                  \A        WV4      4      # V PC                  W4      #     ELj; i  \4         d     Lçi ; i    L.; i)a3  
Converts *x* to an ``mpf`` or ``mpc``. If *x* is of type ``mpf``,
``mpc``, ``int``, ``float``, ``complex``, the conversion
will be performed losslessly.

If *x* is a string, the result will be rounded to the present
working precision. Strings representing fractions or complex
numbers are permitted.

    >>> from mpmath import *
    >>> mp.dps = 15; mp.pretty = False
    >>> mpmathify(3.5)
    mpf('3.5')
    >>> mpmathify('2.1')
    mpf('2.1000000000000001')
    >>> mpmathify('3/4')
    mpf('0.75')
    >>> mpmathify('2+3j')
    mpc(real='2.0', imag='3.0')

Únumpyru   r]  r‹   Údecimal)"r}   ÚtypesrŽ   r   r¦   r   r�   r   rÞ   r¸  r1  r2  rj   Ú	npconvertÚnumbersÚRationalr[   rž   rÑ   Ú	numeratorÚdenominatorr{   rŸ   r   r   r   r�   r’   ru   r]  r“   r‹   r   Ú_convert_fallback)r°  r–   Ústringsrw   ry   r¡   r¢   ru   s   &&&     rd   r“   ÚPythonMPContext.converto  s  € ô, �‹7�c—i‘iÔ¨ Ü�aœ×#Ò#¨C¯L©L¼À!»Ó,EÐ%EÜ�aœ×Ò¨¯©´ZÀ³]Ó(CÐ!CÜ�aœ×!Ò!Ø—<‘<¤¨A¯F©FÓ!3´ZÀÇÁÓ5GÐ HÓIÐIÜ�‹7×Ñ Ô(°·±¸qÓ1AÐ*AÜ�aœ×)Ñ)×*Ò*Ü—\’\¤# a§k¡kÓ"2´C¸¿¹Ó4FÓG�à×+Ñ+‰ˆÜ�aœŸ™×&Ò&Ø—7‘7‰DˆAØ—<‘<¤¨a°DÓ 9Ó:Ð:ß”z !¤Z×0Ò0ðÜ  ¨(Ó3�Ø—|‘| EÓ*Ð*ô �1�g×Ò s§|¡|°A·G±GÓ'<Ð <Ü�1�g×Ò s§|¡|°A·G±GÓ'<Ð <Ü�1�j×!Ò!Ø—;‘;˜qŸz™z¨$Ó9Ó:Ð:Ü�‹7×Ñ Ô*ØŸ™¤\°!¸8Ó%DÓEÐEà×$Ñ$ QÓ0Ð0øð% ’Dûô ô Ùðûð ‘Dús*   Ä=J9 Ç
K ÊK Ê9J>ËKËKËKc                óÎ  € ^ RI p\        WP                  4      '       d$   V P                  \	        \        V4      4      4      # \        WP                  4      '       d   V P                  \        V4      4      # \        WP                  4      '       d:   V P                  \        VP                  4      \        VP                  4      34      # \        R\        V4      ,           4      h)zF
Converts *x* to an ``mpf`` or ``mpc``. *x* should be a numpy
scalar.
Nr�   )rÍ  rŽ   Úintegerr¦   r   rÑ   Úfloatingr   Úcomplexfloatingr¸  r1  r2  r”   r•   )r°  r–   r?  s   && rd   rÐ  ÚPythonMPContext.npconvert¡  sš   € ó
 	Ü�aŸ™×$Ò$¨S¯\©\¼(Ä3ÀqÃ6Ó:JÓ-KÐ&KÜ�aŸ™×%Ò%¨c¯l©l¼<È»?Ó.KÐ'KÜ�a×+Ñ+×,Ò,Ø—<‘<¤¨a¯f©fÓ!5´|ÀAÇFÁFÓ7KÐ LÓMÐMÜÐ1´D¸³GÕ;Ó<Ð<rg   c                ó¨  € \        VR4      '       d   VP                  \        8H  # \        VR4      '       d   \        VP                  9   # \	        V\
        4      '       g!   \	        V\        P                  4      '       d   R# V P                  V4      p\        VR4      '       g   \        VR4      '       d   V P                  V4      # \        R4      h)a:  
Return *True* if *x* is a NaN (not-a-number), or for a complex
number, whether either the real or complex part is NaN;
otherwise return *False*::

    >>> from mpmath import *
    >>> isnan(3.14)
    False
    >>> isnan(nan)
    True
    >>> isnan(mpc(3.14,2.72))
    False
    >>> isnan(mpc(3.14,nan))
    True

ru   r]  Fzisnan() needs a number as input)r’   ru   r!   r]  rŽ   r   r[   rž   r“   Úisnanr”   )r°  r–   s   &&rd   rÞ  ÚPythonMPContext.isnan­  sš   € ô" �1�g×ÒØ—7‘7œd‘?Ð"Ü�1�g×ÒÜ˜1Ÿ7™7‘?Ð"Ü�aœ×#Ò#¤z°!´X·\±\×'BÒ'BÙØ�K‰K˜‹NˆÜ�1�g×Ò¤'¨!¨W×"5Ò"5Ø—9‘9˜Q“<ÐÜÐ9Ó:Ð:rg   c                óö  € \        VR4      '       d   VP                  \        \        39   # \        VR4      '       d5   VP                  w  r#V\        \        39   ;'       g    V\        \        39   # \        V\        4      '       g!   \        V\        P                  4      '       d   R# V P                  V4      p\        VR4      '       g   \        VR4      '       d   V P                  V4      # \        R4      h)a+  
Return *True* if the absolute value of *x* is infinite;
otherwise return *False*::

    >>> from mpmath import *
    >>> isinf(inf)
    True
    >>> isinf(-inf)
    True
    >>> isinf(3)
    False
    >>> isinf(3+4j)
    False
    >>> isinf(mpc(3,inf))
    True
    >>> isinf(mpc(inf,3))
    True

ru   r]  Fzisinf() needs a number as input)r’   ru   r   r    r]  rŽ   r   r[   rž   r“   Úisinfr”   )r°  r–   ÚreÚims   &&  rd   rá  ÚPythonMPContext.isinfÉ  s¼   € ô( �1�g×ÒØ—7‘7œt¤U˜mÑ+Ð+Ü�1�g×ÒØ—W‘W‰FˆBØœ$¤˜Ñ&×=Ð=¨"´´u°Ñ*=Ð=Ü�aœ×#Ò#¤z°!´X·\±\×'BÒ'BÙØ�K‰K˜‹NˆÜ�1�g×Ò¤'¨!¨W×"5Ò"5Ø—9‘9˜Q“<ÐÜÐ9Ó:Ð:rg   c                óV  € \        VR4      '       d   \        VP                  ^,          4      # \        VR4      '       dY   VP                  w  r#\        V^,          4      p\        V^,          4      pV\        8X  d   V# V\        8X  d   V# T;'       d    T# \        V\        4      '       g!   \        V\        P                  4      '       d   \        V4      # V P                  V4      p\        VR4      '       g   \        VR4      '       d   V P                  V4      # \        R4      h)a  
Determine whether *x* is "normal" in the sense of floating-point
representation; that is, return *False* if *x* is zero, an
infinity or NaN; otherwise return *True*. By extension, a
complex number *x* is considered "normal" if its magnitude is
normal::

    >>> from mpmath import *
    >>> isnormal(3)
    True
    >>> isnormal(0)
    False
    >>> isnormal(inf); isnormal(-inf); isnormal(nan)
    False
    False
    False
    >>> isnormal(0+0j)
    False
    >>> isnormal(0+3j)
    True
    >>> isnormal(mpc(2,nan))
    False
ru   r]  z"isnormal() needs a number as input)r’   Úboolru   r]  r   rŽ   r   r[   rž   r“   Úisnormalr”   )r°  r–   râ  rã  Ú	re_normalÚ	im_normals   &&    rd   rç  ÚPythonMPContext.isnormalé  sâ   € ô0 �1�g×ÒÜ˜Ÿ™ �
Ó#Ð#Ü�1�g×ÒØ—W‘W‰FˆBÜ˜R �U›ˆIÜ˜R �U›ˆIØ”UŒ{ 9Ð,Ø”UŒ{ 9Ð,Ø×*Ð* Ð*Ü�aœ×#Ò#¤z°!´X·\±\×'BÒ'BÜ˜“7ˆNØ�K‰K˜‹NˆÜ�1�g×Ò¤'¨!¨W×"5Ò"5Ø—<‘< “?Ð"ÜÐ<Ó=Ð=rg   c                ó  € \        V\        4      '       d   R# \        VR4      '       d;   VP                  ;w  r4rVp\	        T;'       d    V^ 8¬  ;'       g
    V\
        8H  4      # \        VR4      '       d�   VP                  w  r‰Vw  r«rÍV	w  rïppT;'       d    V^ 8¬  ;'       g
    V\
        8H  pV'       d-   T;'       d    V^ 8¬  ;'       g
    V	\
        8H  pT;'       d    T# T;'       d
    V	\
        8H  # \        V\        P                  4      '       d   VP                  w  ppVV,          ^ 8H  # V P                  V4      p\        VR4      '       g   \        VR4      '       d   V P                  W4      # \        R4      h)ar  
Return *True* if *x* is integer-valued; otherwise return
*False*::

    >>> from mpmath import *
    >>> isint(3)
    True
    >>> isint(mpf(3))
    True
    >>> isint(3.2)
    False
    >>> isint(inf)
    False

Optionally, Gaussian integers can be checked for::

    >>> isint(3+0j)
    True
    >>> isint(3+2j)
    False
    >>> isint(3+2j, gaussian=True)
    True

Tru   r]  zisint() needs a number as input)rŽ   r   r’   ru   ræ  r   r]  r[   rž   rŸ   r“   Úisintr”   )r°  r–   Úgaussianr„   r…   r†   r‡   Úxvalrâ  rã  ÚrsignÚrmanÚrexpÚrbcÚisignÚimanÚiexpÚibcÚre_isintÚim_isintr¡   r¢   s   &&&                   rd   rì  ÚPythonMPContext.isint  sO  € ô2 �aœ×#Ò#ÙÜ�1�g×ÒØ()¯©Ð/ÑˆD�s Ü˜×)Ð) ¨¡×;Ð;¨d´e©mÓ<Ð<Ü�1�g×ÒØ—W‘W‰FˆBØ%'Ñ"ˆE˜Ø%'Ñ"ˆE˜˜sØ×*Ð* ¨¡×:Ð:¨r´U©{ˆHßØ ×.Ð. T¨Q¡Y×>Ð>°2¼±;�Ø×,Ð, HÐ,Ø×+Ð+ ¤e¡Ð+Ü�aœŸ™×&Ò&Ø—7‘7‰DˆAˆqØ�q•5˜A‘:ÐØ�K‰K˜‹NˆÜ�1�g×Ò¤'¨!¨W×"5Ò"5Ø—9‘9˜QÓ)Ð)ÜÐ9Ó:Ð:rg   c                ó  € V P                   w  rE. p. pV EF¬  p^ ;rš\        VR4      '       d   VP                  p	Mx\        VR4      '       d   VP                  w  ršMWV P	                  V4      p\        VR4      '       d   VP                  p	M'\        VR4      '       d   VP                  w  ršM\
        hV
'       dÏ   V'       d{   V'       d7   VP                  \        W™4      4       VP                  \        Wª4      4       Kì  \        Wš3^V^
,           4      w  ršVP                  V	4       VP                  V
4       EK(  V'       d    VP                  \        Wš3V4      4       EKO  VP                  V	4       VP                  V
4       EKt  V'       d   \        W™4      p	MV'       d   \        V	4      p	VP                  V	4       EK¯  	  \        WdWR4      pV'       d    V P                  V\        WtV4      34      pV# V P                  V4      pV# )aø  
Calculates a sum containing a finite number of terms (for infinite
series, see :func:`~mpmath.nsum`). The terms will be converted to
mpmath numbers. For len(terms) > 2, this function is generally
faster and produces more accurate results than the builtin
Python function :func:`sum`.

    >>> from mpmath import *
    >>> mp.dps = 15; mp.pretty = False
    >>> fsum([1, 2, 0.5, 7])
    mpf('10.5')

With squared=True each term is squared, and with absolute=True
the absolute value of each term is used.
ru   r]  )r{   r’   ru   r]  r“   ra   Úappendr'   rK   r?   r"   r5   r¸  r¦   )r°  ÚtermsÚabsoluteÚsquaredrw   rÚ   r1  r2  ÚtermÚrevalÚimvalrÆ   s   &&&&        rd   ÚfsumÚPythonMPContext.fsum@  s—  € ð  ×&Ñ&‰	ˆØˆØˆÜˆDØÐˆEÜ�t˜W×%Ò%ØŸ
™
‘Ü˜˜w×'Ò'Ø#Ÿz™z‘��uà—{‘{ 4Ó(�Ü˜4 ×)Ò)Ø ŸJ™J‘EÜ˜T 7×+Ò+Ø#'§:¡:‘L�E˜5ä-Ð-ßßßØŸ™¤G¨EÓ$8Ô9ØŸ™¤G¨EÓ$8Ö9ä'2°E°=ÀÀ4ÈÅ7Ó'K™˜ØŸ™ EÔ*ØŸ™ E×*ßØ—K‘K¤¨¨°tÓ <×=à—K‘K Ô&Ø—K‘K ×&çÜ# EÓ1‘EßÜ# E›N�EØ—‘˜E×"ñC ôD �D Ó.ˆßØ—‘˜a¤¨°SÓ!9Ð:Ó;ˆAð ˆð —‘˜Q“ˆAØˆrg   Nc           	     ó¢  € Ve   \        W4      pV P                  w  rE. p. p\        pV P                  V P                  3p	V EFD  w  r«\        V
4      V	9  d   V P                  V
4      p
\        V4      V	9  d   V P                  V4      pV! V
R4      pV! VR4      pV'       d:   V'       d2   VP                  \        V
P                  VP                  4      4       K›  V! V
R4      pV! VR4      pV'       dp   V'       dh   V
P                  pVP                  w  ppV'       d   \        V4      pVP                  \        VV4      4       VP                  \        VV4      4       EK$  V'       d]   V'       dU   V
P                  w  ppVP                  pVP                  \        VV4      4       VP                  \        VV4      4       EKˆ  V'       d²   V'       dª   V
P                  w  ppVP                  w  ppV'       d   \        V4      pVP                  \        VV4      4       VP                  \        \        VV4      4      4       VP                  \        VV4      4       VP                  \        VV4      4       EKA  \        h	  \        WdV4      pV'       d    V P                  V\        WtV4      34      pV# V P                  V4      pV# )aN  
Computes the dot product of the iterables `A` and `B`,

.. math ::

    \sum_{k=0} A_k B_k.

Alternatively, :func:`~mpmath.fdot` accepts a single iterable of pairs.
In other words, ``fdot(A,B)`` and ``fdot(zip(A,B))`` are equivalent.
The elements are automatically converted to mpmath numbers.

With ``conjugate=True``, the elements in the second vector
will be conjugated:

.. math ::

    \sum_{k=0} A_k \overline{B_k}

**Examples**

    >>> from mpmath import *
    >>> mp.dps = 15; mp.pretty = False
    >>> A = [2, 1.5, 3]
    >>> B = [1, -1, 2]
    >>> fdot(A, B)
    mpf('6.5')
    >>> list(zip(A, B))
    [(2, 1), (1.5, -1), (3, 2)]
    >>> fdot(_)
    mpf('6.5')
    >>> A = [2, 1.5, 3j]
    >>> B = [1+j, 3, -1-j]
    >>> fdot(A, B)
    mpc(real='9.5', imag='-1.0')
    >>> fdot(A, B, conjugate=True)
    mpc(real='3.5', imag='-5.0')

ru   r]  )Úzipr{   r’   r`  r�   r}   r“   rû  r'   ru   r]  r$   ra   r5   r¸  r¦   )r°  ÚAÚBr3  rw   rÚ   r1  r2  Úhasattr_rÏ  r˜   r™   Úa_realÚb_realÚ	a_complexÚ	b_complexÚavalÚbreÚbimÚareÚaimÚbvalrÆ   s   &&&&                   rd   ÚfdotÚPythonMPContext.fdot|  s(  € ðN Š=Ü�A“	ˆAØ×&Ñ&‰	ˆØˆØˆÜˆØ—‘˜#Ÿ'™'Ð"ˆÜ‰DˆAÜ�A‹w˜eÔ#¨¯©°Q« QÜ�A‹w˜eÔ#¨¯©°Q« QÙ˜a Ó)ˆFÙ˜a Ó)ˆFßŸ&Ø—‘œG A§G¡G¨Q¯W©WÓ5Ô6ÙÙ   GÓ,ˆIÙ   GÓ,ˆIßŸ)Ø—w‘w�ØŸ7™7‘��SßÜ! #›,�CØ—‘œG D¨#Ó.Ô/Ø—‘œG D¨#Ó.×/ßŸIØŸ7™7‘��SØ—w‘w�Ø—‘œG C¨Ó.Ô/Ø—‘œG C¨Ó.×/ßŸyàŸ7™7‘��SØŸ7™7‘��SßÜ! #›,�CØ—‘œG C¨Ó-Ô.Ø—‘œG¤G¨C°Ó$5Ó6Ô7Ø—‘œG C¨Ó-Ô.Ø—‘œG C¨Ó-×.ä)Ð)ñC ôD �D Ó$ˆßØ—‘˜a¤¨°SÓ!9Ð:Ó;ˆAð ˆð —‘˜Q“ˆAØˆrg   c                óž   a aaa€ V VVV3R lpSP                   R,          o\        P                  P                  SRV,          4      Vn        V# )a  
Given a low-level mpf_ function, and optionally similar functions
for mpc_ and mpi_, defines the function as a context method.

It is assumed that the return type is the same as that of
the input; the exception is that propagation from mpf to mpc is possible
by raising ComplexResult.

c                 ó   <€ \        V 4      SP                  9  d   SP                  V 4      p SP                  w  r#V'       d>   VP	                  R V4      pRV9   d   \        VR,          4      pVP	                  RV4      p\        V R4      '       d$    SP                  S! V P                  W#4      4      # \        V R4      '       d#   SP                  S! V P                  W#4      4      # \        S: R\        V 4      : 24      h  \         d?    SP                  '       d   h SP                  S! T P                  \        3Y#4      4      u # i ; i)rw   rx   ry   ru   r]  z of a )r}   rÏ  r“   r{   r|   r   r’   r¦   ru   r   r½  r¸  r   r]  ra   )r–   rƒ   rw   ry   r°  Úmpc_fÚmpf_fr:  s   &,  €€€€rd   ÚfÚ/PythonMPContext._wrap_libmp_function.<locals>.fÝ  s  ø€ Ü�A‹w˜cŸi™iÔ'Ø—K‘K “N�Ø ×/Ñ/‰NˆDßØ—z‘z &¨$Ó/�Ø˜F”?Ü& v¨e¥}Ó5�DØ!Ÿ:™: j°(Ó;�Ü�q˜'×"Ò"ðQØŸ<™<©¨a¯g©g°tÓ(FÓGÐGô ˜˜G×$Ò$Ø—|‘|¡E¨!¯'©'°4Ó$BÓCÐCÜ%³d¼DÀ½GÐ&DÓEÐEøô %ô Qà×'×'Ð'ØØŸ<™<©¨q¯w©w¼Ð.>ÀÓ(OÓPÒPð	Qús   Â!D ÄEÄ!)EÅE:ro  NNzComputes the %s of x)ri   r\   Ú__dict__r|   rm   )r°  r  r  Úmpi_fÚdocr  r:  s   fff&& @rd   Ú_wrap_libmp_functionÚ$PythonMPContext._wrap_libmp_functionÓ  sD   û€ ÷	Fð 	Fð( �~‰~˜bÕ!ˆÜ!×*Ñ*×.Ñ.¨tÐ5KÈcÕ5QÓRˆŒ	Øˆrg   c                ó    a€ V'       d   V3R  lpMSp\         P                  P                  VSP                  4      Vn        \	        WV4       R# )c                 óÞ   <€ V P                   pV Uu. uF
  qC! V4      NK  	  ppV P                  p V ;P                  ^
,          un        S! V .VO5/ VB pWPn        V5# u upi   YPn        i ; i)é
   )r“   rw   )r°  r*  rƒ   r“   r˜   rw   Úretvalr  s   &*,    €rd   Ú	f_wrappedÚ0PythonMPContext._wrap_specfun.<locals>.f_wrappedù  sm   ø€ ØŸ+™+�Ù,0Ó1©D q˜ ž
©D�Ð1Ø—x‘x�ð$Ø—H’H •N•HÙ˜sÐ4 TÒ4¨VÑ4�Fà#”HØ�w�ùò 2øð  $•Hús   ’A±%A$ Á$A,N)r\   r  r|   rm   Úsetattr)rb   r:  r  Úwrapr$  s   &&f& rd   Ú_wrap_specfunÚPythonMPContext._wrap_specfunö  s;   ø€ çö	ð ˆIÜ)×2Ñ2×6Ñ6°t¸Q¿Y¹YÓGˆ	ÔÜ�˜9Ö%rg   c                ó,  € \        VR 4      '       d    VP                  w  r#V\        8w  d   VR3# EMY\        VR4      '       d   VP                  pEM9\	        V4      \
        9   d   \        V4      R3# Rp\        V\        4      '       d   Vw  rEMg\        VR4      '       d   VP                  w  rEMF\        V\        4      '       d1   RV9   d*   VP                  R4      w  rE\        V4      p\        V4      pVe-   VX,          '       g   WE,          R3# V P                  WE4      R3# V P                  V4      p\        VR 4      '       d   VP                  w  r#V\        8w  d   VR3# M#\        VR4      '       d   VP                  pMVR3# Vw  rgr‰V'       dq   VR
8¼  dU   V'       d   V) pV^ 8¼  d   \        V4      V,          R3# VR
8¼  d(   \        V4      ^V) ,          rTV P                  WE4      R3# V P                  V4      pVR	3# V'       g   R# VR3# )r]  ÚCru   ÚZNrŸ   Ú/ÚQÚUÚRéüÿÿÿ)rd  r,  )r’   r]  r   ru   r}   r   rÑ   rŽ   r   rŸ   r   Úsplitrž   r“   r¦   )
r°  r–   rˆ   rã  r¡   r¢   r„   r…   r†   r‡   s
   &&        rd   Ú_convert_paramÚPythonMPContext._convert_param  sØ  € Ü�1�g×ÒØ—G‘G‰EˆAØ”UŒ{Ø˜#�v�ñ ä�Q˜× Ò Ø—‘ŠAä�A‹wœ)Ô#Ü˜1“v˜s�{Ð"ØˆAÜ˜!œU×#Ò#Ø‘��1Ü˜˜G×$Ò$Ø—w‘w‘��1Ü˜Aœz×*Ò*¨s°a¬xØ—w‘w˜s“|‘�Ü˜“F�Ü˜“F�ØŠ}Ø˜1—u”uØ�6 3˜;Ð&Ø—w‘w˜q“| SÐ(Ð(Ø—‘˜A“ˆAÜ�q˜'×"Ò"ØŸ™‘�Øœ”;Ø˜c˜6�Mð ä˜˜G×$Ò$Ø—G‘G‘à˜#�v�ØÑˆ�3ßØ�bŒyßØ˜$�CØ˜!”8Ü˜s›8 s�?¨CÐ/Ð/Ø˜"”9Ü˜s›8 a¨3¨$¥i�qØŸ7™7 1›<¨Ð,Ð,Ø—‘˜Q“ˆAØ�c�6ˆMßØˆMà�c�6ˆMrg   c                ó¶   € Vw  r#rEV'       d	   WE,           # V\         8X  d   V P                  # V\        8X  g   V\        8X  d   V P                  # V P
                  # r`   )r   Úninfr   r    ÚinfÚnan)r°  r–   r„   r…   r†   r‡   s   &&    rd   Ú_mpf_magÚPythonMPContext._mpf_mag9  sE   € ØÑˆ�3ßØ•6ˆMØ”Œ:Ø—8‘8ˆOØ”Œ9˜œUœ
Ø—7‘7ˆNØ�w‰wˆrg   c                óf  € \        VR4      '       d   V P                  VP                  4      # \        VR4      '       dx   VP                  w  r#V\        8X  d   V P                  V4      # V\        8X  d   V P                  V4      # ^\        V P                  V4      V P                  V4      4      ,           # \        V\        4      '       d)   V'       d   \        \        V4      4      # V P                  # \        V\        P                  4      '       dN   VP                  w  rEV'       d,   ^\        \        V4      4      ,           \        V4      ,
          # V P                  # V P                  V4      p\        VR4      '       g   \        VR4      '       d   V P                  V4      # \!        R4      h)a/  
Quick logarithmic magnitude estimate of a number. Returns an
integer or infinity `m` such that `|x| <= 2^m`. It is not
guaranteed that `m` is an optimal bound, but it will never
be too large by more than 2 (and probably not more than 1).

**Examples**

    >>> from mpmath import *
    >>> mp.pretty = True
    >>> mag(10), mag(10.0), mag(mpf(10)), int(ceil(log(10,2)))
    (4, 4, 4, 4)
    >>> mag(10j), mag(10+10j)
    (4, 5)
    >>> mag(0.01), int(ceil(log(0.01,2)))
    (-6, -6)
    >>> mag(0), mag(inf), mag(-inf), mag(nan)
    (-inf, +inf, +inf, nan)

ru   r]  zrequires an mpf/mpc)r’   r9  ru   r]  r   rÁ  rŽ   r   r6   Úabsr6  r[   rž   rŸ   r“   Úmagr”   )r°  r–   rr  rs  r¡   r¢   s   &&    rd   r=  ÚPythonMPContext.magC  s5  € ô* �1�g×ÒØ—<‘< §¡Ó(Ð(Ü�Q˜× Ò Ø—7‘7‰DˆAØ”EŒzØ—|‘| A“Ð&Ø”EŒzØ—|‘| A“Ð&Ø”S˜Ÿ™ a›¨#¯,©,°q«/Ó:Õ:Ð:Ü˜œ9×%Ò%ßÜ¤ A£Ó'Ð'Ø—8‘8ˆOÜ˜œ8Ÿ<™<×(Ò(Ø—7‘7‰DˆAßØœ8¤C¨£FÓ+Õ+¬h°q«kÕ9Ð9Ø—8‘8ˆOà—‘˜A“ˆAÜ�q˜'×"Ò"¤g¨a°×&9Ò&9Ø—w‘w˜q“zÐ!äÐ 5Ó6Ð6rg   rh   )T)F)FF)NF)NNz<no doc>)ri   rj   rk   rl   r±  r¦   r¸  r¾  rÄ  rÇ  r/  rw   rx   r“   rÐ  rÞ  rá  rç  rì  r  r  r  r.  r(  r3  r9  r=  ro   rp   rq   s   @rd   r¬  r¬  G  s�   ø‡ € ò
#òò
ò
!ò
"ò"ñ Ñ)¨9Ó5€DÙ
Ñ'¨Ó
2€Cô01òd
=ò;ò8;ò@&>ôP-;ô^:ôxUôn ðF ñ&ó ð&ò"/òb÷,7ð ,7rg   r¬  N)rK  rK  rK  )}Úlibmp.backendr   r   Úlibmpr   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   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   rK  r[   r\   rL  re   r~   r^   rt   r7  Ú
return_mpfÚ
return_mpcÚmpf_pow_samer@  r  rA  rB  rC  rD  rE  rF  r¨  r   r©  r  rª  rH  r\  rÞ   rœ   r¬  rÑ  ÚComplexÚregisterÚRealÚImportErrorrh   rg   rd   Ú<module>rH     sx  ð÷ -÷÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ñ õ. Ý à‡n�n€ô"�ô "ôC)ˆ9ô C)ðJ€ð< =€
Ø<�
ó “:ð€ôñ ˜ØØ*Ø9ó;€„ñ
 ˜Ø/°*Õ<Ø:¸ZÕGØ3°jÕ@óB€„ñ
 ˜Ø/°*Õ<Ø:¸ZÕGØ8¸:ÕEóG€„ñ
 ˜Ø/°*Õ<Ø4°zÕAØ3°jÕ@óB€„ñ
 ˜Ø/°*Õ<Ø:¸ZÕGØ3°jÕ@óB€„ñ
 ˜Ø/°*Õ<Ø:¸ZÕGØ1ó3€„ñ
 ˜ØØ4°zÕAØ8¸:ÕEóG€„ð
 —‘€„Ø—‘€„Ø—<‘<€Ô Ø—M‘M€Ô ôJ�ô Jô:Z:ˆ9ô Z:ðz ˜$�€ôh7�fô h7ðb	ÛØ‡O�O×Ñ˜TÔ"Ø‡L�L×Ñ˜$ÖøØô 	Úð	ús   É	:J ÊJÊJ