+
    ‹°³j‰ò  ã                  óˆ  a € 0 t $ R t^ RIHt ^ RIHtHtHtHtH	t	 ^ RI
t
^ RIHt ^ RIHtHtHtHtHtHtHtHtHt ^ RI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/H0t0H1t1H2t2H3t3H4t4H5t5H6t6H7t7H8t8H9t9 ^ RIH:t; ^ RI<H=t= ^ R	I>H?t? ^ R
I@HAtAHBtB ^RICHCtC ^RIDHEtE ^ RIFHGtG ^ RIHHItI ^ RIJHKtK ^ RILHMtM ]'       d_   ^ RINHOtO ^ RIPHQtQ ^ RIRHStS ^ RITHUtU ^ RIVHWtW ^ RIXHYtY ^ RIZH[t[ ^ RI\H]t] ^ RI^H_t_H`t` ^ RIaHbtbHctcHdtd ^ RIeHftfHgtg ^ RIhHiti ^RIjHktkHltlHmtmHntnHoto ]
Pà                  ! ^
4      tq]6trR t:]s! ]4      tt]s! ]) 4      tuRtv ! R  R!]w4      tx ]y]z]z]z]z3,          t{ ]t|]}]~]3,          tR" R# lt€R}R$ R% llt�]y]‚]z,          ]z]z]z3,          tƒ]R~R& R' ll4       t„]R~R( R) ll4       t„R~R* R+ llt„R}R, R- llt…R. R/ lt†R0 R1 lt‡R2 R3 ltˆR4 R5 lt‰R6 R7 ltŠR8 R9 lt‹R: R; ltŒR< R= lt�R> R? ltŽR}R@ RA llt�RB RC lt�RD RE lt‘RF RG lt’RH RI lt“RJ RK lt”RL RM lt•RN RO lt–RP RQ lt—RR RS lt˜RT RU lt™RV RW ltšRX RY lt›RZ R[ ltœR\ R] lt�R^ R_ ltžR` Ra ltŸRb Rc lt Rd Re lt¡Rf Rg lt¢Rh Ri lt£Rj Rk lt¤Rl Rm lt¥Rn Ro lt¦Rp Rq lt§/ s¨Rr]©Rs&   Rt tªRu Rv lt«RRw lt¬ ! Rx Ry4      t­R€Rz lt®R�R{ R| llt¯R# )‚z^
Adaptive numerical evaluation of SymPy expressions, using mpmath
for mathematical functions.
)Úannotations)ÚCallableÚTYPE_CHECKINGÚAnyÚoverloadÚTypeN)	Úmake_mpcÚmake_mpfÚmpÚmpcÚmpfÚnsumÚquadtsÚquadoscÚworkprec)Úinf)!Úfrom_intÚfrom_man_expÚfrom_rationalÚfhalfÚfnanÚfinfÚfninfÚfnoneÚfoneÚfzeroÚmpf_absÚmpf_addÚmpf_atanÚ	mpf_atan2Úmpf_cmpÚmpf_cosÚmpf_eÚmpf_expÚmpf_logÚmpf_ltÚmpf_mulÚmpf_negÚmpf_piÚmpf_powÚmpf_pow_intÚ	mpf_shiftÚmpf_sinÚmpf_sqrtÚ	normalizeÚround_nearestÚto_intÚto_strÚmpf_tan)Úbitcount)ÚMPZ)Ú	_infs_nan)Údps_to_precÚprec_to_dps)Úsympify)ÚS)Ú
SYMPY_INTS)Úis_sequence)Úlambdify)Úas_int)ÚExpr©ÚAdd©ÚMul©ÚPow)ÚSymbol©ÚIntegral©ÚSum©ÚProduct©ÚexpÚlog)ÚAbsÚreÚim©ÚceilingÚfloor)Úatan)ÚFloatÚRationalÚIntegerÚAlgebraicNumberÚNumberc                ó<   € \        \        \        V 4      4      4      # )z8Return smallest integer, b, such that |n|/2**b < 1.
    )Úmpmath_bitcountÚabsÚint)Úns   &ÚQ/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/core/evalf.pyr3   r3   2   s   € ô œ3œs 1›v›;Ó'Ð'ó    iM  c                  ó   € ] tR t^AtRtR# )ÚPrecisionExhausted© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__rd   ra   r`   rc   rc   A   s   † Ûra   rc   c               ó    € V ^8„  d   QhRRRR/# )é   ÚxzMPF_TUP | NoneÚreturnú	int | Anyrd   )Úformats   "r`   Ú__annotate__rp   r   s   € ÷ !ñ !ˆ~ð ! )ñ !ra   c                ób   € V '       d   V \         8X  d   \        # V ^,          V ^,          ,           # )aþ  Fast approximation of log2(x) for an mpf value tuple x.

Explanation
===========

Calculated as exponent + width of mantissa. This is an
approximation for two reasons: 1) it gives the ceil(log2(abs(x)))
value and 2) it is too high by 1 in the case that x is an exact
power of 2. Although this is easy to remedy by testing to see if
the odd mpf mantissa is 1 (indicating that one was dealing with
an exact power of 2) that would decrease the speed and is not
necessary as this is only being used as an approximation for the
number of bits in x. The correct return value could be written as
"x[2] + (x[3] if x[1] != 1 else 0)".
    Since mpf tuples always have an odd mantissa, no check is done
to see if the mantissa is a multiple of 2 (in which case the
result would be too large by 1).

Examples
========

>>> from sympy import log
>>> from sympy.core.evalf import fastlog, bitcount
>>> s, m, e = 0, 5, 1
>>> bc = bitcount(m)
>>> n = [1, -1][s]*m*2**e
>>> n, (log(n)/log(2)).evalf(2), fastlog((s, m, e, bc))
(10, 3.3, 4)
)r   Ú	MINUS_INF)rl   s   &r`   Úfastlogrs   r   s%   € ÷> �”U”
ÜÐØˆQ�4�!�A•$�;Ðra   c               ó    € V ^8„  d   QhRRRR/# )rk   Úvr>   rm   ztuple[Number, Number] | Nonerd   )ro   s   "r`   rp   rp   –   s   € ÷ ñ �Dð Ð,Hñ ra   c                óÆ   € V P                  4       w  r#V'       d-   VP                  4       w  rEV\        P                  J d   W$3#  R# V'       d   V\        P                  3# R# )aÂ  Return a and b if v matches a + I*b where b is not zero and
a and b are Numbers, else None. If `or_real` is True then 0 will
be returned for `b` if `v` is a real number.

Examples
========

>>> from sympy.core.evalf import pure_complex
>>> from sympy import sqrt, I, S
>>> a, b, surd = S(2), S(3), sqrt(2)
>>> pure_complex(a)
>>> pure_complex(a, or_real=True)
(2, 0)
>>> pure_complex(surd)
>>> pure_complex(a + b*I)
(2, 3)
>>> pure_complex(I)
(0, 1)
N)Úas_coeff_AddÚas_coeff_Mulr9   ÚImaginaryUnitÚZero)ru   Úor_realÚhÚtÚcÚis   &&    r`   Úpure_complexr€   –   sV   € ð( �>‰>Ó�D€AßØ�~‰~Ó‰ˆØ”—‘ÓØ�4ˆKð  ñ ÷ 
Ø”!—&‘&ˆyÐÙra   c               ó    € V ^8„  d   QhRRRR/# )rk   ÚmagÚSCALED_ZERO_TUPrm   ÚMPF_TUPrd   )ro   s   "r`   rp   rp   º   s   € ÷ ñ �_ð °ñ ra   c                ó   € R # ©Nrd   ©r‚   Úsigns   &&r`   Úscaled_zeror‰   ¹   ó   € ára   c               ó    € V ^8„  d   QhRRRR/# )rk   r‚   r^   rm   ztuple[SCALED_ZERO_TUP, int]rd   )ro   s   "r`   rp   rp   ½   s   € ÷ ñ �Sð Ð%@ñ ra   c                ó   € R # r†   rd   r‡   s   &&r`   r‰   r‰   ¼   rŠ   ra   c               ó    € V ^8„  d   QhRRRR/# )rk   r‚   zSCALED_ZERO_TUP | intrm   z%MPF_TUP | tuple[SCALED_ZERO_TUP, int]rd   )ro   s   "r`   rp   rp   ¿   s    € ÷ $Jñ $JÐ*ð $JØ-ñ$Jra   c                óz  € \        V \        4      '       dC   \        V 4      ^8X  d3   \        V RR7      '       d    V ^ ,          ^ ,          3V R,          ,           # \        V \        4      '       dD   VR9  d   \        R4      h\        \        V 4      Rr2V^8X  d   ^ M^pV.3VR,          ,           pW#3# \        R4      h)a  Return an mpf representing a power of two with magnitude ``mag``
and -1 for precision. Or, if ``mag`` is a scaled_zero tuple, then just
remove the sign from within the list that it was initially wrapped
in.

Examples
========

>>> from sympy.core.evalf import scaled_zero
>>> from sympy import Float
>>> z, p = scaled_zero(100)
>>> z, p
(([0], 1, 100, 1), -1)
>>> ok = scaled_zero(z)
>>> ok
(0, 1, 100, 1)
>>> Float(ok)
1.26765060022823e+30
>>> Float(ok, p)
0.e+30
>>> ok, p = scaled_zero(100, -1)
>>> Float(scaled_zero(ok), p)
-0.e+30
T©Úscaled:é   NNzsign must be +/-1z-scaled zero expects int or scaled_zero tuple.éÿÿÿÿ)r’   r‘   )Ú
isinstanceÚtupleÚlenÚiszeror:   Ú
ValueErrorr+   r   )r‚   rˆ   ÚrvÚpÚss   &&   r`   r‰   r‰   ¿   s    € ô4 �#”u×Ò¤# c£(¨a¤-´F¸3Àt×4LÓ4LØ�A•�q•	ˆ|˜c "�gÕ%Ð%Ü	�Cœ×	$Ò	$Ø�wÔÜÐ0Ó1Ð1Üœ$ Ó$ bˆAØ˜”‰A ˆØˆcˆV�b˜•f�_ˆØˆuˆäÐHÓIÐIra   c               ó    € V ^8„  d   QhRRRR/# )rk   r   z MPF_TUP | SCALED_ZERO_TUP | Nonerm   zbool | Nonerd   )ro   s   "r`   rp   rp   æ   s   € ÷ Gñ GÐ0ð GÀ;ñ Gra   c                ó  € V'       g4   V '       * ;'       g%    V ^,          '       * ;'       d    V R,          '       * # T ;'       dD    \        V ^ ,          \        4      ;'       d%    V ^,          V R,          u;8H  ;'       d    ^8H  # u # )r‘   r’   )r“   Úlist)r   r�   s   &&r`   r–   r–   æ   se   € ßØŒw×4Ð4˜c !�fœ*×4Ð4¨S°­W¬Ð4Ø×FÐF”:˜c !�f¤dÓ+×FÐF°°Aµ¸#¸b½'×0FÔ0FÀQÑ0FÐFÑ0FÐFra   c               ó    € V ^8„  d   QhRRRR/# )rk   ÚresultÚTMP_RESrm   rn   rd   )ro   s   "r`   rp   rp   ì   s   € ÷ ñ ˜Wð ¨ñ ra   c                ó
  € V \         P                  J d   \        # V w  rr4V'       g   V'       g   \        # V# V'       g   V# \        V4      p\        V4      p\	        WS,
          Wd,
          4      pV\	        WV4      ,
          pV) # )aí  
Returns relative accuracy of a complex number with given accuracies
for the real and imaginary parts. The relative accuracy is defined
in the complex norm sense as ||z|+|error|| / |z| where error
is equal to (real absolute error) + (imag absolute error)*i.

The full expression for the (logarithmic) error can be approximated
easily by using the max norm to approximate the complex norm.

In the worst case (re and im equal), this is wrong by a factor
sqrt(2), or by log2(sqrt(2)) = 0.5 bit.
)r9   ÚComplexInfinityÚINFrs   Úmax)	rŸ   rP   rQ   Úre_accÚim_accÚre_sizeÚim_sizeÚabsolute_errorÚrelative_errors	   &        r`   Úcomplex_accuracyr«   ì   st   € ð ”×"Ñ"Ó"Üˆ
Ø#Ñ€BˆFßßÜˆJØˆßØˆÜ�b‹k€GÜ�b‹k€GÜ˜Õ)¨7Õ+;Ó<€NØ#¤c¨'Ó&;Õ;€NØˆ?Ðra   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©	rk   Úexprr>   Úprecr^   ÚoptionsÚOPT_DICTrm   r    rd   )ro   s   "r`   rp   rp   	  s(   € ÷ &ñ &�$ð &˜cð &¨Hð &¸ñ &ra   c           	     óÂ  € \        W^,           V4      pV\        P                  J d   \        RVR3# Vw  rErgV'       g   WWWF3w  rFrWV'       d{   V P                  '       d7   \        \        \        W^,           4      4      V^,           V4      w  r‰r©VRV
R3# RV9   d   \        P                  ! WE3V4      RVR3# \        V 4      RVR3# V'       d   \        V4      RVR3# R# )rk   NÚsubs©NNNN)
Úevalfr9   r¢   r   Ú	is_numberr]   ÚNÚlibmpÚmpc_absr   )r®   r¯   r°   rŸ   rP   rQ   r¥   r¦   Úabs_exprÚ_Úaccs   &&&        r`   Úget_absr½   	  sá   € Ü�4 � 7Ó+€FØ”×"Ñ"Ó"Ü�T˜4 Ð%Ð%Ø#Ñ€BˆFßØ!#¨RÐ!7Ñˆ�Bß	Ø�>�>ˆ>Ü"'¬¬A¨d¸1µHÓ,=Ó(>Ø(,¨q­°'ó#;ÑˆH˜à˜T 3¨Ð,Ð,à˜Ô Ü—}’} b X¨tÓ4°d¸FÀDÐHÐHÜ�t“9˜d D¨$Ð.Ð.ß	Ü�r‹{˜D &¨$Ð.Ð.à%Ð%ra   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
rk   r®   r>   Únor^   r¯   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp     s/   € ÷ ñ ˜4ð  Sð °ð ¸hð È7ñ ra   c                ó
  € Tp^ p \        WV4      pV\        P                  J d   \        RVR3# WaR^1,          w  rxV'       d   W‚8¼  g   V^,          ) V8”  d   VRVR3# V\	        ^^V,          4      ,          pV^,          pK€  )z/no = 0 for real part, no = 1 for imaginary partN)rµ   r9   r¢   r   r¤   )	r®   r¿   r¯   r°   r   r   ÚresÚvalueÚaccuracys	   &&&&     r`   Úget_complex_partrÄ     sˆ   € à€HØ	€AØ
Ü�D GÓ,ˆØ”!×#Ñ#Ó#Ü˜˜t TÐ)Ð)Ø˜e !˜e�*‰ˆç˜(Ô*¨u°Q­x¨i¸$Ô.>Ø˜$ ¨$Ð.Ð.Ø”C˜˜A˜q�D“MÕ!ˆØ	ˆQ�Šra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   r®   z'Abs'r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp   /  s(   € ÷ 0ñ 0�Eð 0 ð 0¨xð 0¸Gñ 0ra   c                ó<   € \        V P                  ^ ,          W4      # ©é    )r½   Úargs©r®   r¯   r°   s   &&&r`   Ú	evalf_absrË   /  s   € Ü�4—9‘9˜Q•< Ó/Ð/ra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   r®   z're'r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp   3  ó(   € ÷ <ñ <�4ð <˜sð <¨Xð <¸'ñ <ra   c                ó>   € \        V P                  ^ ,          ^ W4      # rÇ   ©rÄ   rÉ   rÊ   s   &&&r`   Úevalf_rerÐ   3  ó   € Ü˜DŸI™I a�L¨!¨TÓ;Ð;ra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   r®   z'im'r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp   7  rÍ   ra   c                ó>   € \        V P                  ^ ,          ^W4      # rÇ   rÏ   rÊ   s   &&&r`   Úevalf_imrÔ   7  rÑ   ra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rk   rP   r„   rQ   r¯   r^   rm   r    rd   )ro   s   "r`   rp   rp   ;  s(   € ÷ "ñ "˜ð " gð "°Sð "¸Wñ "ra   c                ó:  € V \         8X  d   V\         8X  d   \        R 4      hV \         8X  d   RVRV3# V\         8X  d   V RVR3# \        V 4      p\        V4      pW48”  d   TpV\        W4,
          ) ^ 4      ,           pMTpV\        WC,
          ) ^ 4      ,           pWWV3# )z&got complex zero with unknown accuracyN)r   r—   rs   Úmin)rP   rQ   r¯   Úsize_reÚsize_imr¥   r¦   s   &&&    r`   Úfinalize_complexrÚ   ;  s¢   € Ø	ŒU„{�rœU”{ÜÐAÓBÐBØ	ŒuŒØ�R˜˜tÐ#Ð#Ø	ŒuŒØ�4˜˜tÐ#Ð#ä�b‹k€GÜ�b‹k€GØÔØˆØœ˜gÕ/Ð0°!Ó4Õ4‰àˆØœ˜gÕ/Ð0°!Ó4Õ4ˆØ�6Ð!Ð!ra   c               ó$   € V ^8„  d   QhRRRRRR/# )rk   rÂ   r    r¯   r^   rm   rd   )ro   s   "r`   rp   rp   N  s!   € ÷ "ñ "�gð " Sð "¨Wñ "ra   c                óÈ  € V \         P                  J d   V # V w  r#rEV'       d'   V\        9  d   \        V4      V) ^,           8  d   RRrBV'       d'   V\        9  d   \        V4      V) ^,           8  d   RRrSV'       da   V'       dY   \        V4      \        V4      ,
          pV^8  d   Wd,
          V) ^,           8:  d   RRrBV^8  d   We,
          V^,
          8¼  d   RRrSW#WE3# )z&
Chop off tiny real or complex parts.
N)r9   r¢   r5   rs   )rÂ   r¯   rP   rQ   r¥   r¦   Údeltas   &&     r`   Ú
chop_partsrÞ   N  s¿   € ð ”×!Ñ!Ó!ØˆØ"Ñ€BˆFç	ˆbœ	Ô!¤w¨r£{°d°U¸QµYÔ'>Ø˜4ˆFß	ˆbœ	Ô!¤w¨r£{°d°U¸QµYÔ'>Ø˜4ˆFç	�bÜ˜“œg b›kÕ)ˆØ�AŒ:˜5�>¨d¨U°Q­YÔ6Ø˜t�Ø�AŒ:˜5�>¨T°A­XÔ5Ø˜t�Ø�6Ð!Ð!ra   c               ó$   € V ^8„  d   QhRRRRRR/# )rk   r®   r>   rŸ   r    r¯   r^   rd   )ro   s   "r`   rp   rp   d  s!   € ÷ 0ñ 0�tð 0 Wð 0°Cñ 0ra   c                óL   € \        V4      pW28  d   \        R V ,          4      hR# )z‡Failed to distinguish the expression: 

%s

from zero. Try simplifying the input, using chop=True, or providing a higher maxn for evalfN)r«   rc   )r®   rŸ   r¯   Úas   &&& r`   Úcheck_targetrâ   d  s0   € Ü˜Ó €AØ„xÜ ð "&à)-õ"/ó 0ð 	0ñ ra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   r®   r>   r¿   r^   r°   r±   rm   zTMP_RES | tuple[int, int]rd   )ro   s   "r`   rp   rp   l  s/   € ÷ l$ñ l$˜4ð l$ Sð l$°8ð l$Ø!ñl$ra   c                ó$  aaa€ ^ RI HpHp ^p\        WS4      pV\        P
                  J d   \        R4      hVw  r‰r«V'       d6   V	'       d.   \        \        V4      V
,
          \        V	4      V,
          4      pMBV'       d   \        V4      V
,
          pM'V	'       d   \        V	4      V,
          pMV'       d   R# R# ^
pWÍ) 8¼  d!   WÖ,           V,           o\        V SS4      w  r‰r«MVoR VVV3R llpRw  ppppVe    V\        8w  d   V! V! V RR7      V4      w  ppV	e    V	\        8w  d   V! V! V RR7      V	4      w  ppV'       dE   \        \        T;'       g    \        4      4      \        \        T;'       g    \        4      4      3# VVVV3# )	z�
With no = 1, computes ceiling(expr)
With no = -1, computes floor(expr)

Note: this function either gives the exact result or signals failure.
©rP   rQ   z+Cannot get integer part of Complex Infinityc               ó    € V ^8„  d   QhRRRR/# )rk   Úre_imr>   Únexprr„   rd   )ro   s   "r`   rp   Ú&get_integer_part.<locals>.__annotate__—  s   € ÷ 6ñ 6˜ð 6 gñ 6ra   c                óÖ  <a€ ^RI Hp Vw   r4pV^ 8H  p\        \        V\        4      4      pV'       dz   \        W,
          ^
S4      w  rxršV'       d   Q h\        V4      ) ^,           pVS8”  d   \        WS4      w  rxršV'       d   Q hTp\        \        V\        4      4      pVw   r<pV^ 8H  pV'       gï   SP                  RR4      pV'       dq   R o\        ;QJ d-    V3R lVP                  4        4       F  '       d   K   RM"	  RM! V3R lVP                  4        4       4      '       d   V P                  V4      p V! W) RR7      p \        V ^
S4      w  rãró \        WRVR3^4       T\        S\        T;'       g    \        \        4      S8H  ,          4      ,          p\!        V4      pV\"        3#   \         d'    T P                  ^ 4      '       g   \        h\        p L{i ; i)	r‘   r?   r³   Fc           	     óÎ   €  \        V RR7       R#   \         dI     T P                  4        Uu. uF  p\        TRR7      NK  	  Mu upi  p R#   \         d      R# i ; ii ; i)z)Check for integer or integer + I*integer.F)ÚstrictT)r=   r—   Úas_real_imag)rl   r   s   & r`   Úis_int_reimÚ8get_integer_part.<locals>.calc_part.<locals>.is_int_reim´  s_   € ð)Ü˜q¨Õ/Ù#øÜ%ô )ð)Ø>?¿n¹nÔ>NÓOÑ>N¸œV A¨e×4Ò>NùÔOÚ#'øÜ)ô )Û#(ð)úð	)ús1   ‚ ‘A$�A¯AÁAÁA ÁA$ÁA Á A$c              3  ó4   <"  € T F  pS! V4      x € K  	  R # 5ir†   rd   )Ú.0ru   rî   s   & €r`   Ú	<genexpr>Ú6get_integer_part.<locals>.calc_part.<locals>.<genexpr>À  s   øé € Ð:©z¨!‘{ 1—~�~«zùs   ƒT©ÚevaluateN)Úaddr@   r^   r0   Úrndrµ   rs   ÚgetÚallÚvaluesr³   râ   rc   Úequalsr   r    r   r£   )rç   rè   r@   r»   ÚexponentÚis_intÚnintÚireÚiimÚire_accÚiim_accÚsizeÚnew_exprš   rl   Úx_accrî   r¿   r°   r¯   s   &&              @€€€r`   Ú	calc_partÚ#get_integer_part.<locals>.calc_part—  s¢  ù€ ÝØ!Ñˆˆ1˜Ø˜Q‘ˆÜ”6˜%¤Ó%Ó&ˆßô */Ø•˜b 'ó*+Ñ&ˆC�gçˆN�7Ü˜C“L�= 1Õ$ˆDØ�dŒ{Ü-2Ø ó.*Ñ*�˜'ç��wØ�Ü”v˜e¤SÓ)Ó*ˆDØ"ÑˆAˆq˜1Ø ‘\ˆFßð —‘˜F EÓ*ˆAßò
)÷ “3Ô:¨q¯x©x¬zÓ:—3—3’3Ô:¨q¯x©x¬zÓ:×:Ò:Ø!ŸJ™J q›M�Eá˜˜u¨uÔ5ˆEÜ" 5¨"¨gÓ6‰NˆA�%ðÜ˜U¨¨e°TÐ$:¸AÔ>ð
 ”C˜œG A§J J¬´Ó6¸"Ñ<Õ=Ó>Õ>ˆDÜ˜‹~ˆØ”SˆyÐøô &ô Ø—|‘| A—’Ü,Ð,Ü’ðús   ÅF7 Æ7!G(ÇG(Ç'G(Frô   )rÈ   rÈ   r´   )Ú$sympy.functions.elementary.complexesrP   rQ   rµ   r9   r¢   r—   r¤   rs   r   r^   r0   )r®   r¿   r°   Úreturn_intsrP   rQ   Úassumed_sizerŸ   rÿ   r   r  r  ÚgapÚmarginr  Úre_Úim_r¥   r¦   r¯   s   &ff&               @r`   Úget_integer_partr  l  sh  ú€ ÷ <à€LÜ�4 wÓ/€FØ”×"Ñ"Ó"ÜÐFÓGÐGØ!'Ñ€Cˆg÷ �sÜ”'˜#“, Õ(¬'°#«,¸Õ*@ÓA‰ß	Ü�c‹l˜WÕ$‰ß	Ü�c‹l˜WÕ$‰÷ ØˆKà)Ð)à€Fà
ˆg„~ØÕ$ sÕ*ˆÜ%*Ø�$˜ó&!Ñ"ˆ�'˜7ð ˆ÷
6ò 6ðp  6Ñ€Cˆˆf�fà
‚˜3¤%œ<Ù¡ 4°%Ô 8¸#Ó>‰ˆˆVØ
‚˜3¤%œ<Ù¡ 4°%Ô 8¸#Ó>‰ˆˆVçÜ”6˜#Ÿ,˜,¤Ó'Ó(¬#¬f°S·\°\¼EÓ.BÓ*CÐCÐCØ��V˜VÐ#Ð#ra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   r®   z	'ceiling'r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp   Û  s(   € ÷ 6ñ 6˜	ð 6¨ð 6°xð 6ÀGñ 6ra   c                ó>   € \        V P                  ^ ,          ^V4      # rÇ   ©r  rÉ   rÊ   s   &&&r`   Úevalf_ceilingr  Û  s   € Ü˜DŸI™I a�L¨!¨WÓ5Ð5ra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   r®   z'floor'r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp   ß  s(   € ÷ 7ñ 7�gð 7 Sð 7°8ð 7Àñ 7ra   c                ó>   € \        V P                  ^ ,          RV4      # )rÈ   r’   r  rÊ   s   &&&r`   Úevalf_floorr  ß  s   € Ü˜DŸI™I a�L¨"¨gÓ6Ð6ra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   r®   z'Float'r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp   ã  s(   € ÷ (ñ (�gð ( Sð (°8ð (Àñ (ra   c                ó"   € V P                   R VR 3# r†   )Ú_mpf_rÊ   s   &&&r`   Úevalf_floatr  ã  s   € Ø�:‰:�t˜T 4Ð'Ð'ra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   r®   z
'Rational'r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp   ç  s.   € ÷ Añ A˜ð A¨3ð A¸ð AÀgñ Ara   c                óL   € \        V P                  V P                  V4      R VR 3# r†   )r   r™   ÚqrÊ   s   &&&r`   Úevalf_rationalr  ç  s"   € Ü˜Ÿ™ §¡¨Ó.°°d¸DÐ@Ð@ra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   r®   z	'Integer'r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp   ë  s(   € ÷ 4ñ 4˜	ð 4¨ð 4°xð 4ÀGñ 4ra   c                ó6   € \        V P                  V4      R VR 3# r†   )r   r™   rÊ   s   &&&r`   Úevalf_integerr!  ë  s   € Ü�D—F‘F˜DÓ! 4¨¨tÐ3Ð3ra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rk   Útermsr�   r¯   r^   Útarget_precrm   z3tuple[MPF_TUP | SCALED_ZERO_TUP | None, int | None]rd   )ro   s   "r`   rp   rp   õ  s/   € ÷ Sñ S�Tð S ð S°3ð SØ;ñSra   c                óD  € V  Uu. uF  p\        V^ ,          4      '       d   K  VNK!  	  p pV '       g   R# \        V 4      ^8X  d
   V ^ ,          # . p^RIHp V  FV  pVP                  ! V^ ,          ^4      pV\
        P                  J g   VP                  '       g   KE  VP                  V4       KX  	  V'       d1   ^RI	H
p \        V! V!  V^,           / 4      pV^ ,          V^,          3# ^V,          p	^ ^ rº. pV  F¿  w  rÞVw  ppppV'       d   V) pVP                  VV,           V,
          4       VV,
          pVV8¼  dH   VV	8”  d/   V
'       d!   V\        \        V
4      4      ,
          V	8”  d   Tp
TpK{  V
VV,          ,          p
K�  V) pVV,
          V	8”  d   V
'       g   TTrºK«  K­  V
V,          V,           p
TpKÁ  	  \        V4      pV
'       g   \        V4      # V
^ 8  d   ^pV
) p
M^ p\        V
4      pVV,           V,
          p\!        VW«VV\"        4      V3pV# u upi )aç  
Helper for evalf_add. Adds a list of (mpfval, accuracy) terms.

Returns
=======

- None, None if there are no non-zero terms;
- terms[0] if there is only 1 term;
- scaled_zero if the sum of the terms produces a zero by cancellation
  e.g. mpfs representing 1 and -1 would produce a scaled zero which need
  special handling since they are not actually zero and they are purposely
  malformed to ensure that they cannot be used in anything but accuracy
  calculations;
- a tuple that is scaled to target_prec that corresponds to the
  sum of the terms.

The returned mpf tuple will be normalized to target_prec; the input
prec is used to define the working precision.

XXX explain why this is needed and why one cannot just loop using mpf_add
©rV   r?   )NN)r–   r•   ÚnumbersrV   Ú_newr9   ÚNaNÚis_infiniteÚappendrö   r@   rµ   r3   r]   r¤   r‰   r.   r÷   )r#  r¯   r$  r}   ÚspecialrV   Úargr@   r˜   Úworking_precÚsum_manÚsum_expÚabsolute_errrl   rÃ   rˆ   ÚmanrM   ÚbcrÝ   r©   Úsum_signÚsum_bcÚsum_accuracyÚrs   &&&                      r`   Ú	add_termsr8  õ  sþ  € ñ0 Ó2™�1¤V¨A¨a­D§\�QˆQ™€EÐ2ßØÐÜ	ˆU‹�qŒØ�Q�xˆð €GÝÛˆØ�jŠj˜˜1�˜qÓ!ˆØ”!—%‘%‹<˜3Ÿ?Ÿ?š?Ø�N‰N˜3Öñ ÷ ÝÜ‘3˜‘= $¨¥(¨BÓ/ˆØ�!�u�b˜•eˆ|Ðà�T•6€LØ˜!ˆWØ €Lã‰ˆØÑˆˆc�3˜ßØ�$ˆCØ×Ñ˜B �H xÕ/Ô0Ø�g•ˆØ�'Œ>ð ˜Ô%ßØœ¤# g£,Ó/Õ/°,Ô>Ø�Ø’à˜C 5�LÕ)’à�FˆEà�r�z˜LÔ(ßØ'*¨CšWñ ð # eÕ+¨sÕ2�Ø’ñ1 ô2 ˜Ó&€NßÜ˜>Ó*Ð*Ø�„{ØˆØ�(‰àˆÜ�gÓ€FØ˜VÕ# nÕ4€LÜ�(˜G¨f°kÜó	Øð	€Aà€Hùòw 3s
   …H¤Hc               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   ru   z'Add'r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp   K  s(   € ÷ ."ñ ."�ð ."˜cð ."¨Hð ."¸ñ ."ra   c           	     óX  € \        V 4      pV'       d'   Vw  rE\        WAV4      w  rgr‡\        WQV4      w  r—r§WiWŠ3# VP                  R \        4      p^ pTp \	        V^V,          4      VR &   V P
                   Uu. uF  p\        Wá^
,           V4      NK  	  ppVP                  \        P                  4      pV^8¼  d   \        RVR3# \        V Uu. uF5  p\        V\        4      '       g   K  V^ ,          '       g   K,  VR,          NK7  	  upW4      w  rh\        V Uu. uF5  p\        V\        4      '       g   K  V^,          '       g   K,  VR,          NK7  	  upW4      w  ršV^8X  dG   V\        \        \        39   g   V	\        \        \        39   d   \        RVR3# \        P                  # \        WiWŠ34      pVV8¼  d'   VP                  R4      '       d   \!        RVRWŠ4       MoW,
          VR ,          8”  d   MZV\#        ^
^V,          ,           VV,
          4      ,           pV^,          pVP                  R4      '       g   EKö  \!        RV4       EK  W²R &   \%        VRR	7      '       d   \'        V4      p\%        V	RR	7      '       d   \'        V	4      p	WiWŠ3# u upi u upi u upi )
ÚmaxprecN:rÈ   Nrk   :r‘   Nrk   ÚverbosezADD: wantedúaccurate bits, gotzADD: restarting with precTr�   )r€   rµ   rø   ÚDEFAULT_MAXPRECr×   rÉ   Úcountr9   r¢   r   r8  r“   r”   r   r   r«   Úprintr¤   r–   r‰   )ru   r¯   r°   rÁ   r|   r~   rP   r»   r¥   rQ   r¦   Ú
oldmaxprecr   r$  r-  r#  r_   rá   r¼   s   &&&                r`   Ú	evalf_addrB  K  sR  € Ü
�q‹/€Cß
Ø‰ˆÜ  ¨'Ó2ÑˆˆvÜ  ¨'Ó2ÑˆˆvØ�vÐ%Ð%à—‘˜Y¬Ó8€Jà	€AØ€KØ
Ü  ¨Q¨t­VÓ4ˆ�	Ñà;<¿6º6ÓB¹6°C”�s 2�I wÖ/¹6ˆÐBØ�K‰Kœ×)Ñ)Ó*ˆØ�Œ6Ü˜˜t TÐ)Ð)ÜÙ#ÓE™e˜¤z°!´U×';ŒWÀÀ!ÇÁŒWˆQˆt�WˆW™eÑEÀtóZ‰
ˆäÙ#ÓE™e˜¤z°!´U×';ŒWÀÀ!ÇÁŒWˆQˆt�WˆW™eÑEÀtóZ‰
ˆà�Œ6Ø”dœE¤4Ð(Ô(¨B´4¼ÄÐ2EÔ,EÜ˜T 4¨Ð-Ð-Ü×$Ñ$Ð$Ü ¨Ð7Ó8ˆØ�+ÔØ�{‰{˜9×%Ò%Ü�m [Ð2FÈÔWØàÕ" g¨iÕ&8Ô8Øàœ#˜b 1 a¥4�i¨°sÕ):Ó;Õ;ˆDØ��FˆAØ�{‰{˜9×%Õ%ÜÐ1°4×8à#ˆIÑÜˆb˜×ÓÜ˜‹_ˆÜˆb˜×ÓÜ˜‹_ˆØ�6Ð!Ð!ùò? Cùò
 FùâEs*   Á9JÃJ"Ã-J"Ã>J"ÄJ'Ä;J'ÅJ'c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   ru   z'Mul'r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp   |  s.   € ÷ { ñ { �ð { ˜cð { ¨Hð { ¸ñ { ra   c           
     óœ  € \        V 4      pV'       d   Vw  rE\        WQV4      w  rdrtR VR V3# \        V P                  4      pRp	. p
^RIHp V F¯  p\        WÁV4      pV\        P                  J d   V
P                  V4       K6  V^ ,          f   V^,          f   Rp	KP  VP                  ! V^ ,          ^4      pV\        P                  J d   \        R VR 3u # VP                  '       g   Kž  V
P                  V4       K±  	  V
'       d1   V	'       d   \        R VR 3# ^RIHp \        V! V
!  V^,           / 4      # V	'       d   R# TpV\        V4      ,           ^,           p\!        ^4      ^ ^3;pw  ppp\        V4      p^ pVP                  \        P"                  4       . p\%        V4       EF,  w  ppVV8w  d5   \        V4      '       d$   VR	,          V,          P'                  4       VR	&   KB  VV8X  d   V\        P"                  J d   K_  \        VVV4      w  ppppV'       d    V'       d   VP                  VVVV34       K˜  V'       d   VTuw  ppppp MV'       d   Yguw  ppppp V^,          pMRu # V^V,          ,          pVV,          pVV,          pVV,          pV^V,          8”  d   VV,          pVV,          pVV,          pK+  \)        VV 4      pEK/  	  V^,          ^,	          p!V'       g9   \+        V!VV\-        V4      V\.        4      p V^,          '       d   R V R V3# V R VR 3# VVV3V8w  d"   V!VV\-        V4      3^ \!        ^ 4      ^ ^ 3pp^ p"M-V^ ,          w  p#p$p%p&\)        V\1        V#V$V%V&34      4      pT#pT$p^p"VV"R   Fz  w  p#p$p%p&\)        V\1        V#V$V%V&34      4      pTp'\3        VV#V'4      p(\3        \5        V4      V$V'4      p)\3        VV$V'4      p*\3        VV#V'4      p+\7        V(V)V'4      p\7        V*V+V'4      pK|  	  VP9                  R4      '       d   \;        RVRV4       V^,          '       d   \5        V4      TppVVVV3# )
NFr&  TrA   r<  zMUL: wantedr=  r´   r’   )r€   rµ   r�   rÉ   r'  rV   r9   r¢   r+  r(  r)  r   r*  ÚmulrB   r•   r4   ÚOneÚ	enumerateÚexpandr×   r.   r3   r÷   r«   r&   r'   r   rø   r@  ),ru   r¯   r°   rÁ   r»   r|   rQ   r¦   rÉ   Úhas_zeror,  rV   r-  rŸ   ÚnumrB   r¼   r.  Ústartr2  rM   r3  ÚlastÚ	directionÚcomplex_factorsr   rP   r¥   rš   ÚmÚeÚbÚw_accrˆ   Úi0ÚwreÚwimÚwre_accÚwim_accÚuse_precÚAÚBÚCÚDs,   &&&                                         r`   Ú	evalf_mulr]  |  sG  € Ü
�q‹/€Cß
à‰ˆÜ  ¨'Ó2ÑˆˆvØ�R˜˜vÐ%Ð%Ü�—‘‹<€Dð €HØ€GÝÛˆÜ�s 'Ó*ˆØ”Q×&Ñ&Ó&Ø�N‰N˜6Ô"ÙØ�!�9ÒØ�a�yÒ Ø�ÙØ�jŠj˜ � AÓ&ˆØ”!—%‘%‹<Ü˜˜t TÐ)Ò)Ø�?�?Š?Ø�N‰N˜3Öñ ÷ ßÜ˜˜t TÐ)Ð)ÝÜ‘S˜'‘] D¨1¥H¨bÓ1Ð1ßØ%Ð%ð €Cð œ#˜d›)Õ# aÕ'€Lô ˜q›6 1 a˜<Ð'€E‰LˆC��bô ˆt‹9€DØ€IØ‡K�K”—‘ÔØ€Oä˜D—/‰ˆˆ3Ø�Œ9œ c×*Ò*Ø˜R� �×,Ñ,Ó.ˆD�‰HÙØ�$ŒY˜3¤!§%¡%›<ÙÜ!& s¨L¸'Ó!BÑˆˆB�˜ß—"Ø×"Ñ" B¨¨F°FÐ#;Ô<ÙßØ"$ fÐ‰LˆQ��1�a™%ßØ"$Ð‰LˆQ��1�a˜%Ø˜�N‰Ià)Ò)Ø�Q�q•SÕˆ	Øˆq�ˆØˆq�ˆØ
ˆa�ˆØ�1�\•>Ô!Ø�LÕ ˆCØ�<ÕˆCØ�,ÕŠBÜ�#�u‹o‹ñ3 "ð4 ˜�M˜aÕ€DßÜ�d˜C ¤h¨s£m°T¼3Ó?ˆà�q�=Œ=Ø˜˜D #Ð%Ð%à�d˜C Ð%Ð%ð ��bˆ>˜UÔ"à˜C ¤h¨s£mÐ4°q¼#¸a»&À!ÀQÐ6G�ˆBØ‰Bð *9¸Õ);Ñ&ˆC��g˜wÜ�cÜ&¨¨S°'¸7Ð'CÓDóFˆCàˆBØˆBØˆBà*9¸"¸#Ó*>Ñ&ˆC��g˜wô �cÜ&¨¨S°'¸7Ð'CÓDóFˆCð $ˆHÜ˜˜C Ó*ˆAÜœ › S¨(Ó3ˆAÜ˜˜C Ó*ˆAÜ˜˜C Ó*ˆAÜ˜˜A˜xÓ(ˆBÜ˜˜A˜xÓ(ŠBñ +?ð �;‰;�y×!Ò!Ü�- Ð';¸SÔAà�q�=Œ=Ü˜R“[ "�ˆBØ�2�s˜CÐÐra   c               ó$   € V ^8„  d   QhRRRRRR/# )rk   ru   z'Pow'r¯   r^   rm   r    rd   )ro   s   "r`   rp   rp   ú  s+   € ÷ xGñ xG�ð xG˜cð xG¨wñ xGra   c                ó	  € TpV P                   w  rEVP                  '       EdW   VP                  pV'       g   \        R VR 3# V\	        \
        P                  ! \        V4      4      4      ,          p\        WA^,           V4      pV\        P                  J d   V^ 8  d   R# V# Vw  r‰r«V'       d   V	'       g   \        W†V4      R VR 3# V	'       dd   V'       g\   \        W–V4      pV^,          pV^ 8X  d   VR VR 3# V^8X  d   R VR V3# V^8X  d   \        V4      R VR 3# V^8X  d   R \        V4      R V3# V'       g   V^ 8  d   \        P                  # R# \        P                  ! W‰3Wa4      w  r‰\        W‰V4      # \        WA^,           V4      pV\        P                  J d$   VP                   '       d   V^ 8  d   R# V# \"        hV\        P$                  J dŒ   Vw  rï pV'       d6   \        P&                  ! T;'       g    \(        V3V4      w  r‰\        W‰V4      # V'       g   R# \+        V\(        4      '       d   R \-        \        V4      V4      R V3# \-        Wá4      R VR 3# V^
,          p\        WQV4      pV\        P                  J d   \.        R VR 3# Vw  pp pV'       g   V'       g   \        R VR 3# \1        V4      pV^8”  d   VV,          p\        WQV4      w  pp pV\        P2                  J dN   V'       d6   \        P4                  ! T;'       g    \(        V3V4      w  r‰\        W‰V4      # \7        VV4      R VR 3# \        WA^,           V4      w  rï pV'       g;   V'       g3   V'       d   \.        R VR 3# V^ ,          ^8X  d   \        P                  # R# V'       dU   \        P8                  ! T;'       g    \(        T;'       g    \(        3T;'       g    \(        V3V4      w  r‰\        W‰V4      # V'       d7   \        P:                  ! T;'       g    \(        V3VV4      w  r‰\        W‰V4      # \+        V\(        4      '       d-   \        P:                  ! V\(        3VV4      w  r‰\        W‰V4      # \=        VVV4      R VR 3# )Nr´   )rÉ   Ú
is_Integerr™   r   r^   ÚmathÚlog2r]   rµ   r9   r¢   r*   r'   r¸   Úmpc_pow_intrÚ   Úis_RationalÚNotImplementedErrorÚHalfÚmpc_sqrtr   r%   r-   r   rs   ÚExp1Úmpc_expr#   Úmpc_powÚmpc_pow_mpfr)   )ru   r¯   r°   r$  ÚbaserM   r™   rŸ   rP   rQ   r¥   r¦   ÚzÚcaseÚxreÚximr»   ÚyreÚyimÚysizes   &&&                 r`   Ú	evalf_powrt  ú  s  € à€KØ—‘�I€Dð
 ‡~‡~�~Ø—‘ˆçÜ˜˜t TÐ)Ð)ð 	””D—I’Iœc !›fÓ%Ó&Õ&ˆÜ�t A�X wÓ/ˆØ”Q×&Ñ&Ó&Ø�1ŒuØ-Ð-ØˆMØ!'Ñˆ�ç—bÜ˜r kÓ2°D¸+ÀtÐKÐKç—bÜ˜B ;Ó/ˆAØ�q•5ˆDØ�qŒyØ˜$ ¨TÐ1Ð1Ø�qŒyØ˜Q  kÐ1Ð1Ø�qŒyÜ˜q“z 4¨°dÐ:Ð:Ø�qŒyØœW Q›Z¨¨{Ð:Ð:çØ�1ŒuÜ×(Ñ(Ð(Ø)Ð)ä×"Ò" B 8¨QÓ5‰ˆä ¨Ó4Ð4ä�4 � 7Ó+€FØ”×"Ñ"Ó"Ø�?�?ˆ?Ø�QŒwØ-Ð-ØˆMÜ!Ð!ð Œa�f‰fƒ}Ø‰ˆ�!�QçÜ—^’^ S§\ \¬E°3Ð$7¸Ó>‰FˆBÜ# B¨DÓ1Ð1ßØ)Ð)ä�#”u×ÒØœ¤'¨#£,°Ó5°t¸TÐAÐAä˜Ó" D¨$°Ð4Ð4ð 	ˆB…J€DÜ�3˜gÓ&€FØ”×"Ñ"Ó"Ü�T˜4 Ð%Ð%Ø�N€Cˆˆa�ç—3Ü�T˜4 Ð%Ð%ä�C‹L€Eð ˆq„yØ��ˆÜ˜s¨'Ó2‰ˆˆS�!�Qð Œq�v‰vƒ~ßÜ—]’] C§L L¬5°#Ð#6¸Ó=‰FˆBÜ# B¨KÓ8Ð8Ü�s˜KÓ(¨$°¸TÐAÐAä˜4¨¥¨7Ó3�N€Cˆa�ç—3ßÜ˜˜t TÐ)Ð)Øˆq�6�QŒ;Ü×$Ñ$Ð$Ø%Ð%÷ Ü—’Ø�\ˆ\”E˜3Ÿ<˜<¤%Ð(¨3¯<¨<´%¸Ð*=Øó‰ˆô   ¨Ó4Ð4ç
Ü×"Ò" C§L L¬5°#Ð#6¸¸[ÓI‰ˆÜ ¨Ó4Ð4ä	�”U×	Ò	Ü×"Ò" C¬ <°°kÓB‰ˆÜ ¨Ó4Ð4ô �s˜C Ó-¨t°[À$ÐFÐFra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   r®   z'exp'r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp   |  s.   € ÷ Kñ K�Eð K ð K¨xð K¸Gñ Kra   c                óh   € ^RI Hp \        V! \        P                  V P
                  RR7      W4      # )r‘   rC   Frô   )ÚpowerrD   rt  r9   rh  rM   )r®   r¯   r°   rD   s   &&& r`   Ú	evalf_exprx  |  s#   € ÝÜ‘SœŸ™ §¡°EÔ:¸DÓJÐJra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   ru   r>   r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp   �  s(   € ÷ ='ñ ='�$ð ='˜cð ='¨Hð ='¸ñ ='ra   c                ó  € ^ RI HpHpHp \	        W4      '       d   \
        pM6\	        W4      '       d   \        pM\	        W4      '       d   \        pM\        hV P                  ^ ,          pV^,           p\        WxV4      w  ršr¼V
'       d;   RV9   d   V P                  VR,          4      p \        V P                  V4      W4      # V	'       gH   \	        W4      '       d   \        RVR3# \	        W4      '       d   R	# \	        W4      '       d   R	# \        h\        V	4      pV^8  d   V! W‘\        4      RVR3# V^
8¼  d   W,           p\        WxV4      w  ršr¼ V! W‘\        4      p\        V4      pV) pW�,
          V,
          pVV8  dw   VP!                  R4      '       d&   \#        RVRVRV4       \#        \%        V^
4      4       W‚P!                  R\&        4      8”  d   VRVR3# VV,          p\        WxV4      w  ršr¼K¨  VRVR3# )
z@
This function handles sin , cos and tan of complex arguments.

)ÚcosÚsinÚtanr³   Nr<  zSIN/COS/TANÚwantedr  r;  r´   )Ú(sympy.functions.elementary.trigonometricr{  r|  r}  r“   r!   r,   r2   re  rÉ   rµ   r³   Ú_eval_evalfr   rs   r÷   rø   r@  r1   r>  )ru   r¯   r°   r{  r|  r}  Úfuncr-  ÚxprecrP   rQ   r¥   r¦   ÚxsizeÚyrs  r  rÃ   s   &&&               r`   Ú
evalf_trigr…  �  sÚ  € ÷
 GÑFÜ�!×ÒÜ‰Ü	�A×	Ò	Ü‰Ü	�A×	Ò	Ü‰ä!Ð!Ø
�&‰&��)€Cð �2�I€EÜ" 3¨wÓ7Ñ€BˆFß	Ø�WÔØ—‘�w˜v•Ó'ˆAÜ�Q—]‘] 4Ó(¨$Ó8Ð8ßÜ�a×ÒÜ˜˜t TÐ)Ð)Ü˜×ÒØ)Ð)Ü˜×ÒØ)Ð)ä%Ð%ô �B‹K€Eð ˆq„yÙ�BœcÓ" D¨$°Ð4Ð4à�„{Ø•ˆÜ!& s°7Ó!;Ñˆ�ð Ù�œ3ÓˆÜ˜“
ˆØˆfˆØ•M SÕ(ˆØ�dŒ?Ø�{‰{˜9×%Ò%Ü�m X¨x¸¸uÀcÔJÜ”f˜Q “mÔ$Ø—{‘{ 9¬oÓ>Ô>Ø˜$ ¨$Ð.Ð.Ø�S�LˆEÜ%*¨3°wÓ%?Ñ"ˆB�FÙà�d˜D $Ð&Ð&ra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   r®   z'log'r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp   Á  s(   € ÷ 2&ñ 2&�Eð 2& ð 2&¨xð 2&¸Gñ 2&ra   c           	     ó†  € \        V P                  4      ^8”  d   V P                  4       p \        WV4      # V P                  ^ ,          pV^
,           p\        W4V4      pV\        P
                  J d   V# Vw  rgr‰Ygu;J d   f
   M M\        pV'       dV   ^ RIHp
 ^ RI	H
p \        V! V
! VRR7      RR7      W4      p\        Yv;'       g    \        V4      pV^ ,          WÜ^,          V3# \        V\        4      ^ 8  p\        \        V4      V\         4      p\#        V4      pW,
          V8”  dv   V\        8w  dk   ^RIHp V! \        P(                  VRR7      p\+        VW4      w  rg p	V\#        V4      ,
          p\        \        \-        V\.        V4      4      V\         4      pTpV'       d   V\1        V4      VV3# VRVR3# )r‘   N)rO   )rN   Frô   r?   )r•   rÉ   Údoitrµ   r9   r¢   r   r  rO   Ú&sympy.functions.elementary.exponentialrN   Ú	evalf_logr   r    r$   r   r÷   rs   rö   r@   ÚNegativeOnerB  r   r   r(   )r®   r¯   r°   r-  r   rŸ   ro  rp  Úxaccr»   rO   rN   rP   rQ   Úimaginary_termr  r@   rö   Úprec2r¥   s   &&&                 r`   rŠ  rŠ  Á  s‚  € Ü
ˆ4�9‰9ƒ~�aÔØ�y‰y‹{ˆÜ�T Ó)Ð)Ø
�)‰)�A�,€CØ�b�y€HÜ�3 'Ó*€FØ”×"Ñ"Ó"ØˆØÑ€Cˆdð ×Óô ˆç
Ý<Ý>ô Ù‘�C %Ô(°5Ô9¸4óJˆä�sŸL˜L¤5¨$Ó/ˆØ�!�u�b˜Q�% Ð%Ð%ä˜c¤5Ó)¨AÑ-€Nä	”˜“˜t¤SÓ	)€BÜ�2‹;€DØ…{�XÔ "¬¤+Ýá”!—-‘- ¨uÔ5ˆÜ" 3¨Ó6‰ˆ�!�QØœ7 3›<Õ'ˆä”WœW S¬$°Ó6Ó7¸¼sÓCˆà€FçØ”6˜$“< ¨Ð-Ð-à�4˜ Ð%Ð%ra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   ru   z'atan'r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp   ö  s(   € ÷ 6ñ 6�&ð 6 ð 6¨hð 6¸7ñ 6ra   c                ó¶   € V P                   ^ ,          p\        W1^,           V4      w  rErgYEu;J d   f   M MR# V'       d   \        h\        WA\        4      RVR3# )rÈ   Nr´   )rÉ   rµ   re  r   r÷   )ru   r¯   r°   r-  ro  rp  ÚreaccÚimaccs   &&&     r`   Ú
evalf_atanr“  ö  sR   € Ø
�&‰&��)€CÜ" 3¨q­°'Ó:Ñ€CˆeØ
×ÓØÐß
Ü!Ð!Ü�CœsÓ# T¨4°Ð5Ð5ra   c               ó$   € V ^8„  d   QhRRRRRR/# )rk   r¯   r^   r³   Údictrm   rd   )ro   s   "r`   rp   rp      s!   € ÷ ñ �Sð  ð ¨ñ ra   c                ó    € / pVP                  4        F7  w  r4\        V4      pVP                  '       d   VP                  V 4      pWBV&   K9  	  V# )z;Change all Float entries in `subs` to have precision prec. )Úitemsr9   Úis_Floatr€  )r¯   r³   Únewsubsrá   rQ  s   &&   r`   Ú
evalf_subsrš     sG   € à€GØ—
‘
–‰ˆÜˆa‹DˆØ�:�:ˆ:Ø—‘˜dÓ#ˆAØ�‹
ñ	 ð
 €Nra   c               ó(   € V ^8„  d   QhRRRRRRRR/# r­   rd   )ro   s   "r`   rp   rp     s(   € ÷ ñ ˜$ð  cð °Hð Àñ ra   c                óp  € ^RI HpHp RV9   d£   V P                  \	        WR,          4      4      p VP                  4       pVR \        V R4      '       d   \        WV4      # \        V \        4      '       d   \        V! V 4      W4      # \        V \        4      '       d   \        V! V 4      W4      # \        h)r‘   )rV   rX   r³   r�  )r'  rV   rX   r³   rš  ÚcopyÚhasattrrµ   r“   Úfloatr^   re  )r®   r¯   r°   rV   rX   Únewoptss   &&&   r`   Úevalf_piecewiser¡    s”   € ß'Ø�ÔØ�y‰yœ D°&­/Ó:Ó;ˆØ—,‘,“.ˆØ�FˆOÜ�4˜× Ò Ü˜ WÓ-Ð-Ü�dœE×"Ò"Ü™˜t› dÓ4Ð4Ü�dœC× Ò Ü™ ›¨Ó6Ð6ô Ðra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   rá   z'AlgebraicNumber'r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp     s)   € ÷ -ñ -Ð&ð -¨cð -¸Hð -Èñ -ra   c                ó6   € \        V P                  4       W4      # r†   )rµ   Úto_root)rá   r¯   r°   s   &&&r`   Úevalf_alg_numr¥    s   € Ü�—‘“˜dÓ,Ð,ra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   rl   r   r¯   r^   r°   r±   rm   ú	mpc | mpfrd   )ro   s   "r`   rp   rp   &  s(   € ÷ "ñ "�ð "˜Cð "¨(ð "°yñ "ra   c                ó  € ^RI HpHpHp \	        V 4      p \        W4      '       g   V R8X  d   \        ^ 4      # \        W4      '       d   \        R4      # \        W4      '       d   \        R4      # \        WV4      p\        V4      # )r‘   )ÚInfinityÚNegativeInfinityrz   g        r   z-inf)	r'  r©  rª  rz   r8   r“   r   rµ   Úquad_to_mpmath)rl   r¯   r°   r©  rª  rz   rŸ   s   &&&    r`   Ú	as_mpmathr¬  &  sl   € ß9Ñ9Ü�‹
€AÜ�!×Ò˜a 3œhÜ�1‹vˆÜ�!×ÒÜ�5‹zÐÜ�!×&Ò&Ü�6‹{Ðä�1˜GÓ$€FÜ˜&Ó!Ð!ra   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©	rk   r®   z
'Integral'r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp   4  s.   € ÷ \ñ \�jð \¨ð \°hð \À7ñ \ra   c           	     ó  aaaaa€ V P                   ^ ,          oV P                   ^,          w  or4W48X  d   ^ ;r4MQSSP                  9  dA   VP                  VP                  ,          '       d   WC,
          pVP                  '       d   ^ TrCTP                  R\        4      p\        V^V,          4      VR&   \        V^,           4      ;_uu_ 4        \        W1^,           V4      p\        WA^,           V4      p^ RIH	pH
p ^RIHp	 RR.o\        o\        oR VVVVV3R llp
VP                  R4      R8X  dÞ   V	! R	S.R
7      pV	! RS.R
7      pV	! R4      pSP                  V! VS,          V,           4      V,          4      pV'       g-   SP                  V! VS,          V,           4      V,          4      pV'       g   \        R4      h\        ^\         P"                  ,          Wë,          ,          V^,           V4      p\%        W£V.VR7      p\        pM'\'        W£V.^R7      w  pp\)        VP*                  4      pRRR4       WbR&   S^ ,          '       d   XP,                  P*                  pV\.        8X  d0   \1        \3        \5        VSX4      ) 4      4      w  pp\1        V4      pM2\3        \5        S\)        V4      ,
          V,
          X4      ) 4      pMRRppS^,          '       d   XP6                  P*                  pV\.        8X  d0   \1        \3        \5        VSX4      ) 4      4      w  pp\1        V4      pM2\3        \5        S\)        V4      ,
          V,
          X4      ) 4      pMRRppVVVV3pV#   + '       g   i     EL?; i)rÈ   r;  )r{  r|  )ÚWildFc               ó    € V ^8„  d   QhRRRR/# )rk   r}   r>   rm   r§  rd   )ro   s   "r`   rp   Ú!do_integral.<locals>.__annotate__W  s   € ÷ 	$ñ 	$�ð 	$˜)ñ 	$ra   c                ój  <€ \        S\        P                  R S	V //4      w  rr4T;'       g
    S^ ,          S^ &   T;'       g
    S^,          S^&   \        S\	        V4      4      o\        S\	        V4      4      oV'       d   \        T;'       g    \        V4      # \        T;'       g    \        4      # )r³   )rµ   r
   r¯   r¤   rs   r   r   r   )
r}   rP   rQ   r¥   r¦   r�  Ú	have_partÚmax_imag_termÚmax_real_termrl   s
   &    €€€€€r`   ÚfÚdo_integral.<locals>.fW  s”   ø€ ä%*¨4´·±¸6ÀAÀqÀ6Ð:JÓ%KÑ"ˆB�Fà×-Ð- ¨1¥ˆI�a‰LØ×-Ð- ¨1¥ˆI�a‰Lä ¬w°r«{Ó;ˆMÜ ¬w°r«{Ó;ˆMçÜ˜2Ÿ;˜;¤¨Ó+Ð+Ü�r—{�{œUÓ#Ð#ra   ÚquadÚoscrY  )ÚexcluderZ  r\  zbAn integrand of the form sin(A*x+B)*f(x) or cos(A*x+B)*f(x) is required for oscillatory quadrature)Úperiod)ÚerrorN)rÉ   Úfree_symbolsr¶   rø   r>  r×   r   r¬  r  r{  r|  Úsymbolr°  rr   Úmatchr—   r9   ÚPir   r   rs   r  Úrealr   r‰   r^   r¤   Úimag)r®   r¯   r°   ÚxlowÚxhighÚdiffrA  r{  r|  r°  r·  rY  rZ  r\  rO  r¼  rŸ   Úquadrature_errorÚquadrature_errrP   Úre_sr¥   rQ   Úim_sr¦   r�  r´  rµ  r¶  rl   s   &&&                      @@@@@r`   Údo_integralrË  4  sî  ü€ Ø�9‰9�Q�<€DØ—Y‘Y˜q•\�N€A€tØ„}ØÐˆˆuØ	
�$×#Ñ#Ô	#ð
 ×Ñ × 1Ñ 1×1Ô1Ø•<ˆDØ�~�~ˆ~Ø �eà—‘˜Y¬Ó8€JÜ˜Z¨¨4­Ó0€GˆIÑä	�$˜•(×	Õ	Ü˜ b�y¨'Ó2ˆÜ˜%¨¥¨GÓ4ˆ÷ 	FÝ à˜E�Nˆ	Ü%.ˆÜ%.ˆ÷	$ô 	$ð �;‰;�vÓ %Ô'Ù�S 1 #Ô&ˆAÙ�S 1 #Ô&ˆAÙ�S“	ˆAØ—
‘
™3˜q �s Q�w›<¨�>Ó*ˆAßØ—J‘J™s 1 Q¥3¨¥7›|¨A�~Ó.�ßÜ ð "Nó Oð Oä˜q¤§¡�v a¥d�{¨D°2­I°wÓ?ˆFÜ˜Q u °fÔ=ˆFä(Ñä%+¨A°e¨}ÀAÔ%FÑ"ˆF�NÜ& ~×';Ñ';Ó<Ð÷_ 
ðb $ˆIÑà�‡|„|Ø#Ÿ[™[×.Ñ.ˆà”Œ;Ü&¤s¬C°°mÐEUÓ,VÐ+VÓ'WÓX‰LˆD�&Ü˜TÓ"‰Bäœ#˜m¬g°b«kÕ9¸DÕ@ÐBRÓSÐSÓT‰Fà˜4ˆFˆà�‡|„|Ø#Ÿ[™[×.Ñ.ˆà”Œ;Ü&¤s¬C°°mÐEUÓ,VÐ+VÓ'WÓX‰LˆD�&Ü˜TÓ"‰Bäœ#˜m¬g°b«kÕ9¸DÕ@ÐBRÓSÐSÓT‰Fà˜4ˆFˆà��V˜VÐ#€FØ€M÷U 
×	Ð	ús   ÃB9M2Æ
3M2Æ>A>M2Í2N	c               ó(   € V ^8„  d   QhRRRRRRRR/# r®  rd   )ro   s   "r`   rp   rp   “  s(   € ÷ ñ ˜ð ¨3ð ¸ð Àgñ ra   c                ó~  € V P                   p\        V4      ^8w  g   \        V^ ,          4      ^8w  d   \        hTp^ pVP                  R\        4      p \        WV4      p\        V4      pW�8¼  d    V# WF8¼  d    V# VR8X  d   V^,          pMV\        V^V,          4      ,          p\        WF4      pV^,          pKk  )r‘   r;  r’   )	Úlimitsr•   re  rø   r£   rË  r«   r¤   r×   )	r®   r¯   r°   rÎ  r   r   r;  rŸ   rÃ   s	   &&&      r`   Úevalf_integralrÏ  “  s¼   € Ø�[‰[€FÜ
ˆ6ƒ{�aÔœ3˜v a�y›>¨QÔ.Ü!Ð!Ø€HØ	€AØ�k‰k˜)¤SÓ)€GØ
Ü˜T¨WÓ5ˆÜ# FÓ+ˆØÔØð €Mð ÔØð €Mð �rŒ>ð ˜�M‰Hàœ˜D ! Q¥$›Õ'ˆHÜ�xÓ)ˆØ	ˆQ�Šra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rk   Únumerr>   Údenomr_   rE   rm   ztuple[int, Any, Any]rd   )ro   s   "r`   rp   rp   ­  s)   € ÷ '/ñ '/˜Tð '/¨$ð '/°6ð '/Ð>Rñ '/ra   c                ó$  € ^ RI Hp V! W4      pV! W4      pVP                  4       pVP                  4       pWv,
          pV'       d   VRR3# TP                  4       VP                  4       ,          p	^RIHp
 V
! \        V	4      ^4      '       g   W‰R3# VP                  4       VP                  4       u;8X  d   ^ 8X  d   M MW‰^ 3# VP                  4       ^,          pVP                  4       ^,          pW‰WË,
          VP                  4       ,          3# )a	  
Returns
=======

(h, g, p) where
-- h is:
    > 0 for convergence of rate 1/factorial(n)**h
    < 0 for divergence of rate factorial(n)**(-h)
    = 0 for geometric or polynomial convergence or divergence

-- abs(g) is:
    > 1 for geometric convergence of rate 1/h**n
    < 1 for geometric divergence of rate h**n
    = 1 for polynomial convergence or divergence

    (g < 0 indicates an alternating series)

-- p is:
    > 1 for polynomial convergence of rate 1/n**h
    <= 1 for polynomial divergence of rate n**(-h)

)ÚPolyN)Úequal_valued)Úsympy.polys.polytoolsrÔ  ÚdegreeÚLCr'  rÕ  r]   Ú
all_coeffs)rÑ  rÒ  r_   rÔ  ÚnpolÚdpolr™   r  ÚrateÚconstantrÕ  ÚpcÚqcs   &&&          r`   Úcheck_convergencerà  ­  sÙ   € õ. +Ù�‹>€DÙ�‹>€DØ�‰‹€AØ�‰‹€AØ�5€DßØ�T˜4ÐÐØ�w‰w‹y˜4Ÿ7™7›9Õ$€HÝ%Ùœ˜H› q×)Ò)Ø˜tÐ#Ð#Ø‡{�{ƒ}˜Ÿ™›Ö*¨×*Ø˜qÐ Ð Ø	�‰Ó	˜1Õ	€BØ	�‰Ó	˜1Õ	€BØ˜B�G T§W¡W£YÕ.Ð.Ð.ra   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
rk   r®   r>   r_   rE   rK  r^   r¯   rm   r   rd   )ro   s   "r`   rp   rp   ×  s6   € ÷ Lñ L�ð L˜&ð L¨ð L°Cð L¸Cñ Lra   c                ó”  aaa€ ^RI HpHp ^ RIHp V\        R4      8X  d   \        R4      hV'       d   V P                  WV,           4      p V! W4      pVf   \        R4      hVP                  4       w  r‰\        W4      o\        W4      o\        W‰V4      w  r«pV
^ 8  d   \        RV
) ,          4      hV P                  V^ 4      pVP                  '       g   \        R4      hTpV
^ 8”  g   V
^ 8X  d¯   \        V4      ^8”  dŸ   \        VP                  4      V,          VP                   ,          pTp^p\        V4      ^8”  dR   V\        S! V^,
          4      4      ,          pV\        S! V^,
          4      4      ,          pWþ,          pV^,          pKa  \#        Wó) 4      # V^ 8  p\        V4      ^8  d#   \        R	\        ^V,          4      ,          4      hV^8  g   V! V^4      '       d   V'       g   \        R
V) ,          4      hRp\%        V4      p ^V,          o\        VP                  4      S,          VP                   ,          pV.3VVV3R llp\'        V4      ;_uu_ 4        \)        V^ \*        .RR7      pRRR4       V! XV4      pVe   VV8X  d    VP,                  # W3,          pTpK     + '       g   i     L=; i)zÇ
Sum a rapidly convergent infinite hypergeometric series with
given general term, e.g. e = hypsum(1/factorial(n), n). The
quotient between successive terms must be a quotient of integer
polynomials.
)rV   rÕ  )Ú	hypersimpr   zdoes not support inf precNz#a hypergeometric series is requiredzSum diverges like (n!)^%iz3Non rational term functionality is not implemented.zSum diverges like (%i)^nzSum diverges like n^%ic           	     ó  <€ V '       db   \        V 4      p V^ ;;,          \        S! V ^,
          4      4      ,          uu&   V^ ;;,          \        S! V ^,
          4      4      ,          uu&   \        \        V^ ,          S) 4      4      # rÇ   )r^   r4   r	   r   )ÚkÚ_termÚfunc1Úfunc2rŽ  s   &&€€€r`   ÚsummandÚhypsum.<locals>.summand  s]   ø€ ßÜ˜A›�AØ˜!—H¤¡E¨!¨a­%£LÓ 1Õ1“HØ˜!—H¤¡U¨1¨q­5£\Ó!2Õ2“HÜ¤¨U°1­X¸°vÓ >Ó?Ð?ra   Ú
richardson)Úmethod)r'  rV   rÕ  Úsympy.simplify.simplifyrã  rŸ  re  r³   Úas_numer_denomr<   rà  r—   rd  r]   r4   r™   r  r   r7   r   r   Ú
mpmath_infr  )r®   r_   rK  r¯   rV   rÕ  rã  ÚhsrJ  Údenr|   Úgr™   ÚetermÚtermrš   rå  ÚaltÚvoldÚndigÚterm0ré  ru   Úvfrç  rè  rŽ  s   &&&&                    @@@r`   Úhypsumrú  ×  s\  ú€ ÷ -Ý1àŒu�U‹|ÔÜ!Ð"=Ó>Ð>çØ�y‰y˜ �IÓ&ˆÙ	�4Ó	€BØ	‚zÜ!Ð"GÓHÐHØ× Ñ Ó"�H€Cä�QÓ€EÜ�QÓ€Eä ¨!Ó,�G€Aˆ!àˆ1„uÜÐ4¸¸Õ;Ó<Ð<à�I‰I�a˜‹O€EØ××ÐÜ!Ð"WÓXÐXà€Dð 	ˆ1„u��a”œC ›F QœJÜ�D—F‘F“˜tÕ#¨¯©Õ.ˆØˆØˆÜ�$‹i˜!ŒmØ”C™˜a !�e›Ó%Õ%ˆDØ”S™˜q 1�u›Ó&Õ&ˆDØ�IˆAØ��FŠAÜ˜A˜uÓ%Ð%à�!‰eˆÜˆq‹6�AŒ:ÜÐ7¼#¸aÀ½c»(ÕBÓCÐCØˆqŒ5‘\ ! Q×'Ò'·ÜÐ5¸!¸Õ<Ó=Ð=àˆÜ˜4Ó ˆØð �d•FˆEÜ˜Ÿ™“[ EÕ)¨d¯f©fÕ4ˆEà"' ÷ @ñ @ô ˜$—•Ü˜ 1¤j /¸,ÔG�÷  á�q˜$“ˆBØÒ D¨B¤JØð �w‰wˆð �LˆDØŠD÷  —ús   É-J7Ê7K	c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   r®   z	'Product'r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp   &  s(   € ÷ ñ �Yð  cð °Hð Àñ ra   c                ó   € \         ;QJ d&    R  V P                   4       F  '       d   K   RM	  RM! R  V P                   4       4      '       d   \        V P                  4       WR7      pV# ^ RIHp \        V P                  V4      WR7      pV# )c              3  ób   "  € T F%  q^,          V^,          ,
          P                   x € K'  	  R# 5i)r‘   N)r`  )rñ   Úls   & r`   rò   Úevalf_prod.<locals>.<genexpr>'  s    é € Ð
9©[¨ˆa�D�1�Q•4�K×#Ö#«[ùs   ‚-/FT)r¯   r°   rH   )rù   rÎ  rµ   rˆ  Úsympy.concrete.summationsrI   Úrewrite)r®   r¯   r°   rŸ   rI   s   &&&  r`   Ú
evalf_prodr  &  sc   € ß
ƒsÑ
9¨T¯[ª[Ó
9‡s‡s‚sÑ
9¨T¯[ª[Ó
9×9Ò9Ü�t—y‘y“{¨Ô?ˆð €Mõ 	2Ü�t—|‘| CÓ(¨tÔEˆØ€Mra   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rk   r®   z'Sum'r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp   /  s(   € ÷ '&ñ '&�Eð '& ð '&¨xð '&¸Gñ '&ra   c           	     ó  € ^RI Hp RV9   d   V P                  VR,          4      p V P                  pV P                  p\        V4      ^8w  g   \        V^ ,          4      ^8w  d   \        hVP                  '       d   RRVR3# V^
,           p V^ ,          w  rxp	V	\        P                  Jg%   V\        P                  J g   V\        V4      8w  d   \        h\        WG\        V4      V4      p
V\        V
4      ,
          p\        V
4      R8  d   \        WG\        V4      V4      p
V
R\        W4      R3#   \         dÍ    T! R4      T) ,          p\        ^^4       F^  p^T,          T,          ;rçT P!                  YçTRR7      w  ppTP#                  4       pT\        P$                  J d   \        hTT8:  g   K^   M	  \        \#        \'        X4      ^T4      ^ ,          4      p\#        XYb4      w  ppppTf   T) pTf   T) pTTTT3u # i ; i)r‘   r&  r³   Ng       @F)rO  r_   ÚepsÚeval_integraliöÿÿÿ)r'  rV   r³   ÚfunctionrÎ  r•   re  Úis_zeror9   r©  rª  r^   rú  rs   r×   ÚrangeÚeuler_maclaurinrµ   r)  r]   )r®   r¯   r°   rV   r�  rÎ  rŽ  r_   rá   rQ  ru   rÝ   r  r   rO  rš   ÚerrrP   rQ   r¥   r¦   s   &&&                  r`   Ú	evalf_sumr  /  sß  € ÝØ�ÔØ�y‰y˜ �Ó)ˆØ�=‰=€DØ�[‰[€FÜ
ˆ6ƒ{�aÔœ3˜v a�y›>¨QÔ.Ü!Ð!Ø‡|‡|€|Ø�T˜4 Ð%Ð%Ø�2�I€Eð&Ø˜•)‰ˆˆaØ”A—J‘JÓ !¤q×'9Ñ'9Ó"9¸QÄ#ÀaÃ&¼[Ü%Ð%ä�4œC ›F EÓ*ˆØ”w˜q“zÕ!ˆÜ�1‹:˜ÔÜ�t¤ A£¨Ó.ˆAØ�$œ˜DÓ(¨$Ð.Ð.øÜô &á�C‹j˜D˜5Õ!ˆÜ�q˜!–ˆAØ�q•D˜4•KÐˆAØ×)Ñ)¨A¸Ø#ð *ó %‰FˆAˆsà—)‘)“+ˆCØ”a—e‘e‹|Ü)Ð)Ø�cŽzÙñ ô ”eœC ›H b¨'Ó2°1Õ5Ó6ˆÜ!& q¨%Ó!9ÑˆˆB�˜ØŠ>Ø�TˆFØŠ>Ø�TˆFØ�2�v˜vÐ%Ò%ð%&ús   ÂB&D4 Ä4B HÆ9AHÈ
Hc               ó(   € V ^8„  d   QhRRRRRRRR/# ©	rk   rl   r>   r¯   r^   r°   r±   rm   r    rd   )ro   s   "r`   rp   rp   _  s(   € ÷ ñ �Dð  ð ¨hð ¸7ñ ra   c                ó(  € VR ,          V ,          p\        V\        4      '       d   V'       g   R# VP                  RVR3# RV9  d   / VR&   VR,          pVP                  V R\        34      w  rVWa8¼  d   V# \        \        V4      W4      pWq3W@&   V# )r³   NÚ_cacher´   )r“   r   r  rø   rr   rµ   r8   )rl   r¯   r°   ÚvalÚcacheÚcachedÚcached_precru   s   &&&     r`   Úevalf_symbolr  _  s–   € Ø
�&�/˜!Õ
€CÜ�#”s×ÒßØ)Ð)Ø�y‰y˜$  dÐ*Ð*à˜7Ô"Ø "ˆG�HÑØ˜Õ!ˆØ#Ÿi™i¨¨D´)Ð+<Ó=ÑˆØÔØˆMÜ”'˜#“, Ó.ˆØ�9ˆ‰Øˆra   z:dict[Type[Expr], Callable[[Expr, int, OPT_DICT], TMP_RES]]Úevalf_tablec                 ó’  € ^ RI Hp  ^ RIHp ^RIHp ^RIHp ^RIH	pH
pHpHpHpHp	Hp
HpHpHpHpHpHp ^RIHp ^RIHpHp ^ RIHpHpHp ^ R	IH pH!p ^ R
I"H#pH$p ^ RI%H&p ^ RI'H(pH)pH*pH+p ^ RI,H-p  / V\\        bV\\        bV\^        bV\`        bV\b        bVR bVR bVR bVR bVR bVR bV
R bVR bV	R bV\d        bV\f        bV\f        b/ V\f        bV\h        bV\j        bV\l        bV\n        bV\p        bV\r        bV\t        bV\v        bV\x        bV\z        bV \|        bV\~        bV \€        bV\‚        bV\„        bCsCR# )rÈ   rJ   rH   r?   rA   )rh  rV   rf  ry   rX   r)  r‹  rF  rÁ  rW   rz   r¢   rY   rC   )ÚDummyrE   )rO   rQ   rP   rL   rR   )Ú	Piecewise)rU   r{  r|  r}  rF   c                ó   € R R VR 3# r†   rd   ©rl   r¯   r°   s   &&&r`   Ú<lambda>Ú%_create_evalf_table.<locals>.<lambda>‰  s   € ¨¨d°D¸$Ñ'?ra   c                ó   € \         R VR 3# r†   ©r   r  s   &&&r`   r  r  Š  ó   € ¤t¨T°4¸Ñ&>ra   c                ó   € \         R VR 3# r†   )r   r  s   &&&r`   r  r  ‹  s   € ¬¨t°T¸4Ñ'@ra   c                ó    € \        V4      R VR 3# r†   )r(   r  s   &&&r`   r  r  Œ  s   € ¤f¨T£l°D¸$ÀÑ%Era   c                ó    € \        V4      R VR 3# r†   )r"   r  s   &&&r`   r  r  �  s   € ¬¨d«°T¸4ÀÑ'Fra   c                ó   € R \         R V3# r†   r  r  s   &&&r`   r  r  Ž  s   € °´t¸TÀ4Ñ0Hra   c                ó   € \         R VR 3# r†   )r   r  s   &&&r`   r  r  �  s   € ¬u°d¸DÀ$Ñ.Gra   c                ó"   € \         P                  # r†   )r9   r¢   r  s   &&&r`   r  r  �  s
   € ´!×2CÒ2Cra   c                ó   € \         R VR 3# r†   )r   r  s   &&&r`   r  r  ‘  r   ra   N)DÚsympy.concrete.productsrK   r   rI   rö   r@   rE  rB   r'  rh  rV   rf  ry   rX   r)  r‹  rF  rÁ  rW   rz   r¢   rY   rw  rD   r¿  r  rE   r  rO   rQ   rP   r‰  rM   rN   Ú#sympy.functions.elementary.integersrS   rT   Ú$sympy.functions.elementary.piecewiser  r  rU   r{  r|  r}  Úsympy.integrals.integralsrG   r  r  r  r!  rx  r…  rB  r]  rt  rŠ  r“  rË   rÐ   rÔ   r  r  rÏ  r  r  r¡  r¥  r  )!rK   rI   r@   rB   rh  rV   rf  ry   rX   r)  r‹  rF  rÁ  rW   rz   r¢   rY   rD   r  rE   rO   rQ   rP   rM   rN   rS   rT   r  rU   r{  r|  r}  rG   s!                                    r`   Ú_create_evalf_tabler,  s  sæ  € å/Ý-ÝÝ÷/÷ /÷ /õ /åß%ß@Ñ@ß?ßBÝ>ßLÓLÝ2ð)Ø”ð)àŒ|ð)ð 	Œ{ð)ð 	”.ð	)ð
 	”ð)ð 	Ñ?ð)ð 	Ñ>ð)ð 	Ñ@ð)ð 	ÑEð)ð 	ÑFð)ð 	ÑHð)ð 	ÑGð)ð 	ÑCð)ð 	Ñ>ð)ð  	ŒYð!)ð$ 	ŒZð%)ð& 	ŒZñ')ð( 	ŒZð))ð, 	ŒYð-)ð. 	ŒYð/)ð0 	ŒYð1)ð4 	ŒYð5)ð6 	Œjð7)ð8 	ŒYð9)ð< 	ŒHð=)ð> 	ŒHð?)ð@ 	Œ{ðA)ðB 	”ðC)ðF 	”.ðG)ðH 	ŒYðI)ðJ 	”ðK)ðL 	”?ðM)ðP 	œñQ)‚Kra   c               ó(   € V ^8„  d   QhRRRRRRRR/# r  rd   )ro   s   "r`   rp   rp   ¯  s.   € ÷ Uñ UˆTð U˜ð U xð U°Gñ Ura   c                óô  € ^ RI HpHp  \        \	        V 4      ,          pV! WV4      pVP                  R4      '       df   \!        RV 4       \!        R	\#        V\$        4      '       d"   \'        V^ ,          ;'       g    \(        ^24      MT4       \!        R
V4       \!        4        VP                  RR4      pV'       d[   VRJ d   TpMF\+        \-        R\.        P0                  ! V4      ,          R,           4      4      pV^8X  d
   V^,          p\3        Wn4      pVP                  R4      '       d   \5        WV4       V#   \
         Ed.    RT9   d"   T P                  \        YR,          4      4      p T P                  T4      pTf   \        h\        TRR4      pTf   \        hT! 4       w  ršT	P                  ! T4      '       g   T
P                  ! T4      '       d   \        hT	'       g   Rp	RpM9T	P                  '       d"   T	P                  ! TRR7      P                  p	TpM\        hT
'       g   Rp
RpM9T
P                  '       d"   T
P                  ! TRR7      P                  p
TpM\        hYšY¼3p ELMi ; i)a&  
Evaluate the ``Expr`` instance, ``x``
to a binary precision of ``prec``. This
function is supposed to be used internally.

Parameters
==========

x : Expr
    The formula to evaluate to a float.
prec : int
    The binary precision that the output should have.
options : dict
    A dictionary with the same entries as
    ``EvalfMixin.evalf`` and in addition,
    ``maxprec`` which is the maximum working precision.

Returns
=======

An optional tuple, ``(re, im, re_acc, im_acc)``
which are the real, imaginary, real accuracy
and imaginary accuracy respectively. ``re`` is
an mpf value tuple and so is ``im``. ``re_acc``
and ``im_acc`` are ints.

NB: all these return values can be ``None``.
If all values are ``None``, then that represents 0.
Note that 0 is also represented as ``fzero = (0, 0, 0, 0)``.
rå   r³   Nrí   F)Ú
allow_intsr<  z	### inputz
### outputz### rawÚchopTg      @rì   gÅ °rh‘
À)r  rP   rQ   r  ÚtypeÚKeyErrorr³   rš  r€  re  ÚgetattrÚhasr¶   Ú
_to_mpmathr  rø   r@  r“   r”   r1   r   r^   Úroundra  Úlog10rÞ   râ   )rl   r¯   r°   r  r  Úrfr7  Úxerí   rP   rQ   ÚreprecÚimprecr0  Ú	chop_precs   &&&            r`   rµ   rµ   ¯  sû  € ÷> Jð #Üœ˜a›Õ!ˆÙˆq˜Ó ˆð@ ‡{�{�9×ÒÜˆk˜1ÔÜˆl¼ÀAÄu×9MÒ9MœF 1 Q¥4§= =¬5°"Ô5ÐSTÔUÜˆi˜ÔÜŒØ�;‰;�v˜uÓ%€DßØ�4‹<Ø‰Iô
 œE &¬¯ª°DÓ)9Õ"9¸CÕ"?Ó@ÓAˆIØ˜AŒ~Ø˜Q•�	Ü�qÓ$ˆØ‡{�{�8×ÒÜ�Q˜4Ô Ø€Høôe õ #à�WÔØ—‘”z $°­Ó8Ó9ˆAØ�]‰]˜4Ó ˆØŠ:Ü%Ð%Ü˜r >°4Ó8ˆØÒÜ%Ð%Ù“‰ˆØ�6Š6�#�;Š;˜"Ÿ&š& Ÿ+š+Ü%Ð%ßØˆBØ‰FØ�\�\ˆ\Ø—’˜t°Ô6×<Ñ<ˆBØ‰Fä%Ð%ßØˆBØ‰FØ�\�\ˆ\Ø—’˜t°Ô6×<Ñ<ˆBØ‰Fä%Ð%Ø�FÐ"‹ð;#ús0   ŠD> Ä>BI7ÇI7Ç+I7È.I7È1I7É+I7É6I7c                ó  € Vf   \         MVP                   pVf   \        MVP                  pV \        P                  J d   \        hV w  rE pV'       d   V'       g   \
        pV! WE34      # V'       d	   V! V4      # V! \
        4      # )z@Turn the quad returned by ``evalf`` into an ``mpf`` or ``mpc``. )r   r	   r9   r¢   re  r   )r  Úctxr   r   rP   rQ   r»   s   &&     r`   r«  r«    sl   € à’k�( s§|¡|€CØ’k�( s§|¡|€CØŒA×ÑÓÜ!Ð!Ø�L€BˆAˆqß	ßÜˆBÙ�B�8‹}Ðß	Ù�2‹wˆá”5‹zÐra   c                  óZ   € ] tR tRt$ RtRtR]R&   RR lt]tR R lt	R	 R
 lt
RR ltRtR# )Ú
EvalfMixini  z$Mixin class adding evalf capability.ztuple[str, ...]Ú	__slots__Nc           	     óð  € ^RI HpHp	 Ve   TM^pV'       d   \        V4      '       d   \	        R4      hV^8X  dN   \        W	4      '       d=   ^RIHp
 V P                  ^W#WEWg4      pV
! V4      pVP                  ^V,
          4      pV# \        '       g   \        4        \        V4      pR\        V\        V\        ,          4      4      RVRVRV/pVe   W.R&   Ve   WnR	&    \        W^,           V4      pT\*        P,                  J d   T# Tw  ppppT\*        P.                  J g   T\*        P.                  J d   \*        P.                  # T'       d+   \        \1        TT4      ^4      pTP2                  ! TT4      pM\*        P4                  pT'       dH   \        \1        TT4      ^4      pTP2                  ! TT4      pTT\*        P6                  ,          ,           # T#   \          d�    \#        T R4      '       d&   Te"   T P%                  T4      P'                  T4      pMT P'                  T4      pTf   T u # TP(                  '       g   Tu #  \        TYÞ4      p ELi  \          d    Tu u # i ; ii ; i)
a©  
Evaluate the given formula to an accuracy of *n* digits.

Parameters
==========

subs : dict, optional
    Substitute numerical values for symbols, e.g.
    ``subs={x:3, y:1+pi}``. The substitutions must be given as a
    dictionary.

maxn : int, optional
    Allow a maximum temporary working precision of maxn digits.

chop : bool or number, optional
    Specifies how to replace tiny real or imaginary parts in
    subresults by exact zeros.

    When ``True`` the chop value defaults to standard precision.

    Otherwise the chop value is used to determine the
    magnitude of "small" for purposes of chopping.

    >>> from sympy import N
    >>> x = 1e-4
    >>> N(x, chop=True)
    0.000100000000000000
    >>> N(x, chop=1e-5)
    0.000100000000000000
    >>> N(x, chop=1e-4)
    0

strict : bool, optional
    Raise ``PrecisionExhausted`` if any subresult fails to
    evaluate to full accuracy, given the available maxprec.

quad : str, optional
    Choose algorithm for numerical quadrature. By default,
    tanh-sinh quadrature is used. For oscillatory
    integrals on an infinite interval, try ``quad='osc'``.

verbose : bool, optional
    Print debug information.

Notes
=====

When Floats are naively substituted into an expression,
precision errors may adversely affect the result. For example,
adding 1e16 (a Float) to 1 will truncate to 1e16; if 1e16 is
then subtracted, the result will be 0.
That is exactly what happens in the following:

>>> from sympy.abc import x, y, z
>>> values = {x: 1e16, y: 1, z: 1e16}
>>> (x + y - z).subs(values)
0

Using the subs argument for evalf is the accurate way to
evaluate such an expression:

>>> (x + y - z).evalf(subs=values)
1.00000000000000
)rV   rZ   z"subs must be given as a dictionary)Ú_magr;  r0  rì   r<  r³   r¹  )r'  rV   rZ   r;   Ú	TypeErrorr“   r®   rC  rµ   r6  r  r,  r6   r¤   r^   ÚLG10re  rž  r³   r€  r¶   r9   r¢   r)  r×   r(  rz   ry   )Úselfr_   r³   Úmaxnr0  rì   r¹  r<  rV   rZ   rC  r˜   rO  r¯   r°   rŸ   ru   rP   rQ   r¥   r¦   r™   s   &&&&&&&&              r`   rµ   ÚEvalfMixin.evalf  s  € ÷B 	+Ø’‰A Bˆç”K ×%Ò%ÜÐ@ÓAÐAð �Œ6”j ×.Ò.Ý"Ø—‘˜A˜t¨4¸ÓGˆBÙ�R“ˆAØ—‘˜!˜a�%“ˆBØˆIç‹{ÜÔ!Ü˜1‹~ˆØœc $¬¨D´­I«Ó7¸ÀØ˜ ¨Gð5ˆàÒØ"�F‰OØÒØ"�F‰Oð	Ü˜4¨¥¨7Ó3ˆFð" ”Q×&Ñ&Ó&ØˆMØ!'ÑˆˆB�˜Ø”—‘‹;˜"¤§¡›+Ü—5‘5ˆLßÜ”C˜˜fÓ% qÓ)ˆAØ—’˜B Ó"‰Bä—‘ˆBßÜ”C˜˜fÓ% qÓ)ˆAØ—’˜B Ó"ˆBØ˜œ1Ÿ?™?Õ*Õ*Ð*àˆIøô? #ô 	ä�t˜V×$Ò$¨Ò)9Ø—I‘I˜d“O×/Ñ/°Ó5‘à×$Ñ$ TÓ*�ØŠyØ’Ø—[—[�[Ø’ðä˜q $Ó0“øÜ&ô à”ðúð	ús7   Ã#G ÇAI5È9I5ÉI5ÉIÉI1É,I5É0I1É1I5c               ó    € V ^8„  d   QhRRRR/# )rk   r¯   r^   rm   r>   rd   )ro   s   "r`   rp   ÚEvalfMixin.__annotate__š  s   € ÷ ñ ˜3ð  4ñ ra   c                ó4   € V P                  V4      pVf   T pV# )z@Helper for evalf. Does the same thing but takes binary precision)r€  )rF  r¯   r7  s   && r`   Ú_evalfÚEvalfMixin._evalfš  s!   € à×Ñ˜TÓ"ˆØŠ9ØˆAØˆra   c               ó    € V ^8„  d   QhRRRR/# )rk   r¯   r^   rm   úExpr | Nonerd   )ro   s   "r`   rp   rJ  ¡  s   € ÷ ñ  ð ¨ñ ra   c                	ó   € R # r†   rd   )rF  r¯   s   &&r`   r€  ÚEvalfMixin._eval_evalf¡  s   € Ùra   c                	ó4  € R pV'       d   V P                   '       d   V P                  # \        V R4      '       d   \        V P	                  V4      4      #  \        W/ 4      p\        V4      #   \         Ed    T P                  T4      pTf   \        T4      hTP                  '       d   \        TP                  4      u # TP                  4       w  rgT'       d)   TP                   '       d   \        TP                  4      pM*TP                  '       d   TP                  pM\        T4      hT'       d)   TP                   '       d   \        TP                  4      pM*TP                  '       d   TP                  pM\        T4      h\        Yg34      u # i ; i)zcannot convert to mpmath numberÚ_as_mpf_val)r`  r™   rž  r	   rS  rµ   r«  re  r€  r—   r˜  r  rí   r   r   )rF  r¯   r/  ÚerrmsgrŸ   ru   rP   rQ   s   &&&     r`   r5  ÚEvalfMixin._to_mpmath¤  s&  € à2ˆß˜$Ÿ/Ÿ/˜/Ø—6‘6ˆMÜ�4˜×'Ò'Ü˜D×,Ñ,¨TÓ2Ó3Ð3ð	&Ü˜4 rÓ*ˆFÜ! &Ó)Ð)øÜ"õ 	&Ø× Ñ  Ó&ˆAØŠyÜ  Ó(Ð(Ø�z�zˆzÜ §¡Ó(Ò(à—^‘^Ó%‰FˆBß˜bŸmŸm˜mÜ˜bŸd™d“^‘Ø——�Ø—X‘X‘ä  Ó(Ð(ß˜bŸmŸm˜mÜ˜bŸd™d“^‘Ø——�Ø—X‘X‘ä  Ó(Ð(Ü˜R˜HÓ%Ò%ð)	&ús<   ÁA- Á-=FÂ+FÃ+FÃ.'FÄFÄ6FÅ'FÅ0$FÆFrd   )é   Néd   FFNF)T)re   rf   rg   rh   Ú__doc__rA  Ú__annotations__rµ   r_   rL  r€  r5  ri   rd   ra   r`   r@  r@    s1   ‡ Ù.à!#€IˆÓ#ôyðv 	€Aõõ÷&ð &ra   r@  c                ó>   € \        V RR7      P                  ! V3/ VB # )ah  
Calls x.evalf(n, \*\*options).

Explanations
============

Both .n() and N() are equivalent to .evalf(); use the one that you like better.
See also the docstring of .evalf() for information on the options.

Examples
========

>>> from sympy import Sum, oo, N
>>> from sympy.abc import k
>>> Sum(1/k**k, (k, 1, oo))
Sum(k**(-k), (k, 1, oo))
>>> N(_, 4)
1.291

T)Úrational)r8   rµ   )rl   r_   r°   s   &&,r`   r·   r·   Å  s!   € ô. �1˜tÔ$×*Ò*¨1Ñ8°Ñ8Ð8ra   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )rk   rl   r>   r  rO  rO  r^   r°   zOPT_DICT | Nonerm   r    rd   )ro   s   "r`   rp   rp   ß  s2   € ÷ 1 ñ 1  ð 1 ¨Kð 1 Ø!$ð1 à'6ð1 àBIñ1 ra   c                ó�  € Ve[   VP                   '       g   VP                  '       d   V^ 8”  g   \        R4      h\        ^V,          ^/ 4      w  p  p\	        V4      p\        V ^/ 4      w  rg p\	        V4      \	        V4      r˜\        W‰4      ^,           p
\        ^W*,           ^,           4      pT;'       g    / p\        WV4      # )aÝ  
Evaluate *x* to within a bounded absolute error.

Parameters
==========

x : Expr
    The quantity to be evaluated.
eps : Expr, None, optional (default=None)
    Positive real upper bound on the acceptable error.
m : int, optional (default=0)
    If *eps* is None, then use 2**(-m) as the upper bound on the error.
options: OPT_DICT
    As in the ``evalf`` function.

Returns
=======

A tuple ``(re, im, re_acc, im_acc)``, as returned by ``evalf``.

See Also
========

evalf

zeps must be positive)rd  r˜  r—   rµ   rs   r¤   )rl   r  rO  r°   r7  r»   r~   ÚdÚnrÚnir_   r™   s   &&&&        r`   Ú_evalf_with_bounded_errorra  ß  s¬   € ð: ‚Ø——� 3§<§< <¸¸a¼ÜÐ3Ó4Ð4Ü˜1˜S�5 ! RÓ(‰
ˆˆ1ˆa�Ü�A‹Jˆä�q˜!˜R“�J€Aˆ!ˆQô �Q‹Zœ ›ˆÜˆB‹�a�€Aô 	ˆAˆq�u�q�yÓ€Aà�mˆm˜€GÜ��wÓÐra   )F)r‘   r†   )rV  )NrÈ   N)°Ú__conditional_annotations__rX  Ú
__future__r   Útypingr   r   r   r   r   ra  Úmpmath.libmpr¸   Úmpmathr   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   r\   Úmpmath.libmp.backendr4   Úmpmath.libmp.libmpcr5   Úmpmath.libmp.libmpfr6   r7   r8   Ú	singletonr9   Úsympy.external.gmpyr:   Úsympy.utilities.iterablesr;   Úsympy.utilities.lambdifyr<   Úsympy.utilities.miscr=   Úsympy.core.exprr>   Úsympy.core.addr@   Úsympy.core.mulrB   Úsympy.core.powerrD   Úsympy.core.symbolrE   r+  rG   r   rI   r(  rK   r‰  rM   rN   r  rO   rP   rQ   r)  rS   rT   r  rU   r'  rV   rW   rX   rY   rZ   rb  rE  r÷   rŸ  r£   rr   r>  ÚArithmeticErrorrc   r”   r^   r„   r    r•  Ústrr±   rs   r€   r�   rƒ   r‰   r–   r«   r½   rÄ   rË   rÐ   rÔ   rÚ   rÞ   râ   r  r  r  r  r  r!  r8  rB  r]  rt  rx  r…  rŠ  r“  rš  r¡  r¥  r¬  rË  rÏ  rà  rú  r  r  r  r  rY  r,  rµ   r«  r@  r·   ra  )rb  s   @r`   Ú<module>rv     s€  øðôõ #ß ?Õ ?ã å ÷G÷ Gõ Gå $÷W÷ W÷ W÷ W÷ W÷ W÷ W÷ Wõ Wõ
 5Ý $Ý )ß 8å Ý Ý *Ý 1Ý -Ý 'çÝ$Ý"Ý"Ý$Ý(Ý2Ý-Ý/ß?ß@Ñ@ßBÝ=ßJÕJà‡y‚y�ƒ}€Ø€ò(ñ ˆJÓ€Ù�:�+Ó€	ð €ô	˜ô 	ðð ��S˜#˜sÐ"Õ
#€ðð& €ð ��S��>€õ!÷Hð> ˜˜S�	 3¨¨SÐ0Õ1€ð 
öó 
ðà	öó 
ð÷$J÷NGõõ:&õ,õ 0õ<õ<õ"õ&"õ,0÷l$õ^6õ7õ(õAõ4õSõl."õb{ õ|xGõDKõ
='õ@2&õj6õõõ"-õ"õ\õ~õ4'/õTLõ^õ'&õ`ð" KM€ÐGÓ Lò9õxUôp÷"j&ñ j&ôZ9÷41 ñ 1 ra   