ó
    ˆ*£h- ã                   óÞ  • S r SSKrSSKrSSKJr  SSKJrJrJrJrJ	r	  SSK
JrJrJrJr  SSKJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<  SSK=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErEJFrFJGrGJHrHJIrIJJrJJKrKJLrLJMrMJNrNJOrOJPrPJQrQJRrRJSrS  SS	KTJUrUJVrVJWrWJXrXJYrYJZrZJ[r[J\r\J]r]J^r^J_r_J`r`JaraJbrbJcrcJdrdJereJfrfJgrgJhrhJiriJjrjJkrkJlrlJmrmJnrn  \>S
 5       ro\>S 5       rp\>S 5       rq\>S 5       rr \>S 5       rs\>S 5       rt\>S 5       ru\?" \s5      rv\?" \r5      rw\?" \p5      rx\?" \q5      ry\?" \o5      rz\?" \t5      r{\?" \u5      r|Sr} 0 r~\!" S5      r\!" S5      r€S r�\�" \}5      r‚S>S jrƒS>S jr„S r… S r†S r‡\4S jrˆ\4S jr‰\4S jrŠ\4S jr‹ 0 rŒS r�SrŽ0 r�\4S  jr�\S4S! jr‘\SS"4S# jr’\4S$ jr“\4S% jr”Sr•S& r–/ q—/ q˜/ q™S' ršS( r›S)rœS* r�S+rž\žS,:  d   eS-rŸS.r 0 r¡0 r¢\£" \ S-   5       V s/ s H  n \!" \" U 5      5      PM     sn r¤S/ r¥S0 r¦S1 r§S2 r¨S3 r©S4 rªS?S5 jr«S?S6 jr¬S@S7 jr­S@S8 jr®S@S9 jr¯S@S: jr°S@S; jr±S@S< jr²\4S= jr³gs  sn f )Aao  
-----------------------------------------------------------------------
This module implements gamma- and zeta-related functions:

* Bernoulli numbers
* Factorials
* The gamma function
* Polygamma functions
* Harmonic numbers
* The Riemann zeta function
* Constants related to these functions

-----------------------------------------------------------------------
é    Né   )Úxrange)ÚMPZÚMPZ_ZEROÚMPZ_ONEÚ	MPZ_THREEÚgmpy)Úlist_primesÚifacÚifac2Úmoebius)-Úround_floorÚround_ceilingÚ
round_downÚround_upÚround_nearestÚ
round_fastÚlshiftÚ
sqrt_fixedÚ
isqrt_fastÚfzeroÚfoneÚfnoneÚfhalfÚftwoÚfinfÚfninfÚfnanÚfrom_intÚto_intÚto_fixedÚfrom_man_expÚfrom_rationalÚmpf_posÚmpf_negÚmpf_absÚmpf_addÚmpf_subÚmpf_mulÚmpf_mul_intÚmpf_divÚmpf_sqrtÚmpf_pow_intÚmpf_rdiv_intÚmpf_perturbÚmpf_leÚmpf_ltÚmpf_gtÚ	mpf_shiftÚnegative_rndÚreciprocal_rndÚbitcountÚto_floatÚ	mpf_floorÚmpf_signÚComplexResult)Úconstant_memoÚdef_mpf_constantÚmpf_piÚpi_fixedÚ	ln2_fixedÚlog_int_fixedÚmpf_ln2Úmpf_expÚmpf_logÚmpf_powÚmpf_coshÚmpf_cos_sinÚmpf_cosh_sinhÚmpf_cos_sin_piÚ
mpf_cos_piÚ
mpf_sin_piÚln_sqrt2pi_fixedÚmpf_ln_sqrt2piÚsqrtpi_fixedÚ
mpf_sqrtpiÚcos_sin_fixedÚ	exp_fixed)Úmpc_zeroÚmpc_oneÚmpc_halfÚmpc_twoÚmpc_absÚ	mpc_shiftÚmpc_posÚmpc_negÚmpc_addÚmpc_subÚmpc_mulÚmpc_divÚmpc_add_mpfÚmpc_mul_mpfÚmpc_div_mpfÚmpc_mpf_divÚmpc_mul_intÚmpc_pow_intÚmpc_logÚmpc_expÚmpc_powÚ
mpc_cos_piÚ
mpc_sin_piÚmpc_reciprocalÚ
mpc_squareÚmpc_sub_mpfc                 ó  • U S-   n [         U -  =pSu  p4nU(       ai  USUS-  -  SU-  S-
  -  -  nUSSU-  -
  SUS-  -  -   S-  -  nUSUS-
  -  -  S	US-  -  S
U-  -
  S-   -  US-  SU-  S-
  -  -  nX4-  nUS-  nU(       a  Mi  US-	  $ )Né   )r   r   r   é    é   é   r   é   éÿÿÿÿé(   é   é   ©r   )ÚprecÚaÚoneÚsÚtÚns         ÚS/home/mande/repo/quber/.venv/lib/python3.13/site-packages/mpmath/libmp/gammazeta.pyÚcatalan_fixedr}   H   sÇ   € à�"‰9€DÜ˜‰oÐ€AØ�G€Aˆ!Þ
Ø	ˆR�!�Q‘$‰Y˜!˜A™#˜a™%Ñ Ñ ˆØ	ˆq��A‘‰v�b˜˜A™‘g‰~ Ñ!Ñ!ˆØ��q˜‘s‘‰O˜r ! Q¡$™w r¨!¡t™|¨A™~Ñ.°1°a±4¸1¸Q¹3¸q¹5±>ÑBˆØ	‰ˆØ	ˆQ‰ˆ÷ ˆ!ð �‰=Ðó    c                 ó8  • [        X S-  -   S-   5      n[        n[        S5      n[        U-  =pE[	        U5      n[        [        XfU5      S5      =pxSn	 [        [        SU	-  U5      5      n
[        X§U5      n
[        X£U5      n
[        X¡5      n
X¥-
  U-  U	-  U-	  nUS:  a  OFX+-  nXESU	-  S-   -  USU	-  -  -
  -  nU	S-  n	[        USU	-  SU	-  S-
  -  U5      n[        XxU5      nM•  X!-  [        U5      -  n[        [        X!* 5      U5      n[        XÀ5      nU$ )Nç      à?é   é   ro   r   éd   )Úintr   r   r   r=   r3   r)   r&   Úmpf_bernoullir+   r!   r*   r?   rB   r"   )rv   Úwpry   Úfacrz   ÚONEÚpiÚpipowÚtwopi2r{   Úzeta2nÚtermÚKs                r|   Úkhinchin_fixedr�   m   sF  € ä	ˆT˜#‘IÑ Ñ"Ó	#€BÜ€AÜ
�1‹+€CÜ˜‰mÐ€AÜ	�‹€BÜœw r¨rÓ2°AÓ6Ð6€EØ	€AØ
Üœ q¨¡s¨BÓ/Ó0ˆÜ˜¨Ó+ˆÜ˜ bÓ)ˆÜ˜&Ó%ˆØ‘, !Ñ#¨Ñ)¨bÑ0ˆØ�#‹:Øð 	
‰	ˆØ	�1�Q‘3�q‘5‰\˜C ! A¡#™JÑ&Ñ&ˆØ	ˆQ‰ˆÜ˜#  !¡ a¨¡c¨!¡e™}¨bÓ1ˆÜ˜ rÓ*ˆñ ð 
‰”Y˜r“]Ñ"€AÜ”˜Q Ó$ bÓ)€AÜ�Ó€AØ€Hr~   c           	      óZ  • U S-   n[        SU -  S-   5      n[        U-  n[        n[        SU5       H  nU[	        XQ5      US-  -  -  nM     [	        X!5      nXCU-   U-  -  nXFUS-  S-  -  -  nUS-  nSnSn	Sn
[        S5      nSn X�-  X–-  -   U-  n[        XÁ* 5      n[        SU-  U5      n[        XÜU5      n[        XëU5      n[        Xá5      n[        U5      S:  a  ORXN-  nX˜U
-  -
  U
* U	-  Xr-  U
S-   4u  p‰pzX˜U
-  -
  U
* U	-  Xr-  U
S-   4u  p‰pzUS-  n[        USU-  SU-  S-
  -  U5      nM¬  [        U5      nUS	-  nXA-  US-  U-	  -  nU[        U5      -  nU[        [        [        SU-  U* 5      U5      U5      -  nUS
-  n[!        [        XA* 5      U5      n[        UU 5      $ )Né   g…ëQ¸Õ?é   ro   rn   r   éþÿÿÿrƒ   é   é   )r„   r   r   Úranger@   r   r"   r…   r)   r+   r!   Úabsr*   r>   Úeuler_fixedrC   rB   )rv   r†   ÚNrˆ   ry   ÚkÚlogNÚpNrw   ÚbÚjr‡   ÚDÚBr�   r‰   ÚAs                    r|   Úglaisher_fixedr¢   ¯   s  € à	�‰€Bô 	ˆD�‰I˜‰MÓ€AÜ
�R‰-€Cä€AÜ�1�aŽ[ˆà	Œ]˜1Ó! Q¨¡TÑ)Ñ)Šñ ô ˜Ó€Dð �‰*˜Ñ	Ñ€Aà�!�Q‘$˜‘(Ñ	Ñ€Aà	
ˆA‰€BØ	€AØ
€AØ	€AÜ
�1‹+€CØ	€AØ
à‰g˜™Ñ BÑ&ˆÜ˜˜CÓ ˆÜ˜!˜A™#˜rÓ"ˆÜ�q˜RÓ ˆÜ�t "Ó%ˆÜ˜Ó!ˆÜˆt‹9�s‹?Øð 	
‰	ˆà˜!™‘e˜a˜R ™T 2¡4¨¨1©Ð,‰ˆˆbØ˜!™‘e˜a˜R ™T 2¡4¨¨1©Ð,‰ˆˆbØ	ˆQ‰ˆÜ˜#  !¡ a¨¡c¨!¡e™}¨bÓ1ˆñ# ô& 
�"‹€BØˆ�F€AØ	
‰�b˜!‘e˜r‘kÑ"€AØŒ�R‹Ñ€AØŒ”'œ, q¨¡t¨b¨SÓ1°2Ó6¸Ó	;Ñ;€AØˆ"�H€AÜ”˜Q Ó$ bÓ)€AÜ�A�tÓÐr~   c                 óö   • U S-  n [         U -  n[        S5      U -  nSn[        nU(       aJ  XB-  nXS-  -  nUSU-  S-   S-  SU-  S-  -  -  nSU-  SUS-  -  S	U-  -   S-   -  U-  nUS-  nU(       a  MJ  US
-	  $ )Nrl   éM   r   é
   ro   r’   rq   éÍ   éú   rt   )r   r   r   )rv   Údr�   r{   ry   s        r|   Úapery_fixedr©   í   s¨   € àˆB�J€DÜ�4‰€AÜˆr‹7�d‰?€DØ	€AÜ€AÞ
Ø	‰	ˆØ	�‰e‰ˆØ	��1‘�Q‘˜‘
˜q ™s Q™hÑ&Ñ'ˆØ�Q‰w˜#˜q !™t™* s¨1¡uÑ,¨rÑ1Ñ2°QÑ6ˆØ	ˆQ‰ˆ÷ ˆ$ð �‰=Ðr~   c                 ó~  • SnX-  n [        [        R                  " U S-  [        R                  " S5      -  S5      5      S-   nSU-  nU* [        U 5      -  =pE[        U -  =pgSn XcS-  -  US-  -  nXCS-  -  U-  U-   U-  nXT-  nXv-  n[        [        U5      [        U5      5      S:  a  OUS-  nMO  XPU-
  -  U-  $ )Nr‘   r‚   ro   r   rƒ   )r„   ÚmathÚlogr?   r   Úmaxr—   )	rv   ÚextraÚpr{   r¡   ÚUr    ÚVrš   s	            r|   r˜   r˜     sÝ   € à€EØ�M€DäŒD�HŠH�d˜1‘f¤§¢¨£Ñ+¨QÓ/Ó0°1Ñ4€AØ	ˆ1‰€AØˆBŒy˜‹ÑÐ€AÜ�t‰OÐ€AØ	€AØ
Ø�‰d‰F�A�q‘D‰LˆØ�!‰t‰V�Q‰Y˜‰]˜QÑˆØ	‰ˆØ	‰ˆÜŒs�1‹v”s˜1“vÓ Ó$ØØ	ˆQ‰ˆñ ð �U‘
‰O˜aÑÐr~   c                 óü   • U S-   nSn[        U5      n [        X!5      nU[        :X  a  OI[        XA5      n[	        U[        U5      U5      n[        U[        U5      U5      n[        X45      nUS-  nM_  [        X05      $ )Nrl   ro   r   )
Ú	mpf_eulerÚmpf_zeta_intr   rC   r*   r   r+   r   r'   r!   )rv   r†   Úmry   rz   s        r|   Úmertens_fixedr¶   *  s�   € à	�‰€BØ	€AÜ�"‹€AØ
Ü˜ÓˆØ”‹9ØÜ�A‹NˆÜ˜œ7 1›: rÓ*ˆÜ�A”x “{ BÓ'ˆÜ�A‹MˆØ	ˆQ‰ˆñ ô �AÓÐr~   c           	      ó2  • S nSU -  S-   n[         nS Vs/ s H  n[        SXB5      PM     nnU Vs/ s H  n[        XDU5      PM     nnSn [        Xr5      n[	        S5       H3  n	[        U[        [         Xi   5      U5      n[        Xi   XY   U5      Xi'   M5     [        X�" U5      * U5      n[        X€S-   S5      [         :X  a  O[        X8U5      nUS-  nM‹  [        U[        S	5      U5      n[        U[        S
5      U5      n[        X05      $ s  snf s  snf )Nc                 óN   ^ • [        U 4S j[        ST S-   5       5       5      T -  $ )Nc              3   ó^   >#   • U  H"  nTU-  (       a  M  [        U5      TU-  -  v •  M$     g 7f©N)r   )Ú.0r¨   r{   s     €r|   Ú	<genexpr>Ú-twinprime_fixed.<locals>.I.<locals>.<genexpr>=  s'   øé € ÐHª}¨!ÀAÀaÅCÓ%”7˜1“:  1¡Ö%ª}ùs   ƒ-•-r   )Úsumr   ©r{   s   `r|   ÚIÚtwinprime_fixed.<locals>.I<  s#   ø€ ÜÔH¬v°a¸¸!¹¬}ÓHÓHÈ!ÑKÐKr~   ro   r‘   )ro   rn   r’   é   r   r‚   r¥   r{   i'  i 	  )r   r#   r)   r´   r–   r(   r-   r$   r   r+   r!   )
rv   rÀ   r†   Úresr¯   ÚprimesÚppowersr{   rw   Úis
             r|   Útwinprime_fixedrÇ   :  s  € òLà	
ˆ4‰�"‰€BÜ
€CÙ-6Ó7ªY¨Œm˜A˜aÖ#©Y€FÐ7Ù(.Ó/ª 1Œw�q˜2Ž©€GÐ/Ø	€AØ
Ü˜ÓˆÜ�q–ˆAÜ˜œ7¤4¨©Ó4°bÓ9ˆAÜ  ¡¨V©Y¸Ó;ˆG‹Jñ ô ˜˜A˜a›D˜5 "Ó%ˆÜ�1˜2‘g˜sÓ#¤tÓ+Øô �c˜bÓ!ˆØ	ˆQ‰ˆñ ô �#”x Ó(¨"Ó
-€CÜ
�#”x Ó(¨"Ó
-€CÜ�CÓÐùò# 8ùÚ/s
   –D²Di¸  rn   r”   c                 ób   • [         R                  " U S5      n[        SSU-  -   XS-
  -  -   5      $ )z5Accurately estimate the size of B_n (even n > 2 only)ro   gÏ÷Sã¥›@r€   gÇK7‰A`@)r«   r¬   r„   )r{   Úlgns     r|   Úbernoulli_sizerÊ   Š  s/   € ä
�(Š(�1�Q‹-€CÜˆu�s˜3‘w‰ ¨%¡K¡Ñ0Ó1Ð1r~   c                 óâ  • U S:  a2  U S:  a  [        S5      eU S:X  a  [        $ U S:X  a  [        [        5      $ U S-  (       a  [        $ U[
        :”  a;  U[        U 5      S-  S-   :”  a&  [        U 5      u  p4[        X4X=(       d    [        5      $ U [        :”  a  [        XU5      $ US-   nUSUS	-  -
  -  n[        R                  U5      nU(       a<  Uu  pxX;   a  U(       d  Xp   $ [        Xp   X5      $ Uu  pšnX	-
  S
:”  a  [        XU5      $ O:U S
:”  a  [        XU5      $ S[        0nS[        S
5      [         /=u  pšp¸Xx4[        U'   X�::  Ga¡  U	S-  n[        U	5      nSn[#        SU5      U-
  nU	S:  a  [$        nOUn['        SU	S-  S-   5       H“  nXySU-  -
     =u  nnnnnU(       a  U* nU[)        UU-  UU-
  5      -  nSU-  nUU	S-
  U-
  U	S-
  U-
  -  U	S-
  U-
  -  U	S-
  U-
  -  U	S-
  U-
  -  U	U-
  -  -  nUSU-   SU-   -  SU-   -  SU-   -  SU-   -  SU-   -  -  nM•     US:X  a  [+        U	S-   [,        U5      nUS:X  a  [+        U	S-   [,        U5      nUS:X  a  [+        U	* S-
  [.        U5      n[1        XïU5      n[3        [5        WXå5      [7        U
5      U5      nUXy'   U	S-  n	X©S-   U	S-   -  -  X™S-
  -  -  n
U	S:”  a  USU	-   SU	-   -  -  U	S-
  U	S-
  -  -  nXšU/USS& X�::  a  GM¡  Xp   $ )z.Computation of Bernoulli numbers (numerically)ro   r   z)Bernoulli numbers only defined for n >= 0r   gš™™™™™ñ?éè  r‘   rm   é   r¥   r”   r’   r‚   rn   rÂ   é   é	   N)Ú
ValueErrorr   r%   r   r   ÚBERNOULLI_PREC_CUTOFFrÊ   Úbernfracr#   r   ÚMAX_BERNOULLI_CACHEÚmpf_bernoulli_hugeÚbernoulli_cacheÚgetr$   r   r   r­   r   r   r   r.   Úf3Úf6r"   r+   r(   r   )r{   rv   Úrndr¯   Úqr†   ÚcachedÚnumbersÚstaterµ   ÚbinÚbin1ÚcaseÚszbmry   Úsexprw   rž   ÚusignÚumanÚuexpÚubcÚuÚj6r�   s                            r|   r…   r…   ‘  sn  € àˆ1ƒuØˆq‹5ÜÐHÓIÐIØ�‹6ÜˆKØ�‹6Üœ5“>Ð!àˆ1‡uÜˆð
 Ô#Ó#¨¬~¸aÓ/@ÀÑ/DÀtÑ/KÓ(KÜ˜‹{‰ˆÜ˜Q 4×);´Ó<Ð<ØÔÓÜ! !¨3Ó/Ð/Ø	�‰€Bàˆ"��r‘	Ñ
Ñ€BÜ× Ñ  Ó$€FÞØ‰ˆØ‹<ÞØ‘zÐ!Ü˜7™: tÓ1Ð1Ø‰ˆ�Ø‰5�2‹:Ü% a¨sÓ3Ð3ð ð ˆr‹6Ü% a¨sÓ3Ð3Ø”T�(ˆØ !¤3 r£7¬GÐ4Ð4‰ˆ�Ø&Ð.Œ˜ÑØ
Œ&à�1‰uˆô ˜aÓ ˆØˆÜ�1�d‹|˜rÑ!ˆØˆq‹5Ü‰AàˆAÜ˜˜1˜a™4 ™6Ö"ˆAØ)0°1°Q±3±©Ð7Ñ"ˆE�4˜˜s QÞØ�u�Ø”˜˜$™  T¡	Ó*Ñ*ˆAà�1‘ˆBØ�1�Q‘3�r‘6˜A˜a™C ™FÑ# Q q¡S¨¡VÑ,¨a°©c°"©fÑ5°q¸±s¸2±vÑ>ÀÀ"ÁÑEÑFˆAØ�A�b‘D˜1˜R™4‘= ! B¡$Ñ'¨¨2©Ñ.°°"±Ñ5°q¸±tÑ<Ñ=ŠAñ #ð �1‹9œ, q¨¡s¬B°Ó3�aØ�1‹9œ, q¨¡s¬B°Ó3�aØ�1‹9œ,¨ r¨!¡t¬R°Ó4�aÜ˜ "Ó%ˆÜ”G˜A˜qÓ%¤x°£}°bÓ9ˆØˆ‰
Ø	ˆQ‰ˆà˜‘c˜A˜a™C‘[Ñ! a¨1©¡gÑ.ˆØˆq‹5Ø˜A˜a™C ! A¡#™;Ñ'¨Q¨q©S°1°Q±3©KÑ8ˆDØ˜D�>ˆ‰aˆðA Ž&ðB ‰:Ðr~   c                 óX  • US-   nU[        [        R                  " U S5      5      -   n[        U S-   U5      n[	        U[        X5      U5      n[	        U[        [        U5      U * U5      5      n[        USU -
  5      nU S-  (       d  [        U5      n[        XQU=(       d    [        5      $ )Nr¥   ro   r   rn   )r„   r«   r¬   Úmpf_gamma_intr)   r´   r-   r=   r3   r%   r$   r   )r{   rv   rÙ   r†   ÚpiprecÚvs         r|   rÔ   rÔ   Ü  s”   € Ø	�‰€BØ”#”d—h’h˜q “mÓ$Ñ$€FÜ�a˜‘c˜2Ó€AÜ�”< Ó&¨Ó+€AÜ�”;œv f›~°¨r°2Ó6Ó7€AÜ�!�Q�q‘SÓ€AØˆq�5Ü�A‹JˆÜ�1˜C×-¤:Ó.Ð.r~   c                 ó^  • [        U 5      n U S:  a  / SQU    $ U S-  (       a  gSn[        U S-   5       H  nXS-
  -  (       a  M  X-  nM     [        U 5      [        [        R                  " US5      5      -   S-   n[        X5      n[        U[        U5      5      n[        U[        5      nXa4$ )aÊ  
Returns a tuple of integers `(p, q)` such that `p/q = B_n` exactly,
where `B_n` denotes the `n`-th Bernoulli number. The fraction is
always reduced to lowest terms. Note that for `n > 1` and `n` odd,
`B_n = 0`, and `(0, 1)` is returned.

**Examples**

The first few Bernoulli numbers are exactly::

    >>> from mpmath import *
    >>> for n in range(15):
    ...     p, q = bernfrac(n)
    ...     print("%s %s/%s" % (n, p, q))
    ...
    0 1/1
    1 -1/2
    2 1/6
    3 0/1
    4 -1/30
    5 0/1
    6 1/42
    7 0/1
    8 -1/30
    9 0/1
    10 5/66
    11 0/1
    12 -691/2730
    13 0/1
    14 7/6

This function works for arbitrarily large `n`::

    >>> p, q = bernfrac(10**4)
    >>> print(q)
    2338224387510
    >>> print(len(str(p)))
    27692
    >>> mp.dps = 15
    >>> print(mpf(p) / q)
    -9.04942396360948e+27677
    >>> print(bernoulli(10**4))
    -9.04942396360948e+27677

.. note ::

    :func:`~mpmath.bernoulli` computes a floating-point approximation
    directly, without computing the exact fraction first.
    This is much faster for large `n`.

**Algorithm**

:func:`~mpmath.bernfrac` works by computing the value of `B_n` numerically
and then using the von Staudt-Clausen theorem [1] to reconstruct
the exact fraction. For large `n`, this is significantly faster than
computing `B_1, B_2, \ldots, B_2` recursively with exact arithmetic.
The implementation has been tested for `n = 10^m` up to `m = 6`.

In practice, :func:`~mpmath.bernfrac` appears to be about three times
slower than the specialized program calcbn.exe [2]

**References**

1. MathWorld, von Staudt-Clausen Theorem:
   http://mathworld.wolfram.com/vonStaudt-ClausenTheorem.html

2. The Bernoulli Number Page:
   http://www.bernoulli.org/

rn   ))r   r   )rq   ro   )r   r”   r   )r   r   ro   rl   )
r„   r
   rÊ   r«   r¬   r…   r)   r   r    r   )r{   rÚ   rš   rv   r�   r¯   Úpints          r|   rÒ   rÒ   ç  s§   € ôN 	ˆA‹€AØˆ1ƒuÚ(¨Ñ+Ð+Øˆ1‡uØØ	€AÜ˜˜1™ÖˆØ�q‘S—	‘	Ø‰FŠAñ ô ˜!Óœs¤4§8¢8¨A¨a£=Ó1Ñ1°BÑ6€DÜ�aÓ€AÜ�”8˜A“;Ó€AÜ�!”]Ó#€DØˆ9Ðr~   c                 óž   • U [         [        [        4;   a  U $ [        [	        [
        XS-   5      U5      n[	        U[        US-   U5      X5      $ )Nr’   )r   r   r   Úmpf_psi0r'   r   r³   )Úxrv   rÙ   rw   s       r|   Úmpf_harmonicrò   „  sG   € ØŒU”Dœ$ÐÓØˆÜ”œ˜q q¡&Ó)¨4Ó0€AÜ�1”i  Q¡¨Ó,¨dÓ8Ð8r~   c                 ó¶   • U S   [         :X  a  [        U S   X5      [         4$ [        [        U [        US-   5      U5      n[        U[        US-   U5      X5      $ )Nr   r   r’   )r   rò   Úmpc_psi0r]   r   r³   )Úzrv   rÙ   rw   s       r|   Úmpc_harmonicrö   Š  sV   € Øˆ�tŒuƒ}Ü˜Q˜q™T 4Ó-¬uÐ5Ð5Ü”˜Q¤ d¨1¡fÓ-¨tÓ4€AÜ�qœ) D¨¡F¨CÓ0°$Ó<Ð<r~   c           
      ó†  • U u  p4pVUS-   nU(       d&  U [         :X  a  U $ U [        :X  d
  U [        :X  a  [        $ U [        :X  d  US:¼  a  U(       a  [	        S5      eXV-   S:  a7  [        [        U [        X5      X5      n[        U[        [        XU5      X5      $ U(       a[  XV-   S:”  aS  [        X5      u  pš[        [        XšU5      [        U5      U5      n[        [        [        X5      U5      n[        XËX5      $ U(       d#  Xe-   U:”  a  [        [        U [        U5      X5      $ [        U 5      n[        SU-  5      S-   n[         n
[#        X5      n [$        U-  nXÞ:  a   ['        XÞ5       H  nX¯U-  U -  -  n
X-  n M     X-  n U
[#        [        [)        X* U5      U5      U5      -  n
X¯U-  SU -  -  -  n
X -  U-	  nUnSnSn UU-  U-	  n[+        SU-  U5      u  nnnnUSU-  -   nUS:¼  a  UU-  USU-  -  -  nOUU* -	  USU-  -  -  nUS-  (       a  U
U-  n
OU
U-  n
US:”  a  UU:¼  a  O	UnUS-  nMs  [)        X§* Xr5      $ )	zS
Computation of the digamma function (psi function of order 0)
of a real argument.
r¥   r   zpolygamma poleéûÿÿÿrn   ç)\�Âõ(¼?ro   r   )r   r   r   r   rÐ   rð   r'   r   r(   r+   rH   r)   r=   rC   r    r„   r   r!   r   r   r"   r…   )rñ   rv   rÙ   ÚsignÚmanÚexpÚbcr†   rì   Úcry   rÚ   r¯   rµ   r{   rx   rš   Úx2rz   ÚprevÚbsignÚbmanÚbexpÚbbcÚoffsetr�   s                             r|   rð   rð   �  se  € ð
 Ñ€DˆsØ	�‰€BÞØ”‹9˜Q�hØ”‹:˜œd›¬4 KØŒEƒz�c˜Q“h¦4ÜÐ)Ó*Ð*à
�v�ƒ{Ü”W˜Q¤ dÓ0°$Ó<ˆÜ�qœ'¤$¨¨sÓ3°TÓ?Ð?æ�‘˜“
Ü˜aÓ$‰ˆÜ”G˜A "Ó%¤v¨b£z°2Ó6ˆÜ”WœT 1Ó)¨2Ó.ˆÜ�q˜TÓ'Ð'æ�b‘h “mÜ”w˜q¤$¨Ó+¨TÓ7Ð7äˆq‹	€AÜˆD�‰G‹�qÑ€AÜ€AÜ�‹€AÜ
�R‰-€CØƒuÜ˜–ˆAØ˜‘) Ñ!Ñ!ˆAØ‰HŠAñ ð �H€AàŒ”'œ, q¨#¨rÓ2°BÓ7¸Ó	<Ñ<€Aà�‰)˜˜1™Ñ	Ñ€Aà
‰#�"‰€BØ€AØ€DØ	€AØ
Øˆr‰T�b‰LˆÜ!.¨q°©s°BÓ!7Ñˆˆt�T˜3Ø˜˜2™‘+ˆØ�Q‹; ¨¡°A°q¸±s±GÑ<™Ø $¨&¨Ñ 1°q¸!¸A¹#±wÑ?˜Øˆq�5�!�t‘)‘!Ø�t‘)�!Øˆq‹5�T˜T“\ØØˆØ	ˆQ‰ˆñ ô ˜˜3 Ó(Ð(r~   c                 ó8  • U u  p4U[         :X  a  [        X1U5      [         4$ US-   nUu  pgp‰U(       ad  X‰-   S:”  a\  [        X5      n
[        X5      n[	        [        X«U5      [        U5      U5      n[        [        [        X5      U5      n[        XÜX5      $ U(       d#  X˜-   U:”  a  [        [        U [        U5      X5      $ [        U5      n[        SU-  5      S-   n[        nXï:  a9  [        Xï5       H*  n[        U[        X5      U5      n[!        U ["        U5      n M,     [        U [        U5      n [%        U[        X5      U5      n[%        U[        [&        X5      U5      n[)        X5      n[        n[        n[         nSn[+        ["        U* S-   5      n [-        UUU5      n[/        SU-  U5      n[1        U[3        USU-  U5      U5      n[        UUU5      n[5        US5      nUS:”  a%  [7        UU5      (       d  [7        UU5      (       a   U$ UnUnUS-  nM†  )zV
Computation of the digamma function (psi function of order 0)
of a complex argument.
rl   rn   rù   ro   r   r¥   )r   rð   rf   rg   r^   r\   r=   rô   rZ   rR   rc   r    r„   rQ   r   rh   r]   r   rY   rS   ri   r3   r[   r…   r`   ra   rU   r0   )rõ   rv   rÙ   ÚreÚimr†   rú   rû   rü   rý   rþ   ry   rÚ   r¯   Úwr{   rš   Úz2rz   r   ÚszprevÚepsÚbernr�   Úszterms                            r|   rô   rô   Ë  s  € ð
 �F€Bà	ŒUƒ{Ü˜ 3Ó'¬Ð/Ð/Ø	�‰€BØÑ€Dˆsæ�‘˜“
Ü�qÓˆÜ�qÓˆÜœ  bÓ)¬6°"«:°rÓ:ˆÜ”WœW aÓ,¨bÓ1ˆÜ�q˜TÓ'Ð'æ�b‘h “mÜ”w˜q¤'¨2Ó.°Ó:Ð:äˆr‹
€AÜˆD�‰G‹�qÑ€AÜ€AØƒuÜ˜–ˆAÜ˜œ>¨!Ó0°"Ó5ˆAÜ˜Aœt RÓ(ŠAñ ô 	�”7˜BÓ€Aä�”7˜1“> 2Ó&€AÜ�”7œ8 QÓ+¨RÓ0€Aä	�AÓ	€BÜ€AÜ€DÜ€FØ	€AÜ
”D˜2˜#˜a™%Ó
 €CØ
Ü�A�r˜2ÓˆÜ˜Q˜q™S "Ó%ˆÜ˜4¤¨Q°°!±°RÓ!8¸"Ó=ˆÜ�A�t˜RÓ ˆÜ˜˜rÓ"ˆØˆq‹5”f˜V S×)Ñ)¬V°F¸F×-CÑ-CØð €Hð ˆØˆØ	ˆQ‰ˆñ r~   c                 óT   • U S:X  a  [        X[        S9$ [        X[        4X#5      S   $ )za
Computation of the polygamma function of arbitrary integer order
m >= 0, for a real argument x.
r   )rÙ   )rð   r   Úmpc_psir   )rµ   rñ   rv   rÙ   s       r|   Úmpf_psir    s.   € ð
 	ˆAƒvÜ˜¤ZÑ0Ð0Ü�1œ%�j $Ó,¨QÑ/Ð/r~   c           
      ó  • U S:X  a  [        XU5      $ Uu  pEUS-   nUu  pxpšUS   (       d!  U[        [        [        4;   a  [        [        4$ U(       d6  U[        :X  a  U[        :X  a  [        [        4$ U[        :X  a  [        [        4$ [        U5      n[        SU-  SU -  -   5      n[        nX¼:  a?  [        X¼5       H0  n[        X* S-
  U5      n[        XßU5      n[        U[        U5      nM2     [        X* U5      n[        USU5      n[        U[        U 5      U5      n[        UUU5      n[        U[        [!        UX5      ["        U5      U5      nU S-   nSnSn[%        US5      nUS   US	   -   n['        [        UU-
  S-   5      n [)        UUU5      n[+        SU-  U5      n[-        UUU5      n[/        U[        U5      U5      n[        UUU5      n[        UUU5      n[%        US5      nUS:”  a  [1        UU5      (       a  O2UU SU-  -   U SU-  -   S-   -  -  nUSU-  S-   SU-  S-   -  -  nUS-  nM¯  [        U[3        [        U S-   5      U5      X#5      nU S-  (       d  [5        US   5      [5        US   5      4nU$ )
zd
Computation of the polygamma function of arbitrary integer order
m >= 0, for a complex argument z.
r   rl   r   gš™™™™™Ù?r‚   r“   ro   r¥   rn   )rô   r   r   r   r   r    r„   rQ   r   rb   rY   r]   r   r_   r   r^   r\   r   rU   r3   r[   r…   r*   r+   r0   Ú	mpf_gammar%   )rµ   rõ   rv   rÙ   r  r  r†   rú   rû   rü   rý   r	  r{   ry   rš   rz   Úzmr
  Úintegral_termrw   r�   Úmagnr  r  Úscalr�   r  rì   s                               r|   r  r  
  s”  € ð
 	ˆAƒvÜ˜ Ó%Ð%Ø�F€BØ	�‰€BØÑ€DˆsØˆa�5Ø”$œœtÐ$Ó$Üœ$�<ÐÞØ”‹:˜"¤›+Üœ5�>Ð!Ø”‹:Üœ$�<Ðäˆr‹
€AÜˆC�‰F�Q�q‘S‰LÓ€AÜ€AØƒuÜ˜–ˆAÜ˜A˜r !™t RÓ(ˆAÜ˜˜bÓ!ˆAÜ˜Aœt RÓ(ŠAñ ô 
�Q˜˜BÓ	€BÜ	�Q˜˜BÓ	€Bä ¤H¨Q£K°Ó4€MÜ��= "Ó%€Aä�”;œw r¨1Ó1´5¸"Ó=¸rÓB€AØ	ˆA‰€AØ	€AØ	€Aô �1�b‹>€DØ�‰7�4˜‘7‰?€DÜ
”D˜$˜r™' !™)Ó
$€CØ
Ü�R˜˜RÓ ˆÜ˜Q˜q™S "Ó%ˆÜ˜4  BÓ'ˆÜ�tœX a›[¨"Ó-ˆÜ˜2˜t RÓ(ˆÜ�A�t˜RÓ ˆÜ˜˜rÓ"ˆØˆq‹5”V˜F C×(Ñ(Øà	ˆa��!‘‰e�a˜˜!™‘e˜A‘gÑÑˆØ	ˆa�‰c�!‰e�a˜‘c˜!‘e‰_ÑˆØ	ˆQ‰ˆñ ô 	�A”y¤¨!¨A©#£°Ó3°TÓ?€AØ��EÜ�A�a‘D‹Mœ7 1 Q¡4›=Ð(ˆØ€Hr~   c                 ó   • U [         ;   a	  [         U    $ [        /U S-   -  n[        n[        =o1S'   [        SU S-   5       H1  nUS-  X-   S-
  -  X-
  S-   -  nUSU-  SU-  S-
  -  -  nX2-  nX1U'   M3     U[         U '   U$ )Nr   r   r‚   ro   )Úborwein_cacher   r   r–   )r{   Údsr¨   ry   rÆ   s        r|   Úborwein_coefficientsr  {  s¢   € ØŒMÓÜ˜QÑÐÜ
ˆ�q˜‘sÑ	€BÜ€AÜÐ€Aˆ1‰Ü�1�a˜‘cŽ]ˆØ�‰E�Q‘S˜‘U‰O˜q™s 1™uÑ%ˆØ	��!‘˜˜1™˜a™Ñ Ñ!ˆØ	‰ˆØˆ1‹ñ	 ð
 „M�!ÑØ€Ir~   rÌ   c           	      ó  • US-   n[        U 5      n U [        ;   a&  [        U    S   U:¼  a  [        [        U    S   X5      $ U S:  aN  U S:X  a  [        S5      eU (       d  [	        [
        5      $ [        [        U * S-   U5      [        U S-
  5      X5      $ X:¼  a  [        [        SX5      $ XS-  :¼  aB  SU-  =pEUSX0-
  -  -  nXE[        U -  -  -  nUS[        SX0S-  -
  5      -  -  n[        XC* X5      $ [        U5      U S-
  -  S-   nUS:  a°  [        SU-  S-   5      nU[        US	-  S
-   5      S-  :  a‡  [        n[        U5       Hb  n[        X0[         R"                  " US5      -  -
  5      n	U	S:  a    O6[%        [        ['        [        U5      U * U	5      U5      n
[)        XJU5      nMd     [        [        XC5      $ [        US	-  S
-   5      n[+        U5      n[,        n[/        U 5      n [1        U5       H!  nUSU-  XÈ   XË   -
  -  U-  US-   U -  -  -  nM#     XC-  XË   * -  nXC-  SU-  SUS-   U -
  -  -
  -  nU [        ;   a  [        U    S   U:  d
  U [        ;  a  U[        XC* U-
  5      4[        U '   [        XC* U-
  X5      $ )z4
Optimized computation of zeta(s) for an integer s.
rl   r   r   ro   zzeta(1) poleg/Ý$�•Û?r‘   g       @çR¸…ëQ@r’   r¥   rq   )r„   Úzeta_int_cacher$   rÐ   r%   r   r+   r…   r   r/   r   r   r­   r"   Úfloatr
   r«   r¬   r(   r-   r)   r  r   r   r   )ry   rv   rÙ   r†   rz   rx   rµ   Úneeded_termsrš   Úpowprecrw   r{   r¨   s                r|   r´   r´   Œ  s£  € ð 
�‰€BÜˆA‹€AØŒNÓœ~¨aÑ0°Ñ3°rÓ9Ü”~ aÑ(¨Ñ+¨TÓ7Ð7Øˆ1ƒuØ�‹6Ü˜^Ó,Ð,ÞÜœ5“>Ð!Ü”} a R¨¡T¨2Ó.´¸¸1¹³¸tÓIÐIàƒwÜœ4  DÓ.Ð.à	
�‰h‹Ø�r‘'ÐˆØ	ˆQ�2‘6‰]ÑˆØ	”Y !‘^Ñ$Ñ$ˆØ	ˆQ”#�a˜ ™c™Ó"Ñ"Ñ"ˆÜ˜A˜s DÓ.Ð.ô �2‹Y˜˜!™‰_˜qÑ ˆØˆr‹6Ü˜s A™v¨™z›?ˆLØœc " T¡'¨A¡+Ó.°Ñ3Ó3Ü�Ü$ \Ö2�Aä! "¬¯ª°!°A«¡Ñ"6Ó7�GØ “{ÙÜ¤¤k´(¸1³+À¸rÀ7Ó&KÈRÓP�AÜ  bÓ)’Añ 3ô œt QÓ+Ð+äˆBˆt‰G�a‰KÓ€AÜ˜QÓ€AÜ€AÜˆA‹€AÜ�AŽYˆØ	��Q‰w˜!™$ ¡™+Ñ&¨2Ñ-°1°Q±3¸±(Ñ:Ñ:Šñ à	
‰�q‘t�eÑ€AØ	
‰�q˜B‘w 1¨¨A©¨a©¡=Ñ1Ñ2€AØ	Œ^Ó¤¨qÑ 1°!Ñ 4°rÓ 9¸qÌÓ?VØ¤¨a°°R±Ó!8Ð9Œ�qÑÜ˜˜3˜r™6 4Ó-Ð-r~   c                 ó  • U u  pEpgU(       d<  U [         :X  a  U(       a  [        $ [        [        5      $ U [        :X  a  [        $ [
        $ US-   nU(       d1  Xg-   [        R                  " US5      S-   :”  a  [        [        X1U5      $ US:¼  aˆ  U(       al  U [        :X  a  [        X5      $ [        [        U 5      U[        U   5      n	[        [        [        [        [        [        X5      U5      U5      n
[!        XšX5      $ [        [        U 5      X5      $ U(       aí  U(       aD  [        [        [        [        [        [        X5      U5      U5      n
[!        [#        X5      X¡U5      $ [        [        U SU-  5      n[%        X¸5      n[#        X¸5      n['        [)        U S5      U5      nU[+        SXg-   5      -   n[-        X�-   5      n[/        [        [)        US5      X5      UU5      n[!        U[!        U[!        UUU5      U5      X5      $ [        [        X5      n[1        U5      u  nnnnSUU-   -  nUU:”  aB  U(       a  [        X5      $ [        [/        [        UU5      5      n
[3        U
[5        U5      X5      $ U[+        SU5      -  n[6        n[9        US-  S	-   5      n[;        U5      n[6        n[=        X5      n[?        U5      n[A        U5       HK  nU* [C        US-   UU5      -  U-	  n[E        UUU5      nUU   UU   -
  U-  nUS-  (       a  UU-  nMF  UU-  nMM     UUU   * -  n[G        UU* U5      nU(       a  [I        UX5      $ [        [        [        [        [        [        X5      U5      U5      n
[/        UX¡U5      $ )
Nrl   ro   r   r¥   rq   r   r“   r  r’   )%r   r   r%   r   r   r   r«   r¬   r/   rA   r´   r    r4   r(   rD   r   r)   Úmpf_zetar  rJ   r3   r­   r=   r+   r&   r'   r³   r   r„   r  r!   r?   r   r@   rP   r"   r$   ) ry   rv   rÙ   Úaltrú   rû   rü   rý   r†   rõ   rÚ   Úyrw   r�   rþ   Úwp2r‰   r¨   ÚrÚasignÚamanÚaexpÚabcÚ	pole_distrz   r{   ÚsfÚln2rš   rç   Úemanr	  s                                    r|   r#  r#  Á  s!  € ØÑ€DˆsÞØ”‹:ÞÜ�äœu“~Ð%Ø”‹9ÜˆKÜˆØ	�‰€Bæ�s‘x¤4§8¢8¨B¨q£>°AÑ#5Ó6Üœ4 ¨CÓ0Ð0à	�‹ÞØ”D‹yÜ˜tÓ)Ð)ÜœV A›Y¨¬L¸Ñ,=Ó>ˆAÜœœg¤d¬G´D¸!Ó,@À"ÓEÀrÓJˆAÜ˜1 Ó+Ð+ä¤ q£	¨4Ó5Ð5ö
 æÜœœg¤d¬G´D¸!Ó,@À"ÓEÀrÓJˆAÜœ8 A›?¨A°SÓ9Ð9ä”D˜!˜R ™UÓ#ˆÜ�aÓˆÜ�Q‹OˆÜ”y  BÓ'¨Ó,ˆØ”3�q˜™“=Ñ ˆÜ�B‘F‹^ˆÜ”GœI b¨!Ó,¨aÓ5°r¸3Ó?ˆÜ�qœ ¤7¨1¨Q¨r£?°2Ó6°tÓ@Ð@ô 	”�aÓ€AÜ$ Q›ZÑ€Eˆ4��sØ�D˜‘H‘€IØ�2ƒ~ÞÜ˜4Ó%Ð%äœ¤ a¨Ó,Ó-ˆAÜ˜1œi¨›m¨TÓ7Ð7à
Œc�!�YÓÑˆä€Aô 	ˆBˆt‰G�a‰KÓ€AÜ˜QÓ€AÜ€AÜ	�!‹€BÜ
�B‹-€CÜ�AŽYˆØˆS”˜q ™s B¨Ó,Ñ,°Ñ3ˆô ˜˜B Ó$ˆØˆq‰T�A�a‘D‰[˜DÑ ˆØˆq�5Ø�‰FŠAà�‰FŠAñ ð 	
ˆq�‰tˆe‰€AÜ�Q˜˜˜RÓ €AÞ
Ü�q˜$Ó$Ð$ä”Dœ'¤$¬´°aÓ(<¸bÓAÀ2ÓFˆÜ�q˜! 3Ó'Ð'r~   Fc                 óB  • U u  pVU[         :X  a  [        XQX#5      [         4$ U(       d*  [        [        U S5      [	        U5      5      (       a  [
        eUS-   n[        [        X5      n[        US5      u  pšp¼SX¼-   -  nX×:”  a³  U(       aq  [        U5      n[        U[        U5      U5      n[        [        XîU5      S5      n[        UU5      n[        U[        U5      U5      n[        UXç5      n[!        UX5      $ [#        [%        [        X‡5      5      n[        U[        U5      U5      n[!        XáU5      $ U['        SU5      -  n[)        U[         5      (       Ga  U(       aD  [        [        [+        [,        [        [        X5      U5      U5      n[/        [1        X5      XáU5      $ [        [        U SU-  5      n[3        X÷5      n[1        X÷5      n[5        [7        U S5      U5      nUu  nnnnUu  nnnn['        UU-   UU-   5      nU['        SU5      -   n[9        UU-   5      n[        US5      [         4n [;        [+        U U U5      UU5      n![/        U[/        U[/        UU!U5      U5      X5      $ [=        US-  S-   5      n"U"[=        S	[?        [A        U5      5      -  5      -  n"[C        U"5      n![E        XW5      n#[E        Xg5      n$[F        n%[F        n&[H        U-  n'[H        S
U-  -  n(U[J        :H  n)[M        U5      n*[O        US-
  5      n Xw-   n[Q        U"5       H–  n+[S        U+S-   UU*5      n,U)(       a  U([U        U+S-   U-  5      -  n-O[W        U#* U,-  U-	  U5      n-U+S-  (       a  U-U!U"   U!U+   -
  -  n-OU-U!U+   U!U"   -
  -  n-[Y        U$* U,-  U-	  UU 5      u  n.n/U%U-U.-  U-	  -  n%U&U-U/-  U-	  -  n&M˜     U%U!U"   * -  n%U&U!U"   * -  n&[[        U%U* U5      n%[[        U&U* U5      n&U(       a  [!        U%U&4X5      $ [        [        [+        [,        X‡5      U5      n[%        U%U&4XáU5      $ )Nr¥   rl   r“   rq   r   r   r  r’   gÍÌÌÌÌÌì?ro   ).r   r#  r2   rU   r   ÚNotImplementedErrorrZ   rR   rA   r)   r³   r3   r(   r^   r%   r]   rW   rX   r\   r­   r1   re   rT   r[   Úmpc_zetaÚ	mpc_gammarg   rV   r=   r_   r„   r—   r    r  r!   r   r   r   r?   r>   r   r@   r   rP   rO   r"   )0ry   rv   rÙ   r$  Úforcer  r  r†   r'  r(  r)  r*  r+  r,  rÚ   r%  Úgrõ   rw   r�   rþ   ÚrsignÚrmanÚrexpÚrbcÚisignÚimanÚiexpÚibcÚmagr&  r‰   Úpi2r¨   r{   ÚrefÚimfÚtreÚtimrx   Úone_2wpÚcritical_liner.  rš   r¬   r	  ÚwreÚwims0                                                   r|   r2  r2    s  € Ø�F€BØ	ŒUƒ{Ü˜ #Ó+¬UÐ2Ð2ö ”vœg a¨›n¬h°t«n×=Ñ=Ü!Ð!à	�‰€Bô 	”˜Ó€AÜ$ Q¨›^Ñ€E�Ø�D‘H‘€IØƒ~ÞÜ˜“ˆAÜ˜œ9 R›=¨"Ó-ˆAÜœ' !¨Ó+¨RÓ0ˆAÜ˜˜1“ˆAÜ˜Aœw q›z¨2Ó.ˆAÜ˜A˜qÓ%ˆAÜ˜1˜dÓ(Ð(äœ¤¨Ó/Ó0ˆAÜ˜Aœy¨›}¨bÓ1ˆAÜ˜1 CÓ(Ð(à
Œc�!�YÓÑˆô
 ˆb”%×ÒæÜœ¤¬´'¼'À1Ó2IØó"ØóˆAäœ8 A›?¨A°SÓ9Ð9ä”G˜Q  2¡Ó&ˆÜ�aÓˆÜ�Q‹OˆÜ”y  BÓ'¨Ó,ˆØ!#Ñˆˆt�T˜3Ø!#Ñˆˆt�T˜3Ü�$�s‘(˜D ™HÓ%ˆØ”3�q˜#“;ÑˆÜ�B�s‘F‹^ˆÜ˜˜QÓ¤Ð'ˆÜœ  Q¨Ó,¨b°#Ó6ˆÜ�qœ ¤7¨1¨Q¨r£?°2Ó6°tÓ@Ð@ÜˆBˆt‰G�a‰KÓ€AØŒˆS””V˜B“Z“Ñ Ó	!Ñ!€AÜ˜QÓ€AÜ
�2Ó
€CÜ
�2Ó
€CÜ
€CÜ
€CÜ
�R‰-€CÜ˜!˜B™$Ñ€GØœ%‘K€MÜ
�B‹-€CÜ
�2�a‘4‹.€CØ
‰%€CÜ�AŽYˆÜ˜A˜a™C  SÓ)ˆæØœ: q¨¡s¨s¡lÓ3Ñ3‰Aä˜C˜4 ™8¨Ñ*¨BÓ/ˆAØˆq�5Ø�!�A‘$˜˜1™‘+Ñ‰Aà�!�A‘$˜˜1™‘+ÑˆAÜ  3 $ s¡(¨R¡°°SÓ9‰ˆˆSØ��C‘˜B‰ÑˆØ��C‘˜B‰ÑŠñ ð ˆa�‰dˆU�O€CØˆa�‰dˆU�O€CÜ
�s˜R˜C Ó
$€CÜ
�s˜R˜C Ó
$€CÞ
Ü˜˜S�z 4Ó-Ð-ä”GœW¤W¨aÓ4°bÓ9ˆÜ˜˜S�z 1¨CÓ0Ð0r~   c                 ó   • [        XUS5      $ ©Nr   )r#  ©ry   rv   rÙ   s      r|   Úmpf_altzetarK  r  ó   € Ü�A˜S !Ó$Ð$r~   c                 ó   • [        XUS5      $ rI  )r2  rJ  s      r|   Úmpc_altzetarN  u  rL  r~   c                 óŒ   • US:X  a  U $ [         U-  nU(       a+  US-  (       a  X0-  U-	  nUS-  nX -  U-	  n US-  nU(       a  M+  U$ )Nr   ro   ru   )rñ   r{   r†   r%  s       r|   Ú	pow_fixedrP  |  sW   € ØˆAƒvØˆÜ�2‰€AÞ
Øˆq�5Ø‘˜‘ˆAØ�‰FˆAØ‰S�R‰KˆØ	ˆa‰ˆ÷ ˆ!ð €Hr~   c                 ó²  • U [        [        5      :  a8  [        n[        S [        R                  [	        U5      5      S-    n[
        nXU4$ S/U S-   -  nS/U S-   -  n[        U 5      nU H  n[        X@S-   U5       H  nXAU'   M	     M     [        U5       H4  u  pdUS:¼  d  M  SnXd-  n X-  (       d  X-  n US-  nX-  (       d  M  XsU'   M6     UqUqUqXU4$ )Nr   r   ro   )	ÚlenÚsieve_cacheÚprimes_cacheÚindexr­   Ú
mult_cacher
   r   Ú	enumerate)r{   ÚsieverÄ   Úmultr¯   rš   rÆ   rµ   s           r|   Ú
primesieverZ  �  sú   € àŒ3Œ{ÓÓÜˆÜÐ?œ|×1Ñ1´#°e³*Ó=¸aÑ?Ð@ˆÜˆØ˜dÐ"Ð"ØˆC�1�Q‘3‰K€EØˆ3�!�A‘#‰;€DÜ˜‹^€FÛˆä˜˜A™#˜a–ˆAØ�!‹Hó !ñ ô ˜%Ö ‰ˆØ��6ØˆAØ‘ˆAØ—eØ‘�Ø�Q‘�ð —e‘eð �‹Gñ !ð €KØ€LØ€JØ˜$ÐÐr~   c           
      óŒ  • US:  a  [        S5      e[        X4-   5      u  pgn0 n	[        U-  n
[        SU-  -  nXU-   n[        U5      n[	        US-
  5      nU Hâ  nUS-  X4-   :”  a    OÖ[        XõU5      n[        U* U-  U-	  X^5      u  nnU (       a  U[        Xü-  5      -  nO[        U* U-  U-	  U5      nUU-  U-	  nUU-  U-	  nUU4/XŸ'   UUnn[        S[        [        R                  " X4-   U5      S-   5      S-   5       H4  nUU-  UU-  -
  U-	  UU-  UU-  -   U-	  nnXŸ   R                  UU45        M6     Mä     [        n[        nUS:X  a  UU
-  n[        US5      n[!        UX4-   S-   5       HÌ  nUU   nXù;   aW  UU   nXŸ   US-
     u  nn UUU-  -  nUS:X  a  O“UU   nUU   nXŸ   US-
     u  nnUU-  UU-  -
  U-	  UU-  UU-  -   U-	  nnMD  [        UX]5      n[        U* U-  U-	  X^5      u  nnU (       a  U[        UU-  5      -  nO[        U* U-  U-	  U5      nUU-  U-	  nUU-  U-	  nUU-  nUU-  nMÎ     UU4$ )Nr   za cannot be less than 1ro   g{®Gáz„?)rÐ   rZ  r   r?   r>   r@   rO   r   rP   r–   r„   r«   r¬   Úappendr   r­   r   )rE  ÚsreÚsimrw   r{   r†   rX  rÄ   rY  Úbasic_powersrx   rD  r&  r.  r?  r¯   r¬   ÚcosÚsinrç   ÚpreÚpimrB  rC  rµ   ÚxreÚximÚaarš   s                                r|   Úzetasum_sievedrg  ¨  sÈ  € Øˆ1ƒuÜÐ2Ó3Ð3Ü$ Q¡S›/Ñ€E�4Ø€LÜ
�R‰-€CÜ˜!˜B™$Ñ€GØ
‰%€CÜ
�B‹-€CÜ
�2�a‘4‹.€CÛˆØˆQ‰3�‘‹9ÙÜ˜A 3Ó'ˆÜ  3 $ s¡(¨R¡°Ó9‰ˆˆSÞØœ: a¡fÓ-Ñ-‰Aä˜C˜4 ™8 b™.¨"Ó-ˆAØ�‰u˜‰mˆØ�‰u˜‰mˆØ ˜:˜,ˆ‰Ø˜ˆSˆÜ�qœœTŸXšX a¡c¨!›_¨TÑ1Ó2°1Ñ4Ö5ˆAØ˜S™  S¡™¨2Ñ-°#°c±'¸#¸c¹'±/ÀBÑ1F�ˆCØ‰O×"Ñ" C¨ 9Ö-ó 6ñ ô  €CÜ
€CØˆAƒvØˆs‰
ˆÜ	ˆQˆq‹€BÜ�B˜™˜A™ÖˆØ�!‰HˆØÓØ�Q‘ˆAØ#‘ q¨¡sÑ+‰HˆC�ØØ�a˜‘d‘
�Ø˜“6ØØ˜!‘H�Ø˜‘G�Ø'™?¨1¨Q©3Ñ/‘��SØ  ™W S¨¡W™_¨rÑ1°c¸#±g¸cÀ#¹g±oÈÑ5J�S�ñ ô    2Ó+ˆCÜ$ s d¨3¡h°¡^°RÓ=‰HˆC�ÞØœz¨!¨S©&Ó1Ñ1‘ä ˜t C™x¨"™n¨bÓ1�Ø�S‘5˜R‘-ˆCØ�S‘5˜R‘-ˆCØˆs‰
ˆØˆs‰
Šñ/ ð0 �ˆ8€Or~   r¥   c                 ó	  • US-   n[        U5      nUS/:g  n[        U5      S:H  nU u  pšU	[        :H  n[        X–5      n	[        X¦5      n
US:”  ab  U[        :”  aX  U(       dQ  U(       dJ  US:  d  [
        R                  S:”  a0  [        X¹X¡X&5      u  pÍ[        XÆ* US5      [        XÖ* US5      4/nU/ 4$ [        U5      nU(       d  [        US-   5      nU Vs/ s H	  n[        PM     nnU Vs/ s H	  n[        PM     nnU(       a-  U Vs/ s H	  n[        PM     nnU Vs/ s H	  n[        PM     nnO/ =nn[        U-  n[        SU-  -  n[        U5      n[        US-
  5      nXf-   n[        XU-   S-   5       GH¢  n[!        UUU5      n[#        U
* U-  U-	  UU5      u  nnU(       a  U[%        UU-  5      -  nO['        U	* U-  U-	  U5      nUU-  U-	  nUU-  U-	  n U(       a  UUU-  -  n!U!U-  U-	  n"U!U-  U-	  n#U(       aÚ  U(       ac  [)        UXö5      nUS==   UU-  U-	  -  ss'   US==   U U-  U-	  -  ss'   U(       a(  US==   W"U-  U-	  -  ss'   US==   W#U-  U-	  -  ss'   Mò  Mô  [        U-  n$U H^  nUU==   UU$-  U-	  -  ss'   UU==   U U$-  U-	  -  ss'   U(       a&  UU==   W"U$-  U-	  -  ss'   UU==   W#U$-  U-	  -  ss'   U$U-  U-	  n$M`     GMd  US==   U-  ss'   US==   U -  ss'   U(       d  GMˆ  US==   W"-  ss'   US==   W#-  ss'   GM¥     U(       a°  U(       a6  US-  (       a+  US   * US'   US   * US'   U(       a  US   * US'   US   * US'   OsU Vs/ s H  nSU-  UU   -  PM     nnU Vs/ s H  nSU-  UU   -  PM     nnU(       a6  U Vs/ s H  nSU-  UU   -  PM     nnU Vs/ s H  nSU-  UU   -  PM     nn[+        UU5       V%V&s/ s H$  u  n%n&[        U%U* US5      [        U&U* US5      4PM&     nn%n&[+        UU5       V'V(s/ s H$  u  n'n([        U'U* US5      [        U(U* US5      4PM&     n)n'n(UU)4$ s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  sn&n%f s  sn(n'f )	zA
Fast version of mp._zetasum, assuming s = complex, a = integer.
r¥   r   r   g    ÐƒAl        r{   ro   rq   )ÚlistrR  r   r!   ÚZETASUM_SIEVE_CUTOFFÚsysÚmaxsizerg  r"   r­   r–   r   r   r?   r>   r   r@   rO   r   rP   rP  Úzip)*ry   rw   r{   ÚderivativesÚreflectrv   r†   Úhave_derivativesÚhave_one_derivativer]  r^  rE  r  r  ÚxsÚmaxdr¨   rd  re  ÚyreÚyimrx   rD  r.  r?  r&  r	  r¬   r`  ra  rç   Úxterm_reÚxterm_imÚ
reciprocalÚyterm_reÚyterm_imrz   ÚxaÚxbÚyaÚybÚyss*                                             r|   Úmpc_zetasumr€  ä  só  € ð
 
�‰€BÜ�{Ó#€KØ" q cÑ)ÐÜ˜kÓ*¨aÑ/Ðð �H€CØœE‘\€MÜ
�3Ó
€CÜ
�3Ó
€Càˆ1ƒu�Ô)Ó)Ö2BÞ  S£¬C¯K©K¸%Ó,?Ü °C¸AÓB‰ˆÜ˜B  T¨3Ó/´¸bÀ#ÀtÈSÓ1QÐRÐSˆØ�2ˆvˆäˆ{Ó€DÞÜ˜D ™F“mˆñ )Ó
)š[˜�8™[€CÐ
)Ù(Ó
)š[˜�8™[€CÐ
)ÞÙ!,Ó-¢˜A�x¡ˆÐ-Ù!,Ó-¢˜A�x¡ˆÐ-ˆàˆˆˆcä
�R‰-€CÜ˜!˜B™$Ñ€Gä
�B‹-€CÜ
�2�a‘4‹.€CØ
‰%€Cä�A˜‘s˜1‘u×ˆÜ˜A˜r 3Ó'ˆÜ  3 $ s¡(¨R¡°°SÓ9‰ˆˆSÞØœ: a¨¡fÓ-Ñ-‰Aä˜C˜4 ™8 b™.¨"Ó-ˆAØ˜‘G ‘?ˆØ˜‘G ‘?ˆÞØ! a¨¡cÑ*ˆJØ" SÑ(¨RÑ/ˆHØ" SÑ(¨RÑ/ˆHæÞ"Ü  TÓ.�Ø�A“˜8 c™>¨bÑ0Ñ0“Ø�A“˜8 c™>¨bÑ0Ñ0“ÞØ˜“F˜x¨#™~°"Ñ4Ñ4“FØ˜“F˜x¨#™~°"Ñ4Ñ4•Fñ ô ˜r‘M�Û$�AØ˜“F˜x¨!™|°Ñ2Ñ2“FØ˜“F˜x¨!™|°Ñ2Ñ2“FÞØ˜A› 8¨a¡<°BÑ"6Ñ6›Ø˜A› 8¨a¡<°BÑ"6Ñ6›Ø˜S™ R™’Aô %ð �‹F�hÑ‹FØ�‹F�hÑ‹Fß‰wØ�A“˜(Ñ"“Ø�A“˜(Ñ"–ñI öJ ÞØ�a�xØ˜a™&˜��A‘Ø˜a™&˜��A‘ÞØ! !™f˜W�C˜‘FØ! !™f˜W�C˜‘Føá-8Ó9ª[¨�B˜‘7˜S ™VÔ#©[ˆCÐ9Ù-8Ó9ª[¨�B˜‘7˜S ™VÔ#©[ˆCÐ9ÞÙ1<Ó=²¨A˜˜Q‘w  Q¡Ô'±�Ð=Ù1<Ó=²¨A˜˜Q‘w  Q¡Ô'±�Ð=ä˜C œô
'Ú%‰HˆR�ô ˜˜R˜C  sÓ+¬\¸"¸r¸cÀ4ÈÓ-MÓ
NÙ%ð ñ 
'ô ˜C œô
'Ú%‰HˆR�ô ˜˜R˜C  sÓ+¬\¸"¸r¸cÀ4ÈÓ-MÓ
NÙ%ð ñ 
'àˆrˆ6€MùòM *ùÚ
)ùâ-ùÚ-ùòr :ùÚ9ùâ=ùÚ=ùó
'ùó
's<   ÃQÃ*QÄQÄQ"Í&Q'ÎQ,Î#Q1Î>Q6Ï$+Q;Ð!+Riˆ  i˜:  gš™™™™™É?é–   c           	      óœ  • SnX-   n[         /U S-   -  n[        U5      n[        U-  nU* S-  US'   [        [	        U5      S5      n[        Xs5      =p‰/ n
Sn USU-  -
  nUS:  a  O|[        [        [        U[        U5      U5      n[        U[        XÝU5      U5      n[        XÓ5      n[        Xã5      nX¾-  U-  U-	  nU
R                  XÞ45        [        X‰U5      nUS-  nM‹  [        SU S-   S5       HW  n[         nSnU
 H?  u  nnUS-  S:X  a  UX¿-  -  nOUS-
  S-  nUUU-  -   X¿-  -  nU(       d    OUU-  nUS-  nMA     SU-  XO'   MY     [        U S-   5       Vs/ s H  n[        [        X³5      5      PM     nn[        [        [	        U5      S5      SU5      =nn[        U[!        S5      U5      n[        SU S-   S5       HM  n[        UU   UU5      n[        UU5      XO'   [        UUU5      n[        U[!        US-   US-   -  5      U5      nMO     Xc-  U-  n[        SU S-   S5       Hm  nUS-
  S-  nUSU-  S-      SU-  S	-   -  S-  n[        SUS-   5       H#  nUUSU-     USU-  S-   SU-  -
     -  U-	  -  nM%     XO==   SU-  U-  U-	  -  ss'   Mo     [        S
U S-   S5       H|  nUS-
  S-  nUSU-  S-      SU-  S-   -  n[        SSU-  S-   5       H/  nUSU-  S-  U-  USU-     -  USU-  S-   SU-  -
     -  U-	  -  nM1     XO==   UU-  U-	  SU-  -  -  ss'   M~     U Vs/ s H  nUU-	  PM
     sn$ s  snf s  snf )z÷
zeta(n) = A * pi**n / n! + B

where A is a rational number (A = Bernoulli number
for n even) and B is an infinite sum over powers of exp(2*pi).
(B = 0 for n even).

TODO: this is currently only used for gamma, but could
be very useful elsewhere.
r‘   ro   r   r   rÏ   rn   r‚   r“   rÂ   r’   rq   )r   r>   r   r3   r=   rB   r+   r   r(   r)   r!   r\  r   r&   r…   r-   r   )r™   rv   r®   r†   Úzeta_valuesr‰   rx   Úf_2piÚ	exp_2pi_kÚexp_2piÚexps3rš   ÚtpÚq1Úq2r{   ry   Úe1Úe2rz   r°   r    Úpi_powÚfpirõ   Úreciprocal_pirñ   s                              r|   Ú
zeta_arrayr�  _  sÝ  € ð €EØ	‰€BÜ�*  !¡Ñ$€KÜ	�"‹€Bä
�R‰-€CØ�T˜1‘W€K��NÜ”f˜R“j Ó#€EÜ! %Ó,Ð,€Ið
 €EØ	€AØ
Ø�!�A‘#‰XˆØ�‹6Øä”Tœ7 9¬d°BÓ7¸Ó<ˆä�Y¤¨¨bÓ 1°2Ó6ˆÜ�bÓˆÜ�bÓˆØ‰f�r‰k˜bÑ ˆØ�‰�b�XÔä˜I°Ó3ˆ	Ø	ˆQ‰ˆñ ô  �A�q˜‘s˜AÖˆÜˆØˆÛ‰FˆB�Ø�‰s�a‹xØ˜!™$‘J‘à�q‘S˜1‘H�Ø˜"˜a™%‘Z A¡DÑ(�ÞÙØ�‰FˆAØ�‰FŠAñ ð ˜A™ˆ‹ñ ô 06°a¸±c¬{Ó;ª{¨!Œ”˜qÓ$Ö	%©{€AÐ;Üœy¬°«°QÓ7¸¸BÓ?Ð?€FˆSÜ�VœX a›[¨"Ó-€FÜ�A�a˜‘c˜!Ž_ˆÜ�A�a‘D˜& "Ó%ˆÜ! ! R›ˆ‰Ü˜  bÓ)ˆÜ˜¤¨1¨Q©3°°1±©+Ó!6¸Ó;Šñ	 ð ‘Y 2Ñ%€MÜ�A�q˜‘s˜AÖˆØˆq‰S�1‰HˆØ˜˜!™˜A™Ñ  !¡ A¡Ñ&¨Ñ)ˆÜ˜˜1˜Q™3–ˆAØ�+˜a ™cÑ" [°°1±°Q±°q¸±s±Ñ%;Ñ;ÀÑBÑBŠAñ  à‹˜1˜Q™3˜}Ñ,°Ñ3Ñ3�ñ ô �A�q˜‘s˜AÖˆØˆq‰S�1‰HˆØ˜˜!™˜A™Ñ  !¡ A¡Ñ&ˆÜ˜˜1˜Q™3˜q™5Ö!ˆAØ�2˜‘'˜!‘)˜A‘+˜{¨1¨Q©3Ñ/Ñ/°+¸aÀ¹cÀ!¹eÀAÀaÁC¹iÑ2HÑHÈ2ÑMÑMŠAñ "à‹˜A˜m™O¨bÑ0°A°a±CÑ8Ñ8�ñ ñ *Ó*šk˜ˆAˆuŒH™kÑ*Ð*ùò- 	<ùò, +s   ÅMÌ2M	c                 ó&  • U S:  a  U SU S-  -
  -   nOU S:  a  U SU S-  -
  -   nOU nU[         ;   a  [         U   U4$ US:  a  [        US-  S-   5      nO[        US-  S-   5      n[          H=  nX1:”  d  M
  [         U   U* S  Vs/ s H	  oDX1-
  -	  PM     nnU S:  a	  U[         U'   XQ4s  $    US:”  a  [        US	-  5      nUS
-   nS/U-  n[        US'   [        U-  US'   [	        U5      US'   [        X&5      n[        SU5       HK  n	US   * XyS-
     -  U-	  n
[        SU	5       H  nU
SU-  X‹   -  XyU-
     -  U-	  -  n
M     U
SU	-
  -  n
X§U	'   MM     U V
s/ s H  oªS
-	  PM	     nn
USSS2   nUSS nU[         U'   [        U 5      $ s  snf s  sn
f )zÆ
Gives the Taylor coefficients of 1/gamma(1+x) as
a list of fixed-point numbers. Enough coefficients are returned
to ensure that the series converges to the given precision
when x is in [0.5, 1.5].
i�  r¥   rÌ   r‘   gR¸…ëQè?ro   gÉv¾Ÿ/é?Ng333333ó?rl   r   r   rn   rq   )Úgamma_taylor_cacher„   r   r   r˜   r�  r   Úgamma_taylor_coefficients)Úinprecrv   r™   Úcprecrñ   Úcoeffsr†   r¡   rƒ  rš   rw   rž   s               r|   r“  r“  °  só  € ð �ƒ|Ø˜˜V B™Y™Ñ(‰Ø	�$‹Ø˜˜V B™Y™Ñ(‰àˆØÔ!Ó!Ü! $Ñ'¨Ð-Ð-ð ˆdƒ{Ü��d‘
˜Q‘Ó‰ô ��e‘˜a‘Ó ˆ÷ $ˆØ�<Ü/AÀ%Ñ/HÈ!ÈÈÑ/MÓNÒ/M¨!˜%™*”oÑ/MˆFÐNØ˜‹}Ø+1Ô" 4Ñ(Ø�<Òñ $ð ˆdƒ{Ü�4˜#‘:‹ˆà	�‰€BØ	
ˆˆa‰€AÜ€A€a�DÜ�b‰=€A€a�DÜ�r‹?€A€a�Dô ˜QÓ#€KÜ�A�qŽ\ˆØ�‰dˆU�1�q‘S‘6‰\˜BÑˆÜ˜˜!–ˆAØ�2˜‘'˜K™NÑ*¨Q°©s©VÑ3¸Ñ:Ñ:ŠAñ à	ˆq�‰s‰ˆØˆ!‹ñ ñ Óš�1ˆBŒ™€AÐØ	‰$ˆBˆ$‰€AØ	ˆ#ˆ2ˆ€AØ Ô�tÑä$ VÓ,Ð,ùò9 Oùò. 	s   ÂF	ÅFc           	      ó8  • XS-
  -	  [         -   S-	  n[         U-  n[        U5      u  p‰US:”  aª  Un
[        US-
  5       H  nX-  nX¡-  U-	  n
M     X-  n[        nU H  nXÑU-  U-	  -   nM     XÉU-
  -  nUS:X  a  [	        X¢-  U-  U* X45      $ US:X  a  [        [        XÊU-  X45      U5      $ US:X  a%  [        [        [	        X¢-  U-  U* 5      5      X45      $ g Un
[        U* 5       H  nX¡-  U-	  n
X-  nM     [        nU H  nXÑU-  U-	  -   nM     XÉU-
  -  nU[        [        U5      5      -
  S:”  a‡  [        U [        U* 5      5      n[	        XÊ-  U* U-
  5      n
[        X®U5      n
US:X  a  [        [        X£U5      $ US:X  a  [!        X£U5      $ US:X  a#  [        [        [        [        X¢5      5      X45      $ g [	        X-  U
-  SU-  5      n
US:X  a  [        [        X£U5      $ US:X  a  [!        X£U5      $ US:X  a  [#        [        [        U
5      X45      5      $ g )Nr   r   ro   rn   r¥   éýÿÿÿ)r   r“  r   r   r"   r3   r#   rC   r&   r6   r—   r'   r   r)   r+   r   r$   r%   )Úxmpfrñ   r†   rv   rÙ   ÚtypeÚnearest_intrx   r–  Úcwpr'  rÆ   r¯   rþ   r5  s                  r|   Úgamma_fixed_taylorr�  é  sF  € ð ˜Q™$‘K¤7Ñ*¨qÑ0€KÜ
�R‰-€CÜ+¨BÓ/�K€FØ�QƒØˆÜ˜ A™Ö&ˆAØ‰HˆAØ‘˜‘ŠAñ 'ð 	
‰ˆÜˆÛˆAØ˜‘c˜B‘Y‘ŠAñ à	�2‰v‰ˆØ�1‹9Ü ¡¨¡
¨R¨C°Ó;Ð;Ø�1‹9Üœ]¨1°"©u°tÓAÀ2ÓFÐFØ�1‹9Üœ7¤<°±¸±
¸R¸CÓ#@ÓAÀ4ÓMÐMð ð ˆÜ˜˜Ö%ˆAØ‘˜‘ˆAØ‰HŠAñ &ô ˆÛˆAØ˜‘c˜B‘Y‘ŠAñ à	�2‰v‰ˆØ”œ˜Q›Ó Ñ  2Ó%ä˜œh¨ |Ó4Ó5ˆAÜ˜Q™S "  R¡Ó(ˆAÜ˜˜bÓ!ˆAØ�q‹yÜœt Q¨cÓ2Ð2Ø�q‹yÜ˜q¨Ó,Ð,Ø�q‹yÜœw¤w¬t°QÓ';Ó<¸dÓHÐHð ô ˜Q™S ™U 2 b¡5Ó)ˆAØ�q‹y¤¬¨q¸Ó!<Ð<Ø�q‹y¤¨°#Ó!6Ð6Ø�q‹y¤¬´¸³¸TÓ)GÓ!HÐHˆyr~   c                 óÈ   • U [         ;   a	  [         U    $ [        U 5      u  pU[        X S-
  -  5      -  nX[        [	        U5      5      [        U5      4[         U '   [         U    $ rI  )Úgamma_stirling_cacherÒ   r   r6   r—   )r{   r¯   rÚ   s      r|   Ústirling_coefficientr     s_   € ØÔ Ó Ü# AÑ&Ð&Ü�A‹;�D€AØŒˆQ�!‘‰W‹Ñ€AØ¤H¬S°«VÓ$4´h¸q³kÐAÔ˜ÑÜ Ñ"Ð"r~   c                 óþ  • [         X-   -  U -  nX"-  U-	  n[        U5      U -
  nXBS-  -  oBU-  U-	  nXBS-  -  oBU-  U-	  nXBS-  -  oBU-  U-	  nXBS-  -  oBU-  U-	  nU(       d  U$ XBS-  -  oBU-  U-	  nUSU-  S-  -  oBU-  U-	  nXBS-  -  oBU-  U-	  nU(       d  U$ US	U-  S
-  -  oBU-  U-	  nUSU-  S-  -  oBU-  U-	  nUSU-  S-  -  oBU-  U-	  nU(       d  U$ Sn[        [        U5      5      n[        [        U5      5      nSn [	        U5      u  pšp¼X{-   U-   nU* nX½-
  nUS:”  a  Xï:  a  XŸ-  n	Xï-  nX}-
  nUS:”  a  Xï:  a	  X/-	  nXï-  nOUnX)-  U
-  U-	  nU(       d   U$ UU-  nX#-  U-	  nX�U-
  -  nUS-  nMw  )zf
Sums the rational part of Stirling's expansion,

log(sqrt(2*pi)) - z + 1/(12*z) - 1/(360*z^3) + ...

r•   éh  éì  é�  é¤  é³  é¨ éœ   é!  é Þ é[«  éÜ¹ éª éØé é   r   ro   )r   rK   r6   r—   r   )rñ   rv   rz   rç   ry   rš   ÚusizeÚtsizeÚtexpr¯   rÚ   ÚpbÚqbÚterm_magÚshiftrµ   r	  r�   s                     r|   Úreal_stirling_seriesr·  "  s  € ô 
�4‘9Ñ	 !Ñ#€AØ	
‰ˆt‰€AÜ˜Ó Ñ"€AàˆB‰�J€A !¡ d™{˜1ØˆC‰�K€A !¡ d™{˜1ØˆD‰�L€A !¡ d™{˜1ØˆD‰�L€A !¡ d™{˜1Þ�QˆhØˆD‰�L€A !¡ d™{˜1ØˆˆQ‰�‰Ñ€A !¡ d™{˜1ØˆC‰�K€A !¡ d™{˜1Þ�QˆhØˆˆa‰�‰Ñ€A !¡ d™{˜1Øˆˆq‰�&‰Ñ€A !¡ d™{˜1Øˆ�‰�6Ñ	Ñ€A 1¡ t¡˜AÞ�QˆhØ
€Aô ”S˜“VÓ€EÜ”S˜“VÓ€EØ€DØ
Ü+¨AÓ.‰ˆˆbØ‘: Ñ$ˆØ�ˆØ‰MˆØˆq‹5�U“YØ‰GˆAØ‰JˆEØÑˆØˆq‹5�U“YØ‘ˆAØ‰J‰EàˆAØ‘�Q‘˜5Ñ ˆÞØð
 €Hð	 	
ˆT‰	ˆØ‰S�U‰NˆØ˜‘ÑˆØ	ˆQ‰ˆñ) r~   c                 óv  • X -  X-  -   U-	  nX-  U-  nU* U-  U-  nXD-  XU-  -
  U-	  nXT-  US-
  -	  n[        U5      U -
  nU* n	X„S-  -  o‰US-  -  n	XF-  XW-  -
  U-	  XG-  XV-  -   U-	  pTX„S-  -  o‰US-  -  n	XF-  XW-  -
  U-	  XG-  XV-  -   U-	  pTX„S-  -  o‰US-  -  n	XF-  XW-  -
  U-	  XG-  XV-  -   U-	  pTX„S-  -  o‰US-  -  n	XF-  XW-  -
  U-	  XG-  XV-  -   U-	  pT[        U5      [        U5      -   S:  a  X‰4$ X„S-  -  o‰US-  -  n	XF-  XW-  -
  U-	  XG-  XV-  -   U-	  pTUSU-  S	-  -  o‰SU-  S	-  -  n	XF-  XW-  -
  U-	  XG-  XV-  -   U-	  pTX„S
-  -  o‰US
-  -  n	XF-  XW-  -
  U-	  XG-  XV-  -   U-	  pT[        U5      [        U5      -   S:  a  X‰4$ USU-  S-  -  o‰SU-  S-  -  n	XF-  XW-  -
  U-	  XG-  XV-  -   U-	  pTUSU-  S-  -  o‰SU-  S-  -  n	XF-  XW-  -
  U-	  XG-  XV-  -   U-	  pTUSU-  S-  -  o‰SU-  S-  -  n	XF-  XW-  -
  U-	  XG-  XV-  -   U-	  pT[        U5      [        U5      -   S:  a  X‰4$ Sn
[        [        [        U5      [        U5      5      5      n[        [        [        U5      [        U5      5      5      nSn [	        U
5      u  pïnnUU-   U-   nU* nUU-
  nUS:”  a  UU:  a
  UU-  nUU-  nUU-
  nUS:”  a  UU:  a  UU-	  nUU-	  nUU-  nOUnUnXN-  U-  U-	  nX^-  U-  U-	  n[        U5      [        U5      -   S:  a   X‰4$ UU-  nU	U-  n	XF-  XW-  -
  U-	  XG-  XV-  -   U-	  pTXÒU-
  -  nU
S-  n
M¼  )Nr   r•   r¢  r£  r¤  r’   r¥  r¦  r§  r¨  r©  rª  r«  r¬  r­  r®  r¯  r   ro   )rK   r—   r6   r­   r   )rñ   r%  rv   Ú_mrB  rC  ÚureÚuimr]  r^  rš   r°  r±  r²  r¯   rÚ   r³  r´  rµ  r¶  rµ   rF  rG  ÚtermreÚtermims                            r|   Úcomplex_stirling_seriesr¾  W  st  € à
‰#�‘‰)˜Ñ	€BØ‰9˜Ñ
€CØˆ2�‰:˜"Ñ
€Cà‰7�S‘WÑ Ñ
%€CØ
‰'�d˜1‘fÑ
€Cä
˜4Ó
  1Ñ
$€CØˆ"€Cð �‰7�N€C˜3 ™7‘N�CØ‘˜™‘ 4Ñ'¨C©G°C±G©O¸dÑ+BˆØ�‰8�O€C˜C ™H‘_�SØ‘˜™‘ 4Ñ'¨C©G°C±G©O¸dÑ+BˆØ�‰9Ñ€C˜S $™YÑ&�cØ‘˜™‘ 4Ñ'¨C©G°C±G©O¸dÑ+BˆØ�‰9Ñ€C˜S $™YÑ&�cØ‘˜™‘ 4Ñ'¨C©G°C±G©O¸dÑ+BˆÜ
ˆ3ƒx”#�c“(Ñ˜QÓ s x Ø�‰9Ñ€C˜S $™YÑ&�cØ‘˜™‘ 4Ñ'¨C©G°C±G©O¸dÑ+BˆØˆ3ˆs‰7�F‰?Ñ€C 3 s¡7¨F¡?Ñ2˜CØ‘˜™‘ 4Ñ'¨C©G°C±G©O¸dÑ+BˆØ�‰8�O€C˜C ™H‘_�SØ‘˜™‘ 4Ñ'¨C©G°C±G©O¸dÑ+BˆÜ
ˆ3ƒx”#�c“(Ñ˜QÓ s x Øˆ4�‰8�VÑÑ€C D¨¡H¨fÑ$4Ñ4˜SØ‘˜™‘ 4Ñ'¨C©G°C±G©O¸dÑ+BˆØˆ5�‰9�fÑÑ€C U¨3¡Y°Ñ%6Ñ6˜cØ‘˜™‘ 4Ñ'¨C©G°C±G©O¸dÑ+BˆØˆ6�#‰:�vÑÑ€C f¨S¡j°&Ñ&8Ñ8˜sØ‘˜™‘ 4Ñ'¨C©G°C±G©O¸dÑ+BˆÜ
ˆ3ƒx”#�c“(Ñ˜QÓ s x à
€Aô ”Sœ˜S›¤3 s£8Ó,Ó-€EÜ”Sœ˜S›¤3 s£8Ó,Ó-€EØ€DØ
Ü+¨AÓ.‰ˆˆb�"Ø˜2‘: Ñ$ˆØ�ˆØ�‰MˆØˆq‹5�U˜Q“YØ�!‰GˆAØ�Q‰JˆEØ�HÑˆØˆq‹5�U˜Q“YØ˜‘(ˆCØ˜‘(ˆCØ�Q‰J‰EàˆCØˆCØ‘%˜‘(˜uÑ$ˆØ‘%˜‘(˜uÑ$ˆÜˆv‹;œ˜V›Ñ$ qÓ(Øð ˆ8€Oð 	ˆv‰ˆØˆv‰ˆØ‘W˜s™wÑ&¨Ñ.Ø‰g˜™Ñ %Ñ'ð à˜‘ÑˆØ	ˆQ‰ˆñ3 r~   c           
      ó  • U u  pEpgU(       dO  U [         :X  a#  US:X  a  [        $ US:X  a  [         $ [        S5      eU [        :X  a  US:X  a  [         $ [        $ [        $ US:X  a5  US-   nXg-   U:”  a(  U(       d!  [        [        U [        X5      U5      XU5      $ US:¬  n	U	(       aŸ  U(       a  US:X  a  [         $ [        S5      eXV-  n
U
[        :  ar  US:X  a  [        [        U
S-
     X5      $ US:X  a  [        [        U
   X5      $ US:X  a  [        [        [        U
S-
     X5      $ US:X  a  [        [        U
S-
     X5      $ O[        XV* -	  5      n
Xg-   nX«-  nUS:X  a  US-   nOU[        U5      -   S-   nX¸* :  aŽ  US:X  a*  [        [        [        X5      [        [        U* 5      X5      $ US:X  a  [        [        XU5      $ US:X  a  [        U [        [        X¸-
  5      X5      $ US:X  a  [!        [        [#        U 5      X5      5      $ US:X  a  [%        [        U [        5      XS5      $ US:¼  Ga  U	(       aq  USU-  :  ah  US:X  a  ['        [)        U
S-
  5      X5      $ US:X  a  [+        [,        [)        U
S-
  5      X5      $ US:X  a!  [        ['        [)        U
S-
  5      5      X5      $ U
S	:  d
  USU-  :  Ga€  U(       aµ  [/        U5      nU
S-  (       a  [1        SU
-  S-   5      nO[1        SU
-  S-   5      * nUS:X  a  [        [+        XÞX5      U* U
-   S-   5      $ US:X  a  [        [+        XíX5      XŠ-
  S-
  5      $ US:X  a1  [        [        [+        U[3        U5      X5      U* U
-   S-   5      X5      $ OÄU
S:X  aM  US:X  a  [5        X5      $ US:X  a  [        [        [5        U5      X5      $ US:X  a  [        [5        U5      X5      $ Oq[/        U5      n[7        U[1        SU
-  S-
  5      -  U* U
-
  5      nUS:X  a  [        XÑU5      $ US:X  a  [        [        XÑU5      $ US:X  a  [        [#        U5      X5      $ Xh-   nUS:¼  a  X_-  nOX_* -	  nUS:X  Ga  U(       Gd  [,        U-  n[3        UU-
  5      n[3        USU-  -
  5      nU[        [9        UU5      5      -
  nUS:”  a¿  [        [        U 5      n[        [:        U 5      nUS   US   -   nUS   US   -   nUU* :  a$  [        [=        U5      [        [        U 5      X5      $ UU* :  a2  [        [        [        [=        U5      5      [        U [:        5      X5      $ U[?        U* U* 5      -  nXh-   nUS:¼  a  X_-  nOX_* -	  n[        [@        U-  5      nU
[?        S	U5      :  a"  U[B        :  a  U(       a  U* n[E        U UX�X#5      $ U nSnU
U:  aQ  [,        U-  =nnUU
-
  n[G        U5       H  nUU-  U-	  nUU-  nM     [7        UU* 5      =n nU(       a  [!        U 5      n O[#        U 5      n[I        UU5      n[K        [        UU5      U5      n U[,        US-
  -  -
  U -  U-	  n UU -  n[7        UU* 5      nU(       aö  [        [M        UU5      UU5      n![!        [O        U5      5      n"US:X  d  US:X  aZ  [        U![Q        XØ5      5      n!U(       a  [        U"[7        UU* 5      U5      n"US:X  a  [        U"U!X5      $ US:X  a  [        U!U"X5      $ US:X  a^  U(       a  [        U"[7        UU* 5      U5      n"[        [        [#        U!5      U5      XØ5      n![        [        [#        U"5      U5      U!X5      $ g
US:X  a4  U(       a!  [        [Q        XØ5      [7        UU* 5      X5      $ [Q        XÑU5      $ US:X  a=  U(       a!  [        [7        UU* 5      [Q        XØ5      X5      $ [Q        [!        U5      X5      $ US:X  a5  U(       a"  [        U[        [7        UU* 5      U5      X5      $ [        XÑU5      $ g
)aq  
This function implements multipurpose evaluation of the gamma
function, G(x), as well as the following versions of the same:

type = 0 -- G(x)                    [standard gamma function]
type = 1 -- G(x+1) = x*G(x+1) = x!  [factorial]
type = 2 -- 1/G(x)                  [reciprocal gamma function]
type = 3 -- log(|G(x)|)             [log-gamma function, real part]
r   ro   zgamma function polern   rl   r   rq   r¥   rƒ   N))r   r   rÐ   r   r   r(   r)   rC   ÚSMALL_FACTORIAL_CACHE_SIZEr$   Úsmall_factorial_cacher+   r„   r6   r3   r'   r%   r&   r  r   r   r#   r   rM   r   r—   rN   r"   Úminr   r³   r­   ÚGAMMA_STIRLING_BETAÚMAX_GAMMA_TAYLOR_PRECr�  r   r·  r!   rJ   r=   rB   )#rñ   rv   rÙ   rš  rú   rû   rü   rý   r†   Ú
is_integerr{   r>  Ú
gamma_sizer	  Úfr  Úabsxmanrx   Úone_distÚtwo_distÚcancellationÚxsub1Úxsub2Úxsub1magÚxsub2magÚn_for_stirlingÚxorigr'  r¨   rš   Úxabsr%  rç   r¡   r    s#                                      r|   r  r  Ÿ  sú  € ð Ñ€DˆsÞØ”‹:Ø�q‹y¤˜+Ø�q‹y¤˜,ÜÐ2Ó3Ð3Ø”‹9Ø�q‹y¤˜,ÜˆKÜˆð
 ˆqƒyØ�"‰WˆØ‰6�B‹;žtÜœ7 1¤g¨a£n°bÓ9¸1ÀCÓHÐHð ˜‘€JÞæØ�q‹yÜ�ÜÐ2Ó3Ð3à‰JˆØÔ)Ó)Ø�q‹yÜÔ4°Q°q±SÑ9¸4ÓEÐEØ�q‹yÜÔ4°QÑ7¸ÓCÐCØ�q‹yÜœtÔ%:¸1¸Q¹3Ñ%?ÀÓKÐKØ�q‹yÜÔ4°Q°q±SÑ9¸4ÓEÐEøô �˜‘Óˆð ‰(€CØ‘€JàˆqƒyØ�B‰Y‰à”H˜ZÓ(Ñ(¨2Ñ-ˆð ˆSƒyØ�1‹9Üœ7¤4¨Ó.¬y¼¸r¸cÓ/BÀ4ÓLÐLØ�1‹9œW¤T¨1°CÓ8Ð8Ø�1‹9œW Q¬	´$°s±vÓ(>ÀÓJÐJØ�1‹9œW¤W¬W°Q«Z¸Ó%CÓDÐDð ˆqƒyÜœ ¤DÓ)¨4°aÓ8Ð8ð
 ˆb„yÞØ˜B˜r™EÓ!Ø˜1“9Ü#¤D¨¨1©£I¨tÓ9Ð9Ø˜1“9Ü(¬´$°q¸±s³)¸TÓGÐGØ˜1“9Ü"¤8¬D°°1±«IÓ#6¸ÓBÐBàˆs‹7�j 2 b¡5Ô(ÞÜ  Ó$�Ø�q—5œe A a¡C¨¡E›l™!Ü$ Q q¡S¨¡U›|˜m˜!Ø˜1“9Ü$¤]°1¸Ó%CÀbÀSÈÁUÈ1ÁWÓMÐMØ˜1“9Ü$¤]°1¸Ó%CÀRÁTÈ!ÁVÓLÐLØ˜1“9Ü"¤9¬]¸1¼cÀ!»fØó.#Ø%' C¨¡E¨!¡Gó$-Ø.2ó9ð 9ð ð �a“Ø˜1“9¤Z°Ó%:Ð:Ø˜1“9¤W¬T´:¸b³>À4Ó%MÐMØ˜1“9¤W¬Z¸«^¸TÓ%GÐG�9ä  Ó$�Ü  ¤U¨1¨Q©3¨q©5£\Ñ!1°B°3°q±5Ó9�Ø˜1“9¤W¨Q°cÓ%:Ð:Ø˜1“9¤W¬T°1¸CÓ%@Ð@Ø˜1“9¤W¬W°Q«Z¸Ó%CÐCð ‰X€FØ�ƒ{˜c™m‘GØ! gÑ.�Gð ˆq„yŸÜ˜‰mˆÜ�w˜s‘{Ó#ˆÜ�w˜q ™u‘}Ó%ˆØœX¤c¨(°HÓ&=Ó>Ñ>ˆØ˜"ÓÜœD !Ó$ˆEÜœD !Ó$ˆEØ˜Q‘x  a¡Ñ(ˆHØ˜Q‘x  a¡Ñ(ˆHØ˜2˜#‹~Üœy¨›}¬g´d¸AÓ.>ÀÓJÐJØ˜2˜#‹~Üœw¤t¬Y°r«]Ó;Ü˜AœtÓ$ dó1ð 1ð ”#�x�i ( Ó+Ñ+ˆBØ‘XˆFØ˜‹{ c¡m™GØ&)¨gÑ&6˜Gô Ô,¨RÑ/Ó0€NØŒ3ˆs�NÓ#Ó#¨Ô-BÓ(BÞØ�hˆGÜ! ! W¨b¸ÓBÐBð €Eð 	
€AØˆ>ÓÜ˜R‘-ÐˆˆCØ˜QÑˆÜ˜–ˆAØ�W‘ Ñ#ˆAØ�s‰NŠGñ ô   ¨"¨Ó-Ð-ˆˆDÞÜ˜“
ˆAøä�q‹zˆô 	˜W bÓ)€AÜ”˜˜rÓ" BÓ'€AØ
”W˜r !™t‘_Ñ
%¨Ñ	*¨rÑ1€AØˆ�F€AÜ�Q˜˜Ó€Aö ä”J˜u bÓ)¨5°"Ó5ˆÜ”F˜2“JÓˆØ�1‹9˜ ›	Ü˜œ7 1›>Ó*ˆAÞÜ˜Aœ|¨A°¨sÓ3°RÓ8�Ø�q‹yÜ˜q ! TÓ/Ð/Ø�q‹yÜ˜q ! TÓ/Ð/Ø�1‹9ÞÜ˜Aœ|¨A°¨sÓ3°RÓ8�Üœ¤¨£
¨BÓ/°Ó7ˆAÜœ7¤7¨1£:¨rÓ2°A°tÓAÐAð	 ð �1‹9ÞÜœw q›~Ü   R CÓ(¨$ó5ð 5ä˜1 CÓ(Ð(Ø�1‹9ÞÜœ|¨A°¨sÓ3Ü˜A“N Dó/ð /äœ7 1›: tÓ1Ð1Ø�1‹9ÞÜ˜q¤'¬,°q¸"¸Ó*=¸rÓ"BÀDÓNÐNÜ˜1 CÓ(Ð(ð r~   c           
      ó’  • U u  pEUu  pgp‰Uu  p«pÍU[         :X  aP  US:X  a8  U(       a1  [        XAUS5      nU* U* -	  n[        [        US-   5      XñU5      nUU4$ [        XAX#5      [         4$ U(       d  U(       d  U(       d  U(       a  [        [        4$ US-   nX‰-   nXÍ-   nU(       a  [        UU5      nOUnUS:  a’  UU* :  a  [        U [        [        X U5      [        U5      U5      U5      nUS:X  a  [        UX5      $ US:X  a  [        U UX5      $ US:X  a  [        UX5      $ US:X  a  [        [        UU5      X5      $ OUS:w  a  UU* -  nUS:X  a5  UU:”  a/  U(       a  UU:¼  a"  [        [        U [        U U5      U5      XU5      $ US:X  a  [        [!        U["        5      U4XS5      $ [%        ['        U5      5      n[%        ['        U5      5      n[        UU5      nUU-  nUS:X  a  OU[)        U5      -  nUnU nU(       a  [+        U 5      n U S   =u  pgp‰nU S   =u  p«pÍnSnSnUS:  GaK  US:X  Ga´  [-        U ["        5      nUS   [         :X  a  U* nO[        US   S   US   S   -   U5      * nUU:”  a{  [        U5      n [        UU U5      n![        U!U!U5      n![/        U![1        S	5      U5      n![        U[3        [        U5      5      U5      n"[        U!U"U5      nU(       d  [        UX5      $ OUS:”  a  UU-  n[-        U [4        5      n#U#S   [         :X  a  U* n$O[        U#S   S   U#S   S   -   U5      * n$U$U:”  a�  [        U5      n [7        [9        U U 5      [1        S
5      5      n%[        [        U#U#U5      U%U5      n![/        U![1        S	5      U5      n![        U#[7        ["        [        U5      5      U5      n"[        U!U"U5      nU(       d  [        UX5      $ OU$S:”  a  UU$-  nUU* :  aƒ  SUS-   -  n&[;        U5      n'[=        ["        UU-
  5      n([        U'U&US9n)[        [!        U'U(5      U&US9n*[?        [7        U*U)U&5      U(U&5      n+[9        UU+X5      n"U)U"4nU(       d  [        UX5      $ OUU* -  nUU-  n[A        [B        U-  5      n,UU,:  n-[E        UU5      n.[E        UU5      n/Sn0U(       Gd9  U n1UU,:  a—  [G        UU5      n[A        SU,S-  -   US-  -
  S-  U-
  5      n2[H        U-  =n3n4[J        n5[M        U25       H$  n6U.U3-  U/U5-  -
  U-	  U.U5-  U/U3-  -   U-	  n5n3U.U4-  n.M&     [O        U3U* 5      [O        U5U* 5      4n0[O        U.U* 5      nXE4n [Q        U.U/U5      u  n7n8[        U U5      u  n9n:[E        U9U5      n9[E        U:U5      n:U9U.-  U:U/-  -
  U-	  U9S-	  -
  U7-   n7U9U/-  U:U.-  -   U-	  U:S-	  -
  U8-   n8[O        U7U* 5      [O        U8U* 5      4n"U0(       Ga  US:X  Ga  [        U"[        U0U5      U5      n"[S        U1S   5      n;[S        U1S   5      n<[T        RV                  " U;U<5      n=[S        U"S   5      n>[T        RX                  " U<U;5      n?U=S::  a	  SU<-  U?-
  n@O)U<* SU?-  -
  U;U?-  -   U<[T        RZ                  " U=5      -  -   n@[A        [T        R\                  " W@U>-
  S[T        R^                  -  -  S-   5      5      nU"S   [!        U"S   [        [        U5      SU-  U5      U5      4n"U(       GaÖ  US:X  d  US:X  a«  [        [a        UU5      UU5      nA[3        [        U5      5      [         4nBU(       a"  US:X  a  [        WAUU5      nAO%[        WAUU5      nAO[        WA[c        W"U5      U5      nAU0(       a  [        WBU0U5      nBUS:X  a  [        WBWAX5      $ US:X  a  [        WAWBX5      $ US:X  Ga  U(       a  [+        U5      nCO[+        W"5      nC[        WC[        [+        U5      U5      U5      nC[e        US   5      nD[g        US   5      nE[        U5      n [9        U UD5      n%[        U%UEU5      n%UCS   [!        UCS   U%U5      4nC[i        UC[k        U U5      U5      nC[a        [-        UUD5      U5      n%[        U%U5      n%[        UCU%U5      nCUE(       d+  [9        U [e        WD5      U5      n%WCS   [7        UCS   U%U5      4nC[        WCX5      $ g US:X  a*  U0(       a  [        [c        W"U5      U0X5      $ [c        W"X5      $ US:X  a3  U0(       a  [        U0[c        W"U5      X5      $ [c        [+        W"5      X5      $ US:X  a  [        W"X5      $ g )Nrn   r¥   rl   iøÿÿÿr   r   ro   iöÿÿÿr•   r”   )rš  r€   g@KW°�xâ?)6r   r  r*   r=   r   r­   rY   r^   r[   r³   rh   r\   rW   rc   rZ   r3  r'   r   r—   r    r6   rX   rj   r_   r   r%   r   r(   r)   r&   r3   r+   r„   rÃ  r!   Úcomplexr   r   r   r"   r¾  r7   r«   ÚhypotÚatan2r¬   Úfloorr‰   rg   rd   r8   r9   r]   rC   )Frõ   rv   rÙ   rš  rw   r�   r(  r)  r*  r+  r  r  r  r  r  r{   r  r†   ÚamagÚbmagr>  rì   ÚanÚbnÚabsnrÆ  Úneed_reflectionÚzorigÚyfinalÚbalance_precÚzsub1Úcancel1r‰   rñ   r%  Úzsub2Úcancel2rz   ÚppÚaabsr  Úx1rÿ   ÚxprimerÐ  Úneed_reductionÚafixÚbfixr'  Úzpreredr¨   Úrrerx   Úrimrš   rt  ru  ÚlreÚlimÚzfaÚzfbÚzfabsÚyfbrç   Úgir¡   r    Ús1ÚrezfloorÚimzsignsF                                                                         r|   r3  r3  m  s}	  € Ø�D€AØÑ€E�ØÑ€E�àŒEƒzà�1‹9žÜ˜1 C¨Ó+ˆBØ�˜T˜EÑ"ˆAÜœV D¨¡G›_¨a°sÓ;ˆBØ�r�6ˆMÜ˜ #Ó,¬eÐ3Ð3ö –T¦4®DÜ”dˆ|Ðð 
�‰€Bà‰8€DØ‰8€DÞÜ�$˜‹o‰àˆð ˆRƒxØ�"�‹9ä˜œ;¤w¨q°2£´yÀ³}ÀRÓHÈ"ÓMˆAØ�q‹y¤°°4Ó!=Ð=Ø�q‹y¤¨¨A¨tÓ!9Ð9Ø�q‹y¤¨¨DÓ!6Ð6Ø�q‹y¤¬¸¸4Ó)@À$Ó!LÐLˆyØ�Q‹YØ�C�4‰LˆBð
 ˆqƒy�S˜2“X®°4¸4³<Ü”w˜q¤'¨!¨R£.°"Ó5°qÀÓDÐDð ˆqƒyÜœ' !¤TÓ*¨AÐ.°¸1Ó=Ð=ä	ŒV�A‹Y‹€BÜ	ŒV�A‹Y‹€BÜˆr�2‹;€DØ�c‘€JØˆqƒyØà
Œh�zÓ"Ñ"ˆð €OØ€EÞÜ�A‹JˆØ%& q¡TÐ)Ñˆ�T Ø%& q¡TÐ)Ñˆ�T ð €FØ€LØˆc„zà�1Œ9Ü ¤4Ó(ˆEØ�Q‰xœ5Ó Ø˜%‘ä˜u Q™x¨™{¨5°©8°A©;Ñ6¸Ó=Ð=�Ø˜‹|Ü˜B“Z�Ü  r¨2Ó.�Ü˜A˜q "Ó%�Ü ¤8¨B£<°Ó4�Ü ¤w¬y¸«}Ó'=¸rÓB�Ü   A rÓ*�Þ&Ü" 6¨4Ó5Ð5ð 'à˜1“Ø�g‘�Ü ¤4Ó(ˆEØ�Q‰xœ5Ó Ø˜%‘ä˜u Q™x¨™{¨5°©8°A©;Ñ6¸Ó=Ð=�Ø˜‹|Ü˜B“Z�ÜœG B¨›O¬X°a«[Ó9�Ü¤¨¨u°bÓ 9¸1¸bÓA�Ü ¤8¨B£<°Ó4�Ü ¤w¬t´Y¸r³]Ó'CÀRÓH�Ü   A rÓ*�Þ&Ü" 6¨4Ó5Ð5ð 'à˜1“Ø�g‘�Ø�2�#‹:à�B�r‘E‘ˆBÜ˜1“:ˆDÜœD $ r¡'Ó*ˆCÜ˜4 ¨$Ñ/ˆBÜœ7 4¨Ó-¨r¸Ñ=ˆBÜœW R¨¨RÓ0°#°rÓ:ˆFÜ˜˜6 4Ó-ˆAØ˜!�WˆFö #Ü˜v tÓ1Ð1ð #ð ˜d˜UÑ#ˆLàˆ,Ñ€BÜÔ,¨RÑ/Ó0€NØ˜NÑ*€Nä�A�r‹?€DÜ�A�r‹?€Dà	€AßØˆà�.Ó Ü˜2˜r“?ˆDÜ�Q˜¨Ñ*Ñ*¨R°©UÑ2°SÑ8¸2Ñ=Ó>ˆAÜ 2™Ð%ˆC�#ÜˆCÜ˜A–Y�Ø! #™X d¨3¡hÑ.°Ñ3¸¸S¹À4ÈÁ8Ñ8KÈbÑ7P�S�Ø˜‘’ñ ô ˜S 2 #Ó&¬°S¸2¸#Ó(>Ð>ˆAÜ˜T B 3Ó'ˆAØ�ˆAä*¨4°°rÓ:‰ˆˆSä˜1˜b“>‰ˆˆSÜ�s˜BÓˆÜ�s˜BÓˆØ�D‘˜3˜t™8Ñ# bÑ(¨S°!©VÑ4°sÑ:ˆØ�D‘˜3˜t™8Ñ# bÑ(¨S°!©VÑ4°sÑ:ˆÜ˜˜r˜cÓ"¤L°°r°cÓ$:Ð:ˆç�˜”ô ˜œ7 1 b›>¨2Ó.ˆAÜ˜7 1™:Ó&ˆCÜ˜7 1™:Ó&ˆCÜ—J’J˜s 3Ó'ˆEä˜1˜Q™4“.ˆCÜ—
’
˜3 Ó$ˆAØ˜‹|Ø˜c‘\ AÑ%‘à�T˜C ™E‘\ C¨¡EÑ)¨C´·²¸³Ñ,?Ñ?�Ü”D—J’J  3¡¨¬4¯7©7©Ñ3°CÑ7Ó8Ó9ˆAØ�1‘”w˜q ™t¤[´¸³¸Q¸q¹SÀ"Ó%EÀrÓJÐKˆAçØ�1‹9˜ ›	Üœ
 5¨"Ó-¨u°bÓ9ˆAÜœ ›Ó$¤eÐ,ˆAÞØ˜1“9Ü  6¨2Ó.‘Aä  6¨2Ó.‘Aä˜Aœw q¨"›~¨rÓ2�ÞÜ˜A˜q "Ó%�Ø�q‹y¤¨¨A¨tÓ!9Ð9Ø�q‹y¤¨¨A¨tÓ!9Ð9ð �1Œ9ÞÜ˜V“_‘ä˜Q“Z�ä˜œW¤W¨U£^°RÓ8¸"Ó=ˆBä   q¡Ó*ˆHÜ˜u Q™xÓ(ˆGÜ˜“ˆBÜ˜˜HÓ%ˆAÜ˜A˜w¨Ó+ˆAØ�Q‘%œ  A¡¨¨2Ó.Ð/ˆBÜ˜R¤¨¨R£°"Ó5ˆBÜœ; u¨hÓ7¸Ó<ˆAÜ˜˜2“ˆAÜ˜˜Q Ó#ˆBö Ü˜B¤	¨(Ó 3°RÓ8�Ø˜‘eœW R¨¡U¨A¨rÓ2Ð3�Ü˜2˜tÓ)Ð)ð/ ð2 �1‹9ÞÜœw q¨"›~¨q°$Ó<Ð<Ü˜1˜dÓ(Ð(Ø�1‹9ÞÜ˜q¤'¨!¨R£.°$Ó<Ð<Üœ7 1›: tÓ1Ð1Ø�1‹9Ü˜1˜dÓ(Ð(ð r~   c                 ó   • [        XUS5      $ rI  ©r  ©rñ   rv   rÙ   s      r|   Úmpf_factorialrü  W  ó   € Ü�Q˜c 1Ó%Ð%r~   c                 ó   • [        XUS5      $ rI  ©r3  rû  s      r|   Úmpc_factorialr   Z  rý  r~   c                 ó   • [        XUS5      $ ©Nro   rú  rû  s      r|   Ú
mpf_rgammar  ]  rý  r~   c                 ó   • [        XUS5      $ r  rÿ  rû  s      r|   Ú
mpc_rgammar  `  rý  r~   c                 ó@   • U u  p4pVU(       a  [         e[        XUS5      $ )Nrn   )r:   r  )rñ   rv   rÙ   rú   rû   rü   rý   s          r|   Úmpf_loggammar  c  s$   € ØÑ€DˆsÞÜÐÜ�Q˜c 1Ó%Ð%r~   c                 óº   • U u  p4Uu  pVpxUu  pšp¼U[         :X  a7  U(       a0  [        X1US5      nU* U* -	  n[        [        US-   5      XáU5      nXß4$ [	        XUS5      $ )Nrn   r¥   )r   r  r*   r=   r3  )rõ   rv   rÙ   rw   r�   r(  r)  r*  r+  r  r  r  r  r  r{   r  s                   r|   Úmpc_loggammar	  i  sn   € Ø�D€AØÑ€E�ØÑ€E�ØŒEƒz–eÜ�q  QÓ'ˆØˆU˜˜ÑˆÜœ  R¡›¨!°3Ó7ˆØˆvˆÜ�Q˜c 1Ó%Ð%r~   c                 ól   • U [         :  a  [        [        U S-
     X5      $ [        [	        U 5      X5      $ rI  )rÀ  r$   rÁ  r  r   )r{   rv   rÙ   s      r|   rê   rê   t  s3   € ØÔ%Ó%ÜÔ,¨Q¨q©SÑ1°4Ó=Ð=Ü”X˜a“[ $Ó,Ð,r~   rº   )r¨   r   )r¨   )´Ú__doc__r«   rk  Úbackendr   r   r   r   r   r	   Ú
libintmathr
   r   r   r   Ú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/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   Ú	libelefunr;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   ÚlibmpcrQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   r}   r�   r¢   r©   r˜   r¶   rÇ   r³   Ú	mpf_aperyÚmpf_khinchinÚmpf_glaisherÚmpf_catalanÚmpf_mertensÚmpf_twinprimerÓ   rÕ   r×   rØ   rÊ   rÑ   r…   rÔ   rÒ   rò   rö   rð   rô   r  r  r  r  ÚZETA_INT_CACHE_MAX_PRECr  r´   r#  r2  rK  rN  Úmpf_zetasumrP  rS  rT  rV  rZ  rg  rj  r€  rÄ  rÃ  rÀ  r’  rŸ  r–   rÁ  r�  r“  r�  r   r·  r¾  r  r3  rü  r   r  r  r  r	  rê   r¿   s   0r|   Ú<module>r     sY  ðñó Û 
å ß <Õ <ç 9Ó 9÷÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ õ ÷÷ ÷ ÷ ÷ ÷ ÷
÷ 
÷ 
÷ 
÷ 
÷ 
÷ 
ð0 ñ
ó ð
ðH ñó ððB ñ2ó ð2ðz ñó ððð* ñ ó ð ð0 ñó ðð ñó ðñ2 ˜[Ó)€	Ù˜[Ó)€	Ù Ó/€Ù Ó/€Ù˜}Ó-€Ù˜}Ó-€Ù  Ó1€ð Ð ðð@ €Ùˆaƒ[€Ùˆaƒ[€ò2ñ
 'Ð':Ó;Ð ôIôV	/òTðz:ò@9ò=ð %ô 9)ðv %ô 3ðl 'ô 0ð 'ô <ðJ(ðT €òð Ð Ø€à(ô 3.ðj %¨!ô U(ðn %¨!°5ô X1ðt (ô %ð (ô %ð €ò
ð €Ø€Ø€
òò67ðt Ð òaðV Ð à˜uÓ$Ð $Ð$ð Ð à Ð àÐ ØÐ ñ 
Ð)¨!Ñ+Ô	,ó.Ú	,€Añ "¡$ q£'Ö*Ù	,ñ.Ð òO+òb7-òr/Iòb#ò3òjEôPK)ô\h)ôT&ô&ô&ô&ô&ô	&ð  *õ -ùòq.s   ÈI*