+
    ‰°³j�  ã                   óö  € R t ^ RIt^ RIt^RI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"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/H0t0 ^RI1H2t2H3t3H4t4H5t5H6t6H7t7H8t8H-t-H9t9 ^RI:H;t;H<t<H=t=H>t>H?t?H@t@HAtAHBtBHCtCHDtDHEtEHFtFHGtGHHtHHItIHJtJHKtKHLtLHMtMHNtN ^RI	HOtO ^RIPHQtQHRtRHStS  ! R	 R
]T4      tU R tV]R8X  d   R tV]3R ltWR tX]3R ltYR tZR t[R t\R t]]R3R lt^]R3R lt_]3R lt`]3R lta]R3R ltbR,R ltcR,R ltd]^3R lte]3R ltf]3R ltg]3R  lth]3R! lti]3R" ltj]3R# ltk]3R$ ltl]3R% ltm]3R& ltn]3R' lto]3R( ltp]3R) ltq]3R* ltr]3R+ ltsR# )-zÝ
This module implements computation of hypergeometric and related
functions. In particular, it provides code for generic summation
of hypergeometric series. Optimized versions for various special
cases are also provided.
N)ÚMPZ_ZEROÚMPZ_ONEÚBACKENDÚxrangeÚexec_)Úgcd)%ÚComplexResultÚ
round_fastÚround_nearestÚnegative_rndÚbitcountÚto_fixedÚfrom_man_expÚfrom_intÚto_intÚfrom_rationalÚfzeroÚfoneÚfnoneÚftwoÚfinfÚfninfÚfnanÚmpf_signÚmpf_addÚmpf_absÚmpf_posÚmpf_cmpÚmpf_ltÚmpf_leÚmpf_gtÚmpf_min_maxÚmpf_perturbÚmpf_negÚ	mpf_shiftÚmpf_subÚmpf_mulÚmpf_divÚ
sqrt_fixedÚmpf_sqrtÚmpf_rdiv_intÚmpf_pow_intÚto_rational)	Úmpf_piÚmpf_expÚmpf_logÚpi_fixedÚmpf_cos_sinÚmpf_cosÚmpf_sinr)   Ú	agm_fixed)Úmpc_oneÚmpc_subÚmpc_mul_mpfÚmpc_mulÚmpc_negÚcomplex_int_powÚmpc_divÚmpc_add_mpfÚmpc_sub_mpfÚmpc_logÚmpc_addÚmpc_posÚ	mpc_shiftÚmpc_is_infnanÚmpc_zeroÚmpc_sqrtÚmpc_absÚmpc_mpf_divÚ
mpc_squareÚmpc_exp)Úifac)Úmpf_gamma_intÚ	mpf_eulerÚeuler_fixedc                   ó   € ] tR t^+tRtR# )ÚNoConvergence© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__rO   ó    ÚV/home/luca/screen-checking/.venv/lib/python3.14/site-packages/mpmath/libmp/libhyper.pyrN   rN   +   s   † ÛrU   rN   c                ó  € V w  rr4RP                  V4      pRWVRV WQR V3,          pRV9   pVR8H  pT;'       g    Tp	. p
V
P                  p. p. p. p. p. p. p. p. pV! R4       V! R4       V! R4       V! R4       V	'       d	   V! R	4       V'       d"   V! R
4       V! R4       V! R4       V! R4       MV! R4       V! R4       V! R4       V! R4       V! R4       V! R4       V! R4       V'       d)   V! R4       V! R4       V! R4       V! R4       V! R4       \        V4       EFÉ  w  ppRR.VV8¬  ,          pVR8X  d1   WÎ.VV8¬  ,          P                  V4       V! RVVV3,          4       KL  VR8X  d3   Wß.VV8¬  ,          P                  V4       V! RVVVVV3,          4       K…  VR8X  dq   VV.VV8¬  ,          P                  V4       V! RV,          4       V! R4       V! R4       V! R4       V! RVV3,          4       V! R4       V! R VV3,          4       Kü  VR8X  dÄ   VV.VV8¬  ,          P                  V4       V! R!V,          4       V! R"4       V! R4       V! R#4       V! R4       V! R4       V! R4       V! R$VV3,          4       V! R4       V! R%VV3,          4       V! R4       V! R4       V! R&VV3,          4       V! R4       V! R'VV3,          4       EKÆ  \        h	  \	        V4      p\	        V4      p\        VV4      pVVR pVVR pV! R(4       V! R)4       V! R*4       V	'       d	   V! R+4       V! R,4       R-P                  V Uu. uF  pR.P                  R/\        V4      4      NK   	  upV Uu. uF  pR0P                  R/\        V4      4      NK   	  up,           V Uu. uF  pR1P                  R/\        V4      4      NK   	  up,           4      pR-P                  V Uu. uF  pR2P                  R/\        V4      4      NK   	  upV Uu. uF  pR3P                  R/\        V4      4      NK   	  up,           V Uu. uF  pR4P                  R/\        V4      4      NK   	  up,           R5.,           4      pV'       d   V! R6V,           4       V! R7V,           4       V! R84       V'       d   V! R94       V! R:4       V! R;4       V	'       Ed_   \        V4       F"  pV! R<VV,          VV,          3,          4       K$  	  V F$  pV! R=P                  R/\        V4      4      4       K&  	  V F$  pV! R>P                  R/\        V4      4      4       K&  	  \        V4       F"  pV! R?VV,          VV,          3,          4       K$  	  V F$  pV! R@P                  R/\        V4      4      4       K&  	  V F$  pV! RAP                  R/\        V4      4      4       K&  	  V'       d3   V'       d   V! RB4       V! RC4       V! RD4       MBV! RE4       V! RF4       M1V'       d   V! RG4       V! RC4       V! RD4       MV! RH4       V! RI4       V F4  pV! RJP                  R/\        V4      4      4       V! RC4       V! RD4       K6  	  V F¨  pV! RKP                  R/\        V4      4      4       V! RLP                  R/\        V4      4      4       V! RMP                  R/\        V4      4      4       V! RNP                  R/\        V4      4      4       V! ROP                  R/\        V4      4      4       Kª  	  Mž\        V4       F"  pV! R<VV,          VV,          3,          4       K$  	  V F$  pV! R=P                  R/\        V4      4      4       K&  	  V F$  pV! R>P                  R/\        V4      4      4       K&  	  V'       d
   V! RP4       MV! RH4       V	'       d"   V! RQ4       V! RR4       V! RS4       V! RT4       MV! RQ4       V! RU4       V! RT4       V! RV4       V! RW4       V F$  pV! RXP                  R/\        V4      4      4       K&  	  V F$  pV! RYP                  R/\        V4      4      4       K&  	  V F$  pV! RZP                  R/\        V4      4      4       K&  	  V F$  pV! R[P                  R/\        V4      4      4       K&  	  V F$  pV! R\P                  R/\        V4      4      4       K&  	  V F$  pV! R]P                  R/\        V4      4      4       K&  	  V F$  pV! R^P                  R/\        V4      4      4       K&  	  V F$  pV! R_P                  R/\        V4      4      4       K&  	  V	'       db   V! R`4       V! Ra4       V! Rb4       V! Rc4       V! Rd4       V! Re4       V! Rf4       V! Rg4       V! Rh4       V! R4       V! Ri4       V! Rj4       M0V! R`4       V! Rb4       V! Rk4       V! R4       V! Ri4       V! Rl4       RmP                  Rn V
 4       4      p
RoV,          V
,           p
/ p\        V
\        4       V4       V
VV,          3# u upi u upi u upi u upi u upi u upi )pz‚
Returns a function that sums a generalized hypergeometric series,
for given parameter types (integer, rational, real, complex).

Ú zhypsum_%i_%i_%s_%s_%sNÚCz$MAX = kwargs.get('maxterms', wp*100)zHIGH = MPZ_ONE<<epsshiftzLOW = -HIGHz!SRE = PRE = one = (MPZ_ONE << wp)zSIM = PIM = MPZ_ZEROzxsign, xm, xe, xbc = z[0]zif xsign: xm = -xmzysign, ym, ye, ybc = z[1]zif ysign: ym = -ymzxsign, xm, xe, xbc = zzoffset = xe + wpzif offset >= 0:z    ZRE = xm << offsetzelse:z    ZRE = xm >> (-offset)zoffset = ye + wpz    ZIM = ym << offsetz    ZIM = ym >> (-offset)ÚAÚBÚZz%sINT_%i = coeffs[%i]ÚQz!%sP_%i, %sQ_%i = coeffs[%i]._mpq_ÚRz%xsign, xm, xe, xbc = coeffs[%i]._mpf_z    %sREAL_%i = xm << offsetz    %sREAL_%i = xm >> (-offset)z__re, __im = coeffs[%i]._mpc_zxsign, xm, xe, xbc = __rezysign, ym, ye, ybc = __imz    %sCRE_%i = xm << offsetz    %sCRE_%i = xm >> (-offset)z    %sCIM_%i = ym << offsetz    %sCIM_%i = ym >> (-offset)zfor n in xrange(1,10**8):z    if n in magnitude_check:z"        p_mag = bitcount(abs(PRE))z.        p_mag = max(p_mag, bitcount(abs(PIM)))z%        magnitude_check[n] = wp-p_magz * zAINT_#Ú#zAP_#zBQ_#zBINT_#zBP_#zAQ_#Únz
    mul = z
    div = z    if not div:z        if not mul:z            breakz        raise ZeroDivisionErrorz$    PRE = PRE * AREAL_%i // BREAL_%iz    PRE = (PRE * AREAL_#) >> wpz     PRE = (PRE << wp) // BREAL_#z$    PIM = PIM * AREAL_%i // BREAL_%iz    PIM = (PIM * AREAL_#) >> wpz     PIM = (PIM << wp) // BREAL_#zI    PRE, PIM = (mul*(PRE*ZRE-PIM*ZIM))//div, (mul*(PIM*ZRE+PRE*ZIM))//divz    PRE >>= wpz    PIM >>= wpz*    PRE = ((mul * PRE * ZRE) >> wp) // divz*    PIM = ((mul * PIM * ZRE) >> wp) // divz=    PRE, PIM = (PRE*ZRE-PIM*ZIM)//div, (PIM*ZRE+PRE*ZIM)//divz$    PRE = ((PRE * ZRE) >> wp) // divz$    PIM = ((PIM * ZRE) >> wp) // divz;    PRE, PIM = PRE*ACRE_#-PIM*ACIM_#, PIM*ACRE_#+PRE*ACIM_#z%    mag = BCRE_#*BCRE_#+BCIM_#*BCIM_#z     re = PRE*BCRE_# + PIM*BCIM_#z     im = PIM*BCRE_# - PRE*BCIM_#z    PRE = (re << wp) // magz    PIM = (im << wp) // magz*    PRE = ((PRE * mul * ZRE) >> wp) // divz    SRE += PREz    SIM += PIMz1    if (HIGH > PRE > LOW) and (HIGH > PIM > LOW):z        breakz    if HIGH > PRE > LOW:z    if n > MAX:zc        raise NoConvergence('Hypergeometric series converges too slowly. Try increasing maxterms.')z    AINT_# += 1z    BINT_# += 1z    AP_# += AQ_#z    BP_# += BQ_#z    AREAL_# += onez    BREAL_# += onez    ACRE_# += onez    BCRE_# += onez%a = from_man_exp(SRE, -wp, prec, 'n')z%b = from_man_exp(SIM, -wp, prec, 'n')zif SRE:z    if SIM:z(        magn = max(a[2]+a[3], b[2]+b[3])z	    else:z        magn = a[2]+a[3]z	elif SIM:z    magn = b[2]+b[3]z    magn = -wp+1zreturn (a, b), True, magnz    magn = a[2]+a[3]zreturn a, False, magnÚ
c              3   ó4   "  € T F  pR V,           x € K  	  R# 5i)z    NrO   )Ú.0Úlines   & rV   Ú	<genexpr>Ú$make_hyp_summator.<locals>.<genexpr>+  s   é € Ð:±6¨4˜ Ÿš³6ùs   ‚zBdef %s(coeffs, z, prec, wp, epsshift, magnitude_check, **kwargs):
)ÚjoinÚappendÚ	enumerateÚ
ValueErrorÚlenÚminÚreplaceÚstrÚranger   Úglobals) ÚkeyÚpÚqÚparam_typesÚztypeÚpstringÚfnameÚhave_complex_paramÚhave_complex_argÚhave_complexÚsourceÚaddÚaintÚaratÚbintÚbratÚarealÚbrealÚacomplexÚbcomplexÚiÚflagÚWÚl_arealÚl_brealÚcancellable_realÚnoncancellable_real_numÚnoncancellable_real_denÚ
multiplierÚdivisorÚkÚ	namespaces    &                               rV   Úmake_hyp_summatorr‘   @   s
  € ð  #Ñ€Aˆ+à�g‰g�kÓ"€GØ# q¨W°R°a¨[¸'À"¸+ÀuÐ&MÕM€Eð  Ñ+ÐØ ‘|ÐØ%×9Ð9Ð)9€Là€FØ
�-‰-€Cà€DØ€DØ€DØ€DØ€EØ€EØ€HØ€Hñ Ð.Ô/ÙÐ"Ô#ÙˆÔñ Ð+Ô,ßÙÐ"Ô#çÙÐ'Ô(ÙÐ Ô!ÙÐ'Ô(ÙÐ Õ!áÐ$Ô%ÙÐ Ô!áÐÔÙÐÔÙÐ Ô!Ùˆ„LÙÐ#Ô$ßÙÐÔÙÐÔÙÐ$Ô%ÙˆGŒÙÐ'Ô(ä˜[×)‰ˆˆ4Ø�#ˆJ�q˜A‘vÕˆØ�3Œ;Øˆ[˜˜a™Õ ×(Ñ(¨Ô+ÙÐ'¨1¨a°¨)Õ3Ö4Ø�SŒ[Øˆ[˜˜a™Õ ×(Ñ(¨Ô+ÙÐ3°q¸!¸QÀÀ1°oÕEÖFØ�SŒ[Ø�Eˆ]˜1 ™6Õ"×*Ñ*¨1Ô-ÙÐ7¸!Õ;Ô<ÙÐ$Ô%ÙÐ"Ô#ÙÐ!Ô"ÙÐ.°!°Q°Õ7Ô8Ù�ŒLÙÐ1°Q¸°FÕ:Ö;Ø�SŒ[Ø�xÐ   a¡Õ(×0Ñ0°Ô3ÙÐ/°!Õ3Ô4ÙÐ+Ô,ÙÐ$Ô%ÙÐ+Ô,ÙÐ$Ô%áÐ"Ô#ÙÐ!Ô"ÙÐ-°°A°Õ6Ô7Ù�ŒLÙÐ0°A°q°6Õ9Ô:ÙÐ"Ô#ÙÐ!Ô"ÙÐ-°°A°Õ6Ô7Ù�ŒLÙÐ0°A°q°6Õ9×:äÐñI *ôL �%‹j€GÜ�%‹j€GÜ˜7 GÓ,ÐØ#Ð$4Ð$5Ð6ÐØ#Ð$4Ð$5Ð6Ðñ Ð#Ô$áÐ&Ô'ÙÐ,Ô-ßÙÐ<Ô=ÙÐ/Ô0ð —‘ÁDÓIÁD¸q˜X×-Ñ-¨c´3°q³6Ö:ÁDÑIÙBFÓGÁ$¸Q˜VŸ^™^¨C´°Q³Ö8Á$ÑGõHáBFÓGÁ$¸Q˜VŸ^™^¨C´°Q³Ö8Á$ÑGõHó I€Jð —‘ÁDÓIÁD¸q˜X×-Ñ-¨c´3°q³6Ö:ÁDÑIÙBFÓGÁ$¸Q˜VŸ^™^¨C´°Q³Ö8Á$ÑGõHáBFÓGÁ$¸Q˜VŸ^™^¨C´°Q³Ö8Á$ÑGõHàKNÈ%õPó Q€G÷ ÙˆL˜:Õ%Ô&Ùˆ�wÕÔñ ÐÔßÙÐ!Ô"ÙÐÔ ÙÐ)Ô*÷ €|ô
 Ð'Ö(ˆA©#Ð.TÐX]Ð^_ÕX`ÐbgÐhiÕbjÐWkÕ.kÖ*lÑ(Û(ˆA©#Ð.O×.WÑ.WÐX[Ô]`ÐabÓ]cÓ.dÖ*eÑ(Û(ˆA©#Ð.P×.XÑ.XÐY\Ô^aÐbcÓ^dÓ.eÖ*fÑ(ÜÐ'Ö(ˆA©#Ð.TÐX]Ð^_ÕX`ÐbgÐhiÕbjÐWkÕ.kÖ*lÑ(Û(ˆA©#Ð.O×.WÑ.WÐX[Ô]`ÐabÓ]cÓ.dÖ*eÑ(Û(ˆA©#Ð.P×.XÑ.XÐY\Ô^aÐbcÓ^dÓ.eÖ*fÑ(çßÙÐ_Ô`ÙÐ$Ô%ÙÐ$Õ%áÐ@ÔAÙÐ@ÕAçÙÐSÔTÙÐ$Ô%ÙÐ$Õ%áÐ:Ô;ÙÐ:Ô;ãˆAÙÐM×UÑUÐVYÔ[^Ð_`Ó[aÓbÔcÙÐ Ô!ÙÐ Ö!ñ ó
 ˆAÙÐ7×?Ñ?ÀÄSÈÃVÓLÔMÙÐ2×:Ñ:¸3ÄÀAÃÓGÔHÙÐ2×:Ñ:¸3ÄÀAÃÓGÔHÙÐ-×5Ñ5°c¼3¸q»6ÓBÔCÙÐ-×5Ñ5°c¼3¸q»6ÓBÖCò ô Ð'Ö(ˆA©#Ð.TÐX]Ð^_ÕX`ÐbgÐhiÕbjÐWkÕ.kÖ*lÑ(Û(ˆA©#Ð.O×.WÑ.WÐX[Ô]`ÐabÓ]cÓ.dÖ*eÑ(Û(ˆA©#Ð.P×.XÑ.XÐY\Ô^aÐbcÓ^dÓ.eÖ*fÑ(ßÙÐ<Õ=áÐ6Ô7÷ ÙÐÔÙÐÔÙÐ?Ô@ÙˆOÕáÐÔÙÐ&Ô'ÙˆOÔñ
 ÐÔÙÐmÔnó ˆ‘sÐ,×4Ñ4°S¼#¸a»&ÓAÖB‰TÛˆ‘sÐ,×4Ñ4°S¼#¸a»&ÓAÖB‰TÛˆ‘sÐ-×5Ñ5°c¼3¸q»6ÓBÖC‰TÛˆ‘sÐ-×5Ñ5°c¼3¸q»6ÓBÖC‰TÛˆ‘sÐ/×7Ñ7¸¼SÀ»VÓDÖE‰UÛˆ‘sÐ/×7Ñ7¸¼SÀ»VÓDÖE‰UÛˆ‘sÐ.×6Ñ6°s¼CÀ»FÓCÖD‰XÛˆ‘sÐ.×6Ñ6°s¼CÀ»FÓCÖD‰XçÙÐ3Ô4ÙÐ3Ô4áˆIŒÙˆMÔÙÐ6Ô7ÙˆKÔÙÐ&Ô'ÙˆKÔÙÐ"Ô#ÙˆGŒÙÐÔáÐ'Õ(áÐ3Ô4áˆIŒÙÐ"Ô#ÙˆGŒÙÐÔáÐ#Ô$à�Y‰YÑ:±6Ó:Ó:€FØSÐV[Õ[Ð_eÕe€Fà€Iä	ˆ&”'“)˜YÔ'ð �9˜UÕ#Ð#Ð#ùòE JùÚGùÚGùâIùÚGùÚGs$   Í"$i&Î$i+
Î<$i0
Ï<$i5Ð&$i:
Ñ$i?
Úsagec                óB   aaaaa€ ^ RI Ho V w  ooooVVVVV3R lpRV3# )z�
Returns a function that sums a generalized hypergeometric series,
for given parameter types (integer, rational, real, complex).
)Úhypsum_internalc                 ó"   <€ S! SS
S	SWW#WEV4      # ©NrO   )ÚcoeffsÚzÚprecÚwpÚepsshiftÚmagnitude_checkÚkwargsr”   rr   rt   rs   ru   s   &&&&&&,€€€€€rV   Ú_hypsumÚ"make_hyp_summator.<locals>._hypsum?  s!   ø€ Ù" 1 a¨°e¸VØ˜(°Vó=ð =rU   z(none))Úsage.libs.mpmath.ext_mainr”   )rq   rž   r”   rr   rt   rs   ru   s   & @@@@@rV   r‘   r‘   8  s-   ü€ õ
 	>Ø#&Ñ ˆˆ1ˆk˜5÷	=ñ 	=ð ˜Ð Ð rU   c                 ó®  € V w  r4rVV'       g:   V \         8X  d   \         # V \        8X  d   \        # V \        8X  d   \        # \
        # WV,           p\        P                  pV^8”  dN   ^V^,
          ,          R,           V! V^4      8”  d+   V'       d   \        \        ^ W4      # \        \        ^W4      # Wq) 8  d<   \        V ^4      p \        \        V^,           4      V^,           4      p	\        W	W4      # V\        V4      ,           ^,           p
\        \        W
4      4      pW»,          V
,	          pTR^rþpV'       dY   W¼,          V
,	          V,          pV^V,          ^,           ,          pV^,          '       d
   WÞ,          pMWÞ,          pV^,          pK`  WÚ^,           ,          \        \!        V
4      V
4      ,          pV'       d   V) p\#        WÚ) W4      # )é   gW“§¬¦ëà?i90  )r   r   r   r   r   r   ÚmathÚlogr"   r$   r)   r-   r'   Úabsr   r(   r0   r   )Úxr™   ÚrndÚsignÚmanÚexpÚbcÚsizeÚlgÚcrš   ÚtÚt2ÚsÚtermr�   s   &&&             rV   Úmpf_erfr³   O  sm  € ØÑ€DˆsßØ”Œ:œe�|Ø”Œ9œT�kØŒuŒ9œU�lÜˆØ�8€DÜ	�‰€Bàˆa„x�A�t˜A•v•J Õ)©B¨t°A«JÔ6ßÜœu a¨Ó3Ð3äœt Q¨Ó2Ð2àˆe„|ä�a˜‹NˆÜ”V˜D �G“_ d¨2¥gÓ.ˆä�q˜TÓ'Ð'Ø	”�D“	Õ	˜BÕ	€BäŒH�Q‹OÓ€AØ
�#�"�€BØ�E˜1ˆQ€Aß
Ø�f˜�^ Õ!ˆØ�Q�q•S˜•U�|ˆØˆq�5Œ5Ø�I‰Aà�IˆAØ	ˆQ�ŠØ	
�!�t�œ¤H¨R£L°"Ó5Õ5€AßØˆBˆÜ˜˜3 Ó*Ð*rU   c                 óJ   € \        V 4      pV^,          R,          V8”  d   R# R# )é   ç
×£p=
÷?TF)r   )r¦   r™   r`   s   && rV   Úerfc_check_seriesr·   |  s!   € Üˆq‹	€AØˆ!…tˆd…{�TÔÙÙrU   c                 óF  € V w  r4rVV'       g:   V \         8X  d   \        # V \        8X  d   \         # V \        8X  d   \        # \
        # V^,           pWe,           pV\        ^ ^V,          4      ,          pT;'       g    V^8  p	V	'       g   \        W4      '       g‡   V	'       d.   \        \        \        W^
,           \        V,          4      W4      # \        V 4      ^,           p
\        \        \        W\        V
^,          R,          4      ,           ^
,           4      W4      # \        V,          ;r¼^ p^\        W4      ^,          ,          V,	          p^p V^V,          ^,
          ,          V,          V,          pV^8”  d   WÍ8”  g	   V'       g   M-V^,          '       d
   W¼,          pMW¼,          pTpV^,          pKi  W·,          \        \!        V4      V4      ,          p\#        W·) V4      p\%        \'        \)        W V4      V4      V4      p\+        \)        VW·4      WV4      pV# )é   r¶   )r   r   r   r   r   r   Úmaxr·   r%   r³   r   r   Úintr   r   r(   r0   r   r.   r#   r&   r'   )r¦   r™   r§   r¨   r©   rª   r«   rš   ÚmagÚregular_erfr`   r±   r²   Ú	term_prevr¯   r�   r˜   Úys   &&&               rV   Úmpf_erfcrÀ   ‚  sª  € ØÑ€DˆsßØ”Œ:œd�{Ø”Œ9œU�lØ”Œ:œd�{ÜˆØ	��€BØ
�&€CàŒ#ˆa��3•‹-Õ€BØ—/�/˜# ™'€KßÔ+¨A×2Ò2ßÜœ4¤¨°­G´\À#Õ5FÓ!GÈÓSÐSä�1‹I�a�KˆÜ”tœW Q¬s°1°aµ4¸µ9«~Õ(=ÀÕ(BÓCÀTÓOÐOÜ˜"�}Ð€AØ€IØ	
ŒX�a‹_ Õ!Õ	! bÕ(€AØ	€AØ
Ø˜˜1�˜q�Õ! bÕ(¨QÕ.ˆØˆqŒ5�TÔ%¯TØØˆq�5Œ5Ø�I‰Aà�IˆAØˆ	à	ˆQ�ŠØ	
�”Z¤¨£¨bÓ1Õ1€AÜ�Q˜˜RÓ €AÜ”œ  B›¨Ó+¨BÓ/€AÜ”˜˜1Ó! 1¨CÓ0€AØ€HrU   c                 ó€   € T ;r#^pV'       d1   W0,          V,	          V,          pW#V,          ,          pV^,          pK8  V# ©rµ   rO   )r¦   r™   r±   r¯   r�   s   &&   rV   Ú	ei_taylorrÃ   °  s:   € Ø€I€AØ	€Aß
Ø�c�d�]˜qÕ ˆØ	�!�V�ˆØ	ˆQ�ŠØ€HrU   c                 ó4  € \         pT ;rET;rg^pV! V4      V! V4      ,           ^8”  do   WP,          Wq,          ,
          V,          V,	          WQ,          Wp,          ,           V,          V,	          ruWEV,          ,          pWgV,          ,          pV^,          pKˆ  WF3# rÂ   )r¥   )	ÚzreÚzimr™   Ú_absÚsreÚtreÚsimÚtimr�   s	   &&&      rV   Úcomplex_ei_taylorrÌ   ¹  s€   € Ü€DØ€O€CØ€O€CØ	€AÙ
ˆs‹)‘d˜3“iÕ
 !Ô
#Ø•W˜S�W•_ qÕ(¨4Õ/°3µ7¸3½7µ?ÀQÕ2FÈÕ1MˆSØ�a�x�ˆØ�a�x�ˆØ	ˆQ�ŠØˆ8€OrU   c                 ó¶   € \         V,          pW!,          V ,          ;rW ,           p^pV'       d*   WS,          V ,          V,	          pWC,          pV^,          pK1  V# rÂ   )r   )r¦   r™   Úoner¯   r±   r�   s   &&    rV   Úei_asymptoticrÏ   Å  sM   € Ü
�T�/€CØ�k˜aÕÐ €AØ�€AØ	€Aß
Ø�S��U�t�OˆØ	�ˆØ	ˆQ�ŠØ€HrU   c                 óÎ  € \         p\        V,          pW,          W ,          ,           V,	          pW,          V,          ;rgV) V,          V,          ;r‰WF,           p
Tp^pV! V4      V! V	4      ,           R8”  dm   Wv,          W˜,          ,
          V,          V,	          Wx,          W–,          ,           V,          V,	          r—W§,          p
W¹,          pV^,          pWÂ8”  g   K€  \        hW«3# )rµ   iè  )r¥   r   rN   )rÅ   rÆ   r™   rÇ   rÎ   ÚMÚxrerÉ   ÚximrË   rÈ   rÊ   r�   s   &&&          rV   Úcomplex_ei_asymptoticrÔ   Ð  s¿   € Ü€DÜ
�T�/€CØ	��3•7Õ	˜tÕ#€Aà• Õ"Ð"€CØ�$˜4• AÕ%Ð%€CØ
�)€CØ
€CØ	€AÙ
ˆs‹)‘d˜3“iÕ
 $Ô
&à•W˜S�W•_ aÕ'¨$Õ.°#µ'¸#½'µ/À1Õ1DÀtÕ0KˆSØ�
ˆØ�
ˆØ	ˆQ�ˆØŽ8ÜÐØˆ8€OrU   Fc                 óv  € V'       d   \        V 4      p V w  rErgV'       d%   V'       g   V \        8X  d   \        # \        R 4      hV'       Ed   ^ WVV3pWg,           p	V^,           p
Wš8„  pV'       g6   V^ 8¼  d
   WV,          pM	WV) ,	          pV\	        V
R,          4      ^
,           8„  pV'       dQ   Wš8”  d   \
        pM \        \        \        W
4      V
4      V
) 4      p\        V\        W
4      V
4      p\        WÐW4      pM©V
^\	        \        V4      4      ,          ,          p
\        W
4      p\        Wê4      \        V
4      ,           p\        WÚ) 4      p\        WŠ4      p\!        VVW4      pM<V \        8X  d   \"        pM*V \        8X  d   \        pMV \"        8X  d   \        pM\$        pV'       d   \        V4      pV# )zE1(x) for x < 0ç“V-æ?)r#   r   r   r   r»   r   r   rÏ   r   r&   r.   r'   r   rÃ   rL   r/   r   r   r   )r¦   r™   r§   Úe1r¨   r©   rª   r«   ÚxabsÚxmagrš   Úcan_use_asympÚxabsintÚvÚuÚt1r°   s   &&&&             rV   Úmpf_eirß   ä  s`  € ß	Ü�A‹JˆØÑ€Dˆsß	—$Ø”Œ:ÜˆKÜÐ-Ó.Ð.ß
€sØ�#˜BˆˆØ�vˆØ�B�YˆØ™	ˆßØ�aŒxØ�*‘à $�-�Ø#¤c¨"¨U­(£m°bÕ&8Ñ8ˆMßØŒyÜ‘ä ¤¬x¸«ÀÓ!CÀbÀSÓI�Ü˜œ7 1›>¨2Ó.ˆAÜ˜˜dÓ(‰Aà�!”Cœ˜t›Ó%Õ%Õ%ˆBÜ˜“ˆAÜ˜!Ó ¤;¨r£?Õ2ˆAÜ˜a Ó$ˆBÜ˜Ó!ˆBÜ˜˜B Ó*‰Aà”Œ:œ5‘qØ”$ŒYœD™Ø”%ŒZœU™Üˆaß	Ü�A‹JˆØ€HrU   c           
      óâ  € V'       d   \        V 4      p V w  rEVw  rgr‰Vw  r«rÍV\        8X  dX   V'       d>   \        \        WAV4      4      pV'       g   \        \	        W4      4      pWï3# \        pWï3# \        WAV4      \        3# V\        8w  d   V'       d	   V'       g   \
        \
        3# V^(,           pW‰,           pWÍ,           p\        VV4      pVV8„  pV'       gJ   \        \        V4      4      \        \        V4      4      ,           pV\        VR,          4      ^,           8„  p V'       då   VV8”  d   \        \        3pMB\        VV4      p\        VV4      p\        VVV4      w  pp\        VV) 4      \        VV) 4      3p\        V\        V V4      V4      p\!        VV V4      pV'       d   \        VW4      pV# Vw  rïV
'       d%   \#        WáV4      \%        V\	        V4      W4      3pV# \#        WáV4      \'        V\	        V4      W4      3pV#  V^\        \        \+        V ^4      4      4      ,          ,          p\        VV4      p\        VV4      p\-        VVV4      w  ppV\/        V4      ,          p\        VV) 4      \        VV) 4      3pV'       d   \1        \        V 4      V4      pM\1        V V4      p\3        VVW4      pV'       d   \        V4      pV#   \(         d     LÙi ; i)é(   rÖ   )r9   r   r#   rß   r-   r   rº   r¥   r   r»   r   r   rÔ   r   r8   rH   r;   r   r%   r   rN   rE   rÌ   rL   r>   r?   )r˜   r™   r§   r×   ÚaÚbÚasignÚamanÚaexpÚabcÚbsignÚbmanÚbexpÚbbcr¦   r¿   rš   ÚamagÚbmagÚzmagrÚ   ÚzabsintrÜ   rÅ   rÆ   ÚvreÚvimrÝ   s   &&&&                        rV   Úmpc_eirò     s§  € ß	Ü�A‹JˆØ�D€AØÑ€E�ØÑ€E�ØŒE„zßÜœ˜q¨Ó,Ó-ˆAßÜœF 4Ó-Ó.�ð �4ˆKô �Ø�4ˆKä˜! 3Ó'¬Ð.Ð.ØŒE„zßŸ4Üœ$�<ÐØ	��€BØ�8€DØ�8€DÜˆt�T‹?€DØ˜2‘I€MßÜ”f˜Q“i“.¤3¤v¨a£y£>Õ1ˆØ¤# b¨¥h£-°"Õ"4Ñ4ˆðßØ�bŒyÜœ%�K‘ä˜q "“o�Ü˜q "“o�Ü0°°c¸2Ó>‘��SÜ   r cÓ*¬L¸¸r¸cÓ,BÐB�Ü˜œ7 1 b›>¨2Ó.ˆAÜ˜˜1˜bÓ!ˆAßÜ˜A˜tÓ)�ð ˆHð ‘�ßÜ ¨Ó-¬w°q¼&À»*ÀdÓ/PÐP�Að ˆHô   ¨Ó-¬w°q¼&À»*ÀdÓ/PÐP�AØˆHð% ð, ˆ!ŒC””w˜q !“}Ó%Ó&Õ
&Õ&€BÜ
�1�b‹/€CÜ
�1�b‹/€CÜ   c¨2Ó.�H€CˆØŒ;�r‹?Õ€CÜ�S˜"˜Óœ|¨C°°Ó4Ð4€Aß	Ü”G˜A“J˜rÓ"‰ä�A�b‹MˆÜ��1�dÓ €Aß	Ü�A‹JˆØ€Høô! ô Ùðús%   Ä'K  Ä/BK  Æ?/K  Ç/#K  Ë K.Ë-K.c                 ó   € \        WVR 4      # ©T)rß   ©r¦   r™   r§   s   &&&rV   Úmpf_e1rö   O  ó   € Ü�!˜3 Ó%Ð%rU   c                 ó   € \        WVR 4      # rô   )rò   rõ   s   &&&rV   Úmpc_e1rù   R  r÷   rU   c           
     ó  € Vw  rVrxV'       gŸ   V'       dH   V\         8X  d   V ^ 8:  d	   \        R3# \        WV4      R3# V\        8X  d	   \         R3# \        \        3# V\         8X  d&   V ^8”  d   \	        ^V ^,
          W#4      R3# \        R3# V\        8X  d	   \         R3# \        \        3# T p	V'       d
   ^V ,
          p V^,           p
Wx,           pVR8  d   \
        h\        \        V 4      4      pV ^ 8„  ;'       d    Tp\        V4      pV ^ 8X  g   ^V,          V,
          V
) 8  dM   V'       d,   \        Wê4      p\        V\        W^,
          V
4      W#4      pEM’\        Wê4      p\        WñW#4      pEMyRV
,          T u;8  ;'       d    ^ 8*  Mu pV'       g£   \        \        V4      4      p\        \        ^VV ,
          4      ^V
,          4      pV ) V,          VV ,           \        \        VV ,           4      4      ,          ,           VV,          ,
          ^�V,          ^d,          ,
          pV
) ^
,
          pVV8  pV'       dÐ   \         ) Wª,           ,          \#        W4      ,          pT pVV,          p\         V
,          pV'       d4   V'       d,   VV,          pV^,          pVV,          V,          V
,	          pK;  \        Wê4      pV'       d    \        V\        W^,
          V
4      V
4      pM\        WñV
4      p\        V\%        VV
) 4      W#4      pEMÛV ^8X  d   \        \'        WâV4      4      pEM½V ^ 8”  Ed°   V ^V
,          8  Ed¡   \        \'        Wê4      4      pV'       d   V	^,          '       d   \        V4      pM\        V\        Wà^,
          V
4      V
4      p\#        W4      ;pp^.V ^,
          ,          p\)        ^V ^,
          4       F  pVV^,
          ,          V,          VV&   K  	  VRRR1,          pV^ ,          V
,          p\)        ^V ^,
          4       FQ  pV^,          '       d   VVV,          V,          ,          pMVVV,          V,          ,          pVV,          V
,	          pKS  	  \%        VV
) V
4      p\        V\        Wê4      4      pV'       d   \        V\        WV
4      V
4      p\+        VV4      p\        V\-        \/        V ^,
          4      4      W#4      pM\
        hV'       d�   \-        \/        V ^,
          4      ) 4      pV'       d5   \        \1        V
4      VW#4      pV	^,          '       d   \        V4      pVV3# \        \        \1        V
4      \        Wé^,
          V
4      V
4      VW#4      pVV3# VR3# )zÑ
E_n(x), n an integer, x real

With gamma=True, computes Gamma(n,x)   (upper incomplete gamma function)

Returns (real, None) if real, otherwise (real, imag)
The imaginary part is an optional branch cut term

Niöÿÿÿéýÿÿÿéÿÿÿÿ)r   r   rJ   r   r   ÚNotImplementedErrorr   r¥   r#   r.   r&   r+   r'   r   rl   rº   r   r   r   rß   ro   r   r   rI   r-   ) r`   r¦   r™   r§   Úgammar¨   r©   rª   r«   Ún_origrš   rÙ   ÚnmagÚ	have_imagÚnegxrÜ   ÚreÚcan_use_asymptotic_seriesÚxiÚmÚsizÚtolÚrr¯   r±   ÚT1Úfacsr�   ÚT2r^   rÑ   Úims    &&&&&                           rV   Ú
mpf_expintr  U  s‚  € ð Ñ€DˆsßßØ”EŒzà˜”6Ü ˜:Ð%Ü$ Q¨cÓ2°DÐ8Ð8Ø”DŒyÜ˜d�{Ð"äœ�:Ðà”EŒzØ�q”5Ü(¨¨A¨a­C°Ó;¸TÐAÐAä ˜:Ð%Ø”DŒyÜ˜d�{Ð"Üœ�:ÐØ€FßØˆa�CˆØ	��€BØ�8€Dàˆc„zÜ!Ð!Ü”C˜“FÓ€DØ�A‘—�˜$€IÜ�1‹:€DàˆA„v��4•˜$• " Ô$ßÜ˜Ó!ˆAÜ˜œK¨°!­8°RÓ8¸$ÓDŠBä˜Ó!ˆAÜ˜˜tÓ)ŠBð %' r¥E¨A§N¤N°¤NÐ!ç(Ü”V˜A“Y“ˆBÜ”C˜˜2˜a�4“L ! B¥$Ó'ˆAØ�"�T•'˜Q˜q�S¤(¬3¨q°­s«8Ó"4Õ4Õ4°q¸µvÕ=ÀÀQÅÈÅÕLˆCØ�#�b•&ˆCØ(+¨c©	Ð%ß$Ü�( ¥Õ&¬8°A«?Õ:ˆAØˆAØ�!•ˆAÜ˜2•ˆAßŸØ�Q•�Ø�Q•�Ø�q•S˜•U˜r•M’Ü˜Ó!ˆAßä˜Aœ{¨1°Q­h¸Ó;¸RÓ@‘ô ˜A "Ó%�Ü˜œL¨¨R¨CÓ0°$Ó<ŠBØ�!ŒVÜœ ¨CÓ0Ó1ŠBØ��U�q˜1˜R�4•xÜœ Ó)Ó*ˆBßØ˜A—:”:Ü  ›�Bøä˜R¤¨T°Qµ3¸Ó!;¸RÓ@�Ü˜Q“OÐ#ˆA�Ø�3˜!˜A�#•;ˆDÜ˜1˜Q˜q�S–\�Ø˜q �s�) a�-��Q“ñ "à™˜"˜•:ˆDØ�Q•˜2•ˆAÜ˜1˜a �c–]�Ø�q—5”5Ø˜˜a� 1�Õ$‘Aà˜˜a� 1�Õ$�AØ�q•S˜R•K’ñ #ô ˜a "  bÓ)ˆBÜ˜œW TÓ.Ó/ˆBßÜ˜R¤¨Q¸Ó!;¸RÓ@�Ü˜˜B“ˆAÜ˜œH¤T¨!¨A­#£YÓ/°Ó;‰Bä%Ð%ßÜ”d˜1˜Q�3“i�ZÓ ˆßÜœ › Q¨Ó2ˆBØ˜�zŒzÜ˜R“[�ð �2ˆvˆô œ¤¨£¬[¸Àa½xÈÓ-LÈbÓQÐSTÐVZÓ`ˆBØ�2ˆvˆà�4ˆxˆrU   c                ó  € \        W4      p W ,          ) V,	          pV^ 8X  d   ^ \        V,          ^repMY ^repV'       d>   WS,          Wf^,
          ,          ,          V,	          pWEV,          ,          pV^,          pKE  \        WA) 4      # )z&
0 - Ci(x) - (euler+log(x))
1 - Si(x)
)r   r   r   )r¦   rš   ÚwhichÚx2r±   r¯   r�   s   &&&    rV   Úmpf_ci_si_taylorr  Ë  su   € ô
 	�‹€AØ�3ˆ�2�€BØ�„zØ”g˜r•k Aˆaˆˆaà˜ˆaˆß
Ø�T�A˜•s•G�_˜rÕ!ˆØ	��T�	ˆØ	ˆQ�ŠÜ˜˜3ÓÐrU   c                 ó¶  € V ^,          '       d   V ^,          V ^,          ,           pM&V^,          '       d   V^,          V^,          ,           pV^,          '       d"   \        XV^,          V^,          ,           4      pX^8”  g   WB) 8  d   \        hV^V,
          ,          p\        W4      p\        W4      pWf,          WU,          ,
          V,	          pRV,          V,          V,	          pTp	Tp
\        V,          pV^ 8X  d   ^ ^ \        V,          ^ ^3w  rÍršpM	WVWV^3w  rÍršp\        \	        V	4      \	        V
4      4      ^8”  d~   Wî^,
          ,          pW—,          W¨,          ,
          V,          V,	          W˜,          W§,          ,           V,          V,	          r©WÉV,          ,          pWÚV,          ,          pV^,          pK   \        WÂ) 4      \        WÒ) 4      3# )é   éþÿÿÿ)rº   rý   r   r   r¥   r   )r  r  rš   r  r¼   rÅ   rÆ   Úz2reÚz2imrÉ   rË   rÎ   rÈ   rÊ   r�   Úfs   &&&&            rV   Úmpc_ci_si_taylorr  Ü  s€  € ð 
ˆ!‡u„uØ��e�B�q•E�k‰Ø	ˆA�ŒØ��e�B�q•E�kˆØ	ˆ!‡u„uÜ�#�r˜!•u˜R �U•{Ó#ˆØ
ˆQ„w�#˜”)Ü!Ð!Øˆ1ˆS�5…M€BÜ
�2Ó
€CÜ
�2Ó
€CØ�G�C•G�O˜bÕ €DØˆs�F�3�J˜Õ€DØ
€CØ
€CÜ
�2�+€CØ�„zØ ! 1¤w°¥{°Q¸Ð 9Ñˆ�#™Aà #¨#°AÐ 5Ñˆ�#˜AÜ
Œc�#‹hœ˜C›Ó
! AÔ
%Ø��s�GˆØ•X˜c�hÕ&¨Õ*¨RÕ/°3µ8¸C½HÕ3DÀqÕ2HÈ2Õ1MˆSØ�A�v�ˆØ�A�v�ˆØ	ˆQ�ŠÜ˜˜SÓ!¤<°°SÓ#9Ð9Ð9rU   c           	     ó  € V^,           pV w  rVrxRRr©V'       g‹   V \         8X  d   \        \         3# V \        8X  d   W 3# \         p	V^ 8w  dV   V \        8X  d   \	        \        W4      R4      p
V \        8X  d+   \        \	        \        V\        V,          4      R4      4      p
Wš3# Wx,           pW´) 8  dR   V^ 8w  d   \        V ^V,
          W4      p
V^8w  d-   \        V4      p\        V 4      p\        V\        WÔ4      W4      p	Wš3# W´8”  dh   V^ 8w  dA   V'       d"   \        \        V\        V,          4      4      p
M\        W4      p
\	        V
R4      p
V^8w  d   \        \        W4      WV4      p	Wš3# V\        V4      ,          pV^,
          \         P"                  ! V^4      8„  pV'       gj   V^ 8w  d   \%        \'        W^4      W4      p
V^8w  dC   \'        W^ 4      p	\        V	\        V4      V4      p	\        V	\        \        V 4      V4      W4      p	Wš3# \        V 4      p \)        W4      p\*        ^V,          ,          V,          p\*        V,          pTpTp^pV'       dX   V) pVV,          V,          V,	          pV^,          pVV,          pVV,          V,          V,	          pV^,          pVV,          pK_  \-        VV) 4      p\-        VV) 4      p\        VW4      p\        VW4      p\/        W4      w  ppV^ 8w  d`   \        \1        VV4      \1        VV4      V4      p
\3        \	        \        V4      R4      W¤4      p
V'       d   \        V
4      p
\%        W¡V4      p
V^8w  d"   \3        \1        VV4      \1        VV4      W4      p	Wš3# )zÏ
Calculation of Ci(x), Si(x) for real x.

which = 0 -- returns (Ci(x), -)
which = 1 -- returns (Si(x), -)
which = 2 -- returns (Ci(x), Si(x))

Note: if x < 0, Ci(x) needs an additional imaginary term, pi*i.
Nrü   )r   r   r   r   r$   r-   r#   r   r"   rK   r   r   r/   r'   r3   r¥   r£   r¤   r   r  r   r   r   r1   r&   r%   )r¦   r™   r§   r  rš   r¨   r©   rª   r«   ÚciÚsir¼   r¿   rØ   Ú
asymptoticÚxfÚxrÚs1Ús2r¯   r�   ÚcosÚsins   &&&&                   rV   Ú	mpf_ci_sir$  û  s  € ð 
��€BØÑ€DˆsØ�4ˆßØ”Œ:Üœ5�>Ð!Ø”Œ9Ø�6ˆMÜˆØ�AŒ:Ø”DŒyÜœv dÓ0°"Ó5�Ø”EŒzÜœY¤v¨d´LÀÕ4EÓ'FÈÓKÓL�Øˆxˆà
�&€CØ
ˆS„yØ�AŒ:Ü˜Q  $¥¨Ó2ˆBØ�AŒ:Ü˜"“ˆAÜ˜1“:ˆDÜ˜œG DÓ-¨tÓ9ˆBØˆvˆà	ŒØ�AŒ:ßÜœV D¬,°sÕ*;Ó<Ó=‘ä˜DÓ&�Ü˜2˜rÓ"ˆBØ�AŒ:Üœ ›¨°#Ó6ˆBØˆvˆà
Œc�#‹h�ˆð �Q•œŸš " a›Ñ(€JçØ�AŒ:ÜÔ)¨!°Ó3°TÓ?ˆBØ�AŒ:Ü! !¨Ó+ˆBÜ˜œY r›]¨BÓ/ˆBÜ˜œW¤W¨Q£Z°Ó4°dÓ@ˆBØˆvˆÜ�‹
€Aä	�!‹€BÜ
�A�b•D�/˜bÕ	 €BÜ
�R�-€BØ	€BØ
€AØ	€Aß
ØˆBˆØˆr�T�!�V�b�LˆØ	ˆQ�ˆØ
ˆa�ˆØˆr�T�!�V�b�LˆØ	ˆQ�ˆØ
ˆa�ŠÜ	�b˜2˜#Ó	€BÜ	�b˜2˜#Ó	€BÜ	��QÓ	€BÜ	��QÓ	€BÜ˜1Ó!�H€Cˆð �„zÜ”W˜S "Ó%¤w¨s°BÓ'7¸Ó<ˆÜ”Yœv b›z¨2Ó.°Ó7ˆßÜ˜“ˆBÜ�R˜sÓ#ˆØ�„zÜ”W˜S "Ó%¤w¨s°BÓ'7¸ÓCˆØˆ6€MrU   c                 óV   € \        V 4      ^ 8  d   \        h\        WV^ 4      ^ ,          # ©é    )r   r   r$  rõ   s   &&&rV   Úmpf_cir(  X  s'   € Ü�ƒ{�Q„ÜÐÜ�Q˜c 1Ó% aÕ(Ð(rU   c                 ó*   € \        WV^4      ^,          # ©r  )r$  rõ   s   &&&rV   Úmpf_sir+  ]  s   € Ü�Q˜c 1Ó% aÕ(Ð(rU   c                 ó   € V w  r4V\         8X  d:   \        W1V^ 4      ^ ,          p\        V4      ^ 8  d   V\        W4      3# V\         3# V^,           p\	        W4V^ 4      w  rx\        V\        V4      V4      p\        Wx3\        W4      W4      pV# r&  )	r   r$  r   r-   r  r   rK   r?   r>   )	r˜   r™   r§   r  r  r  rš   ÚcreÚcims	   &&&      rV   Úmpc_cir/  `  s�   € Ø�F€BØ	ŒU„{Ü�r  aÓ(¨Õ+ˆÜ�B‹<˜!ÔØœ˜tÓ)Ð*Ð*Ø”Eˆ{ÐØ	��€BÜ ¨¨AÓ.�H€CÜ
�#”y “} bÓ
)€CÜ	�#�œW Q›^¨TÓ	7€BØ€IrU   c                 ó˜   € V w  r4V\         8X  d   \        W1V^4      ^,          \         3# V^,           p\        W4V^4      p \        WV4      # r*  )r   r$  r  r@   )r˜   r™   r§   r  r  rš   s   &&&   rV   Úmpc_sir1  m  sM   € Ø�F€BØ	ŒU„{Ü˜" C¨Ó+¨AÕ.´Ð6Ð6Ø	��€BÜ˜  QÓ'€AÜ�1˜CÓ Ð rU   c                 ó|  € V^2,          pV ^ 8  ;'       d
    V ^,          pV^,          V^,          ,           p\        V 4      p V^,           V \        V 4      ,          ,           pV^ 8  d   W`V,          ,          p\        W4      pV^,          V,	          pV '       g   \        V,          ;r‰M5W,          \	        V 4      ,          V ^,
          V,          V ,           ,	          ;r‰^p
V	'       d>   W—,          RV
,          W ,           ,          ,          V,	          p	W‰,          pV
^,          p
KE  V'       d   V) p\        W†) W#4      # )é2   éüÿÿÿ)r¥   r   r   r   rI   r   )r`   r¦   r™   ÚroundingÚnegater¼   rš   r  r±   r¯   r�   s   &&&&       rV   Úmpf_besseljnr7  •  sö   € ØˆB…J€DØ�‰U�_ˆ_�q˜1•u€FØ
ˆA�$ˆq��t�)€CÜˆA‹€AØ	���Q”x “{•]Õ	"€BØ
ˆQ„wØ
�#�g�ˆÜ�‹€AØ
ˆQ�$�2�€BßÜ˜2•ÐˆˆAà•œ˜a›• q¨¥s¨B¥h°¥lÕ3Ð3ˆØ	€Aß
Ø�f˜"˜Q�$ ¥�*Õ%¨"Õ,ˆØ	�ˆØ	ˆQ�ŠßØˆBˆÜ˜˜3 Ó/Ð/rU   c                 ó„  € V ^ 8  ;'       d
    V ^,          p\        V 4      p TpVw  rg\        V^,          V^,          ,           V^,          V^,          ,           4      pV^V \        V 4      ,          ,           \        V4      ,           ,          pV^ 8  d   W V,          ,          p\        Wb4      p\        Wr4      pV^,          V^,          ,
          V,	          p	Wg,          V^,
          ,	          p
V '       g   \        V,          ;r¼\
        ;rÞMm\        WgV 4      w  ppV\        V 4      ,          V ^,
          V,          V ,           ,	          ;r¼V\        V 4      ,          V ^,
          V,          V ,           ,	          ;rÞ^p\        V4      \        V4      ,           ^8”  d|   RV,          VV ,           ,          pWÉ,          Wê,          ,
          Wé,          WÊ,          ,           rìVV,          V,	          pVV,          V,	          pW¼,          pWÞ,          pV^,          pK›  V'       d   V) pV) p\        W²) WS4      p\        WÒ) WS4      pVV3# )r'  r4  )	r¥   rº   r   r   r   r   r:   rI   r   )r`   r˜   r™   r5  r6  ÚorigprecrÅ   rÆ   r¼   r  r  rÈ   rÉ   rÊ   rË   r  r  r�   rr   s   &&&&               rV   Úmpc_besseljnr:  ¬  sÒ  € Ø�‰U�_ˆ_�q˜1•u€FÜˆA‹€AØ€HØ�H€CÜ
ˆc�!�f�S˜•V�m˜S �V C¨¥F�]Ó
+€CØˆB�”8˜A“;•Õ¤ S£Õ)Õ)€DØ
ˆQ„wØ�C•�ˆÜ
�3Ó
€CÜ
�3Ó
€CØ��F�S˜!•V�O Õ$€DØ�G˜˜a�Õ €DßÜ˜t•OÐ#ˆÜÐˆˆcä  ¨1Ó-‰ˆˆBØœ4 ›7•]¨¨1­¨d­
°Q­Õ7Ð7ˆØœ4 ›7•]¨¨1­¨d­
°Q­Õ7Ð7ˆØ	€AÜ
ˆc‹(”S˜“XÕ
 Ô
!Øˆq�D�!�A•#�JˆØ•8˜c�hÕ&¨­°3µ8Õ(;ˆSØ�a�x˜DÕ ˆØ�a�x˜DÕ ˆØ�
ˆØ�
ˆØ	ˆQ�ŠßØˆdˆØˆdˆÜ	�c˜5 (Ó	5€BÜ	�c˜5 (Ó	5€BØ�ˆ8€OrU   c                óf  € V w  rErgVw  r‰r«V'       g	   V'       d   \        R4      hV'       d	   V	'       gg   V \        8X  g   V\        8X  d   \        # V \        8X  d   V\        8X  d   \        # \        # V\        8X  d   V \        8X  d   \        # \        # \        # V^,           pWg,           pW«,           pWÞ,
          p\	        V4      pV^
8”  d`   V^
8”  d7   \        \        WV4      R4      \        \        WV4      V4      rV^,          pK=  V w  rErgVw  r‰r«Wg,           pW«,           pWÞ,
          p\        WÞ4      p\        WÞ4      p^ pVR8  d   V) pM
V^8”  d   V) pV'       d   \        V V4      p \        VV4      p\        W4      p\        W4      p\        VVV4      p\        VV) V,
          W#4      # )zR
Computes the arithmetic-geometric mean agm(a,b) for
nonnegative mpf values a, b.
zagm of a negative numberrü   iøÿÿÿ)r   r   r   r   r¥   r$   r   r)   r&   rl   rº   r   r4   r   )râ   rã   r™   r§   rä   rå   ræ   rç   rè   ré   rê   rë   rš   rì   rí   Ú	mag_deltaÚabs_mag_deltaÚmin_magÚmax_magr`   ÚafÚbfÚgs   &&&&                   rV   Úmpf_agmrC  Ð  s‡  € ð
 Ñ€E�ØÑ€E�ß—ÜÐ6Ó7Ð7ç—TØ”Œ9˜œTœ	ÜˆKØ”Œ9Ø”EŒzÜ�ÜˆKØ”Œ9Ø”EŒzÜ�ÜˆKäˆØ	��€BØ�8€DØ�8€DØ•€Iä˜	“N€MØ�rÔØ˜bÔ ÜœW Q¨›_¨RÓ0Üœ  R›¨Ó,ð à˜aÕŠMØ!"Ñˆ�TØ!"Ñˆ�TØ�xˆØ�xˆØ•Kˆ	ô �$‹n€GÜ�$‹n€GØ	€Aà�„|ØˆH‰à	�2ŒØˆHˆßÜ�a˜‹OˆÜ�a˜‹Oˆä	�!‹€BÜ	�!‹€BÜ�"�b˜"Ó€AÜ˜˜B˜3˜q�5 $Ó,Ð,rU   c                ó$   € \        \        WV4      # )zP
Computes the arithmetic-geometric mean agm(1,a) for a nonnegative
mpf value a.
)rC  r   ©râ   r™   r§   s   &&&rV   Úmpf_agm1rF    s   € ô
 ”4˜ #Ó&Ð&rU   c                ó6  € \        V 4      '       g   \        V4      '       d   \        \        3# \        W39   d   \        \        3# \	        V 4      V8X  d   \        \        3# V^,           p\        \        V) ^
,           4      p \        \        WV4      R4      p\        \        WV4      V4      pYgr\        \        V ^
4      \        V^
4      .4      ^,          p\        \        W^
4      ^
4      p	V\        8X  g   \        V	\        WX4      4      '       g   K•  V # )zj
Complex AGM.

TODO:
* check that convergence works as intended
* optimize
* select a nonarbitrary branch
rü   )rB   r   rC   r   r9   r$   r   rA   r?   rD   r8   r!   rE   r6   r   r&   )
râ   rã   r™   r§   rš   ÚepsÚa1Úb1r¬   Úerrs
   &&&&      rV   Úmpc_agmrL    så   € ô �Q×Òœ=¨×+Ò+Ü”TˆzÐÜ�A�6ÔÜ”eˆ|ÐÜˆqƒz�Q„Ü”eˆ|ÐØ	ˆb�€BÜ
”D˜2˜#˜b�&Ó
!€CØ
Ü”w˜q RÓ(¨"Ó-ˆÜ”g˜a BÓ'¨Ó,ˆØˆ1ÜœG A b›M¬7°1°R«=Ð9Ó:¸1Õ=ˆÜ”g˜a BÓ'¨Ó,ˆØ”5Œ=œF 3¬°Ó(:×;Ô;ØˆHrU   c                 ó$   € \        \        WV4      # r–   )rL  r5   rE  s   &&&rV   Úmpc_agm1rN  ,  s   € Ü”7˜A SÓ)Ð)rU   c                 ó^  € V ^,          '       g?   V \         8X  d   \        \        W4      R4      # V \        8X  d   \         # V \        8X  d   V # V \
        8X  d   \        # V^,           p\        \        \
        W4      V4      p\        WC4      p\        \        V4      WQV4      p\        VR4      # ©r  rü   )r   r$   r-   r   r   r   r   r)   r%   rF  r'   )r¦   r™   r§   rš   râ   rÜ   r	  s   &&&    rV   Ú
mpf_ellipkrQ  /  s�   € ØˆQ�4Œ4Ø”Œ:ÜœV DÓ.°Ó3Ð3Ø”Œ:ÜˆLØ”Œ9ØˆHØŒD„yÜˆð 
��€Bô 	”œ˜qÓ% rÓ*€AÜ�‹€AÜ”�r“
˜A SÓ)€AÜ�Q˜ÓÐrU   c                 ó2  € V w  r4V\         8X  d:   V\        8X  d   \        # \        V\        4      '       d   \        W1V4      \         3# V^,           p\        \        \        W4      V4      p\        We4      p\        \        V4      WqV4      p\        VR4      # )é   rü   )r   r   rC   r   r   rQ  rD   r6   r5   rN  rF   r-   rA   )	r˜   r™   r§   r  r  rš   râ   rÜ   r	  s	   &&&      rV   Ú
mpc_ellipkrT  C  s   € Ø�F€BØ	ŒU„{Ø”Œ:ÜˆOÜ�"”d×ÒÜ˜b¨Ó,¬eÐ3Ð3Ø	��€BÜ”œ !Ó(¨"Ó-€AÜ�‹€AÜ”F˜2“J ¨Ó-€AÜ�Q˜ÓÐrU   c                 ó€  € V w  r4rVV'       gP   V \         8X  d   \        \        W4      R4      # V \        8X  d   \        # V \
        8X  d   V # V \        8X  d   \        hV \        8X  d   \        # V^,           pWV,           pW‡) 8  d   \        \        W4      R4      # \        V^ 4      V,
          p	\        \        V	4      p
\        V ^V,          4      p\        \        W
4      ^V,          4      p\        \        W¼4      V	) 4      p\        \        V 4      p\        V\        V ^4      V4      p\        V\        W¿4      W4      # rP  )r   r$   r-   r   r   r   r   r   rº   rQ  r%   r&   r   )r¦   r™   r§   r¨   r©   rª   r«   rš   r¼   rr   ÚhÚKÚKhÚKdiffr¯   rã   s   &&&             rV   Ú
mpf_elliperZ  P  s	  € ð Ñ€DˆsßØ”Œ:ÜœV DÓ.°Ó3Ð3Ø”Œ:ÜˆKØ”Œ9ØˆHØ”Œ9ÜÐØŒD„yÜˆØ	ˆb�€BØ
�&€CØ
ˆS„yÜœ Ó*¨BÓ/Ð/äˆC�‹�bÕ€AÜ”$˜Ó€AÜ�1�a˜•dÓ€AÜ	”G˜A“M 1 R¥4Ó	(€BÜ”g˜a“n q bÓ)€EÜ”�aÓ€AÜ�”y  1“~ rÓ*€AÜ�1”g˜a“m TÓ/Ð/rU   c                 óP  € V w  r4V\         8X  d@   V\        8X  d   \         \        3# \        V\        4      '       d   \	        W1V4      \         3# V^,           p\        V ^4      p\        V^,          V^,          ,           ^ 4      V,
          p\        \        V4      p\        V ^V,          4      p	\        \        W^V,          4      ^V,          4      p
\        \        W©V4      V) 4      p\        \        W4      p\        V\        V ^4      V4      p\        V\        W�V4      W4      # )rS  )r   r   r   r   rZ  rE   rº   r$   rT  r<   rA   r6   r5   r8   r?   )r˜   r™   r§   r  r  rš   r¼   rr   rV  rW  rX  rY  r¯   rã   s   &&&           rV   Ú
mpc_elliper\  n  só   € Ø�F€BØ	ŒU„{Ø”Œ:Üœ4�=Ð Ü�"”d×ÒÜ˜b¨Ó,¬eÐ3Ð3Ø	��€BÜ
�!�Q‹-€CÜˆC��F�3�q•6�M˜1Ó Õ"€AÜ”$˜Ó€AÜ�1�a˜•dÓ€AÜ	”K  a¨¥dÓ+¨Q¨r­TÓ	2€BÜ”g˜b RÓ(¨1¨"Ó-€EÜ”˜Ó€AÜ�”y  1“~ rÓ*€AÜ�1”g˜a BÓ'¨Ó3Ð3rU   r&  )tÚ__doc__Úoperatorr£   Úbackendr   r   r   r   r   Ú
libintmathr   Úlibmpfr   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,   Ú	libelefunr-   r.   r/   r0   r1   r2   r3   r4   Úlibmpcr5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   Ú	gammazetarJ   rK   rL   Ú	ExceptionrN   r‘   r³   r·   rÀ   rÃ   rÌ   rÏ   rÔ   rß   rò   rö   rù   r  r  r  r$  r(  r+  r/  r1  r7  r:  rC  rF  rL  rN  rQ  rT  rZ  r\  rO   rU   rV   Ú<module>rf     s¾  ðñó Û ç >Õ >å ÷
÷ 
÷ 
÷ 
÷ 
÷ 
÷ 
÷ 
÷ 
õ 
÷÷ õ ÷
÷ ÷ ÷ ÷ ó õ ß <Ñ <ô	�Iô 	ð	òs$ðl ˆfÔò!ð. $ô &+òZð %ô %ò\ò
ò	òð( # uô (ðT # uô ?ðB #ô &ð #ô &ð  *°ô tôl ô":ð> &¨Qô [ðz #ô )ð
 #ô )ð #ô ð #ô !ðP '1ô 0ð. '1ô "ðH 'ô 9-ðv %ô 'ð 'ô ð4 %ô *ð 'ô ð( 'ô ð 'ô 0ð< 'ö 4rU   