Ë
    3^(h- ã                   ó®  — d Z ddlZddlZddlmZ ddlmZmZmZmZm	Z	 ddl
mZmZmZmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< ddl=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZS dd	lTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZn e>d
„ «       Zoe>d„ «       Zpe>d„ «       Zqe>d„ «       Zr	 e>d„ «       Zse>d„ «       Zte>d„ «       Zu e?es«      Zv e?er«      Zw e?ep«      Zx e?eq«      Zy e?eo«      Zz e?et«      Z{ e?eu«      Z|dZ}	 i Z~ e!d«      Z e!d«      Z€d„ Z� e�e}«      Z‚d>d„Zƒd>d„Z„d„ Z…	 d„ Z†d„ Z‡efd„Zˆefd„Z‰efd„ZŠefd„Z‹	 i ZŒd„ Z�dZŽi Z�efd „Z�edfd!„Z‘edd"fd#„Z’efd$„Z“efd%„Z”dZ•d&„ Z–g a—g a˜g a™d'„ Zšd(„ Z›d)Zœd*„ Z�d+Zžežd,k  sJ ‚d-ZŸd.Z i Z¡i Z¢ e£e dz   «      D � cg c]  }  e! e| «      «      ‘Œ c} Z¤d/„ Z¥d0„ Z¦d1„ Z§d2„ Z¨d3„ Z©d4„ Zªd?d5„Z«d?d6„Z¬d@d7„Z­d@d8„Z®d@d9„Z¯d@d:„Z°d@d;„Z±d@d<„Z²efd=„Z³yc c} w )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                 ó  — | dz   } t         | z  x}}d\  }}}|rd|d|dz  z  d|z  dz
  z  z  }|dd|z  z
  d|dz  z  z   dz  z  }|d|dz
  z  z  d	|dz  z  d
|z  z
  dz   z  |dz  d|z  dz
  z  z  }||z  }|dz  }|rŒd|dz	  S )Né   )r   r   r   é    é   é   r   é   éÿÿÿÿé(   é   é   ©r   )ÚprecÚaÚoneÚsÚtÚns         úT/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/mpmath/libmp/gammazeta.pyÚcatalan_fixedr}   H   sË   € à�"‰9€DÜ˜‰oÐ€AˆØ�G€A€qˆ!Ù
Ø	ˆ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‰ˆØ	ˆQ‰ˆò ð �‰=Ðó    c                 óP  — t        | | dz  z   dz   «      }t        }t        d«      }t        |z  x}}t	        |«      }t        t        |||«      d«      x}}d}		 t        t        d|	z  |«      «      }
t        |
||«      }
t        |
||«      }
t        |
|«      }
|
|z
  |z  |	z  |z	  }|dk  rnH||z  }||d|	z  dz   z  |d|	z  z  z
  z  }|	dz  }	t        |d|	z  d|	z  dz
  z  |«      }t        |||«      }Œš||z  t        |«      z  }t        t        || «      |«      }t        || «      }|S )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   sb  € ä	ˆT�D˜#‘IÑ Ñ"Ó	#€BÜ€AÜ
�1‹+€CÜ˜‰mÐ€AˆÜ	�‹€BÜœw r¨2¨rÓ2°AÓ6Ð6€EˆFØ	€AØ
Üœ q¨¡s¨BÓ/Ó0ˆÜ˜ ¨Ó+ˆÜ˜  bÓ)ˆÜ˜& "Ó%ˆØ˜3‘, !Ñ#¨Ñ)¨bÑ0ˆØ�#Š:Øð 	
ˆT‰	ˆØ	ˆS�1�Q‘3�q‘5‰\˜C ! A¡#™JÑ&Ñ&ˆØ	ˆQ‰ˆÜ˜#  !¡ a¨¡c¨!¡e™}¨bÓ1ˆÜ˜˜v rÓ*ˆð ð 
ˆb‰”Y˜r“]Ñ"€AÜ”˜Q  Ó$ bÓ)€AÜ��DÓ€AØ€Hr~   c           	      ó|  — | dz   }t        d| z  dz   «      }t        |z  }t        }t        d|«      D ]  }|t	        ||«      |dz  z  z  }Œ t	        ||«      }|||z   |z  z  }|||dz  dz  z  z  }|dz  }d}d}	d}
t        d«      }d}	 ||z  |	|z  z   |z  }t        || «      }t        d|z  |«      }t        |||«      }t        |||«      }t        ||«      }t        |«      dk  rnZ||z  }|	||
z  z
  |
 |	z  ||z  |
dz   f\  }}	}}
|	||
z  z
  |
 |	z  ||z  |
dz   f\  }}	}}
|dz  }t        |d|z  d|z  dz
  z  |«      }Œ¹t        |«      }|d	z  }||z  |dz  |z	  z  }|t        |«      z  }|t        t        t        d|z  | «      |«      |«      z  }|d
z  }t!        t        || «      |«      }t        || «      S )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¢   ¯   sA  € à	�‰€Bô 	ˆD�‰I˜‰MÓ€AÜ
�R‰-€Cä€AÜ�1�a‹[ò *ˆà	Œ]˜1˜bÓ! Q¨¡TÑ)Ñ)‰ð*ô ˜˜BÓ€Dð ˆ#�‰*˜Ñ	Ñ€Aàˆ�!�Q‘$˜‘(Ñ	Ñ€Aà	
ˆA‰€BØ	€AØ
€AØ	€AÜ
�1‹+€CØ	€AØ
à�2‰g˜˜4™Ñ BÑ&ˆÜ˜˜R˜CÓ ˆÜ˜!˜A™#˜rÓ"ˆÜ�q˜!˜RÓ ˆÜ�t˜S "Ó%ˆÜ˜˜bÓ!ˆÜˆt‹9�sŠ?Øð 	
ˆT‰	ˆà˜˜!™‘e˜a˜R ™T 2 a¡4¨¨1©Ð,‰ˆˆ1ˆb�!Ø˜˜!™‘e˜a˜R ™T 2 a¡4¨¨1©Ð,‰ˆˆ1ˆb�!Ø	ˆQ‰ˆÜ˜#  !¡ a¨¡c¨!¡e™}¨bÓ1ˆð# ô& 
�"‹€BØˆ�F€AØ	
ˆb‰�b˜!‘e˜r‘kÑ"€AØŒ�R‹Ñ€AØŒ”'œ, q¨¡t¨b¨SÓ1°2Ó6¸Ó	;Ñ;€AØˆ"�H€AÜ”˜Q  Ó$ bÓ)€AÜ�A�tÓÐr~   c                 óä   — | dz  } t         | z  }t        d«      | z  }d}t        }|rF||z  }||dz  z  }|d|z  dz   dz  d|z  dz  z  z  }d|z  d|dz  z  d	|z  z   dz   z  |z  }|dz  }|rŒF|d
z	  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Ù
Ø	ˆT‰	ˆØ	ˆa�‰e‰ˆØ	��1‘�Q‘˜‘
˜q ™s Q™hÑ&Ñ'ˆØ�Q‰w˜#˜q !™t™* s¨1¡uÑ,¨rÑ1Ñ2°QÑ6ˆØ	ˆQ‰ˆò ð �‰=Ðr~   c                 ó†  — d}| |z  } t        t        j                  | dz  t        j                  d«      z  d«      «      dz   }d|z  }| t        | «      z  x}}t        | z  x}}d}	 ||dz  z  |dz  z  }||dz  z  |z  |z   |z  }||z  }||z  }t        t        |«      t        |«      «      dk  rn|dz  }ŒQ|| |z
  z  |z  S )Nr‘   r‚   ro   r   rƒ   )r„   ÚmathÚlogr?   r   Úmaxr—   )	rv   ÚextraÚpr{   r¡   ÚUr    ÚVrš   s	            r|   r˜   r˜     sí   € à€EØˆE�M€DäŒD�H‰H�d˜1‘f¤§¡¨£Ñ+¨QÓ/Ó0°1Ñ4€AØ	ˆ1‰€AØˆBŒy˜‹ÑÐ€AˆÜ�t‰OÐ€AˆØ	€AØ
Øˆa�‰d‰F�A�q‘D‰LˆØˆq�!‰t‰V�Q‰Y˜‰]˜QÑˆØ	ˆQ‰ˆØ	ˆQ‰ˆÜŒs�1‹v”s˜1“vÓ Ò$ØØ	ˆQ‰ˆð ð ��U‘
‰O˜aÑÐr~   c                 ó   — | dz   }d}t        |«      }	 t        ||«      }|t        k(  rnJt        ||«      }t	        |t        |«      |«      }t        |t        |«      |«      }t        ||«      }|dz  }Œ`t        || «      S )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Ø
Ü˜˜BÓˆØ”Š9ØÜ�A�r‹NˆÜ˜œ7 1›: rÓ*ˆÜ�A”x “{ BÓ'ˆÜ�A�q‹MˆØ	ˆQ‰ˆð ô �A�tÓÐr~   c           	      ó4  — d„ }d| z  dz   }t         }dD �cg c]  }t        d||«      ‘Œ }}|D �cg c]  }t        |||«      ‘Œ }}d}	 t        ||«      }t	        d«      D ]6  }	t        |t        t         ||	   «      |«      }t        ||	   ||	   |«      ||	<   Œ8 t        | ||«       |«      }t        || dz   d«      t         k(  rnt        |||«      }|dz  }Œ�t        |t        d	«      |«      }t        |t        d
«      |«      }t        || «      S c c}w c c}w )Nc                 óL   ‡ — t        ˆ fd„t        d‰ dz   «      D «       «      ‰ z  S )Nc              3   óL   •K  — | ]  }‰|z  rŒ	t        |«      ‰|z  z  –— Œ y ­w©N)r   )Ú.0r¨   r{   s     €r|   ú	<genexpr>z-twinprime_fixed.<locals>.I.<locals>.<genexpr>=  s$   øè ø€ ÒH¨!ÀAÀaÃC”7˜1“:  1¡Õ%ÑHùs   ƒ
$Ž$r   )Úsumr   ©r{   s   `r|   ÚIz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Å   :  s4  € òLà	
ˆ4‰�"‰€BÜ
€CØ-6Ö7¨Œm˜A˜a Õ#Ð7€FÐ7Ø(.Ö/ 1Œw�q˜˜2�Ð/€GÐ/Ø	€AØ
Ü˜˜BÓˆÜ�q“ò 	<ˆAÜ˜œ7¤4¨°©Ó4°bÓ9ˆAÜ  ¨¡¨V°A©Y¸Ó;ˆG�AŠJð	<ô ˜™A˜a›D˜5 "Ó%ˆÜ�1�d˜2‘g˜sÓ#¤tÒ+Øô �c˜1˜bÓ!ˆØ	ˆQ‰ˆð ô �#”x Ó(¨"Ó
-€CÜ
�#”x Ó(¨"Ó
-€CÜ�C˜ÓÐùò# 8ùÚ/s
   –D°Di¸  rn   r”   c                 ób   — t        j                  | d«      }t        dd|z  z   | |dz
  z  z   «      S )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È   Š  s1   € ä
�(‰(�1�Q‹-€CÜˆu�s˜3‘w‰  C¨%¡K¡Ñ0Ó1Ð1r~   c                 ó¸  — | dk  r/| dk  rt        d«      ‚| dk(  rt        S | dk(  rt        t        «      S | dz  rt        S |t
        kD  r8|t        | «      dz  dz   kD  r$t        | «      \  }}t        ||||xs t        «      S | t        kD  rt        | ||«      S |dz   }|d|d	z  z
  z  }t        j                  |«      }|r;|\  }}| |v r|s||    S t        ||    ||«      S |\  }	}
}| |	z
  d
kD  rJt        | ||«      S | d
kD  rt        | ||«      S dt        i}dt        d
«      t         gx\  }	}
}}||ft        |<   |	| k  �r›|	dz  }t        |	«      }d}t#        d|«      |z
  }|	dk  rt$        }n|}t'        d|	dz  dz   «      D ]Ž  }||	d|z  z
     x\  }}}}}|r| }|t)        ||z  ||z
  «      z  }d|z  }||	dz
  |z
  |	dz
  |z
  z  |	dz
  |z
  z  |	dz
  |z
  z  |	dz
  |z
  z  |	|z
  z  z  }|d|z   d|z   z  d|z   z  d|z   z  d|z   z  d|z   z  z  }Œ� |dk(  rt+        |	dz   t,        |«      }|dk(  rt+        |	dz   t,        |«      }|dk(  rt+        |	 dz
  t.        |«      }t1        |||«      }t3        t5        ||«      t7        |
«      |«      }|||	<   |	dz  }	|
|	dz   |	dz   z  z  |	|	dz
  z  z  }
|	dkD  r|d|	z   d|	z   z  z  |	dz
  |	dz
  z  z  }|	|
|g|dd |	| k  r�Œ›||    S )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…   ‘  s   € àˆ1‚uØˆqŠ5ÜÐHÓIÐIØ�Š6ÜˆKØ�Š6Üœ5“>Ð!àˆ1‚uÜˆð
 Ô#Ò#¨¬~¸aÓ/@ÀÑ/DÀtÑ/KÒ(KÜ˜‹{‰ˆˆ1Ü˜Q  4¨Ò);´Ó<Ð<ØÔÒÜ! ! T¨3Ó/Ð/Ø	�‰€Bàˆ"��r‘	Ñ
Ñ€BÜ× Ñ  Ó$€FÙØ‰ˆ�Ø�‰<ÙØ˜q‘zÐ!Ü˜7 1™: t¨SÓ1Ð1Ø‰ˆˆ3�Øˆq‰5�2Š:Ü% a¨¨sÓ3Ð3àˆrŠ6Ü% a¨¨sÓ3Ð3Ø”T�(ˆØ !¤3 r£7¬GÐ4Ð4‰ˆˆ3��uØ&¨Ð.Œ˜ÑØ
ˆq‹&à�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Ü˜˜D "Ó%ˆÜ”G˜A˜q "Ó%¤x°£}°bÓ9ˆØˆ�‰
Ø	ˆQ‰ˆà�a˜‘c˜A˜a™C‘[Ñ! a¨¨1©¡gÑ.ˆØˆqŠ5Ø˜A˜a™C ! A¡#™;Ñ'¨Q¨q©S°1°Q±3©KÑ8ˆDØ�s˜D�>ˆ‰aˆðA ˆqŒ&ðB �1‰:Ðr~   c                 óF  — |dz   }|t        t        j                  | d«      «      z   }t        | dz   |«      }t	        |t        | |«      |«      }t	        |t        t        |«      |  |«      «      }t        |d| z
  «      }| dz  st        |«      }t        |||xs t        «      S )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Ü�”<  2Ó&¨Ó+€AÜ�”;œv f›~°¨r°2Ó6Ó7€AÜ�!�Q�q‘SÓ€AØˆqŠ5Ü�A‹JˆÜ�1�d˜CÒ-¤:Ó.Ð.r~   c                 óH  — t        | «      } | dk  rg d¢|    S | dz  ryd}t        | dz   «      D ]  }| |dz
  z  rŒ||z  }Œ t        | «      t        t        j                  |d«      «      z   dz   }t        | |«      }t        |t        |«      «      }t        |t        «      }||fS )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�q‘S“	Ø�‰F‰Aðô ˜!Óœs¤4§8¡8¨A¨a£=Ó1Ñ1°BÑ6€DÜ�a˜Ó€AÜ�”8˜A“;Ó€AÜ�!”]Ó#€DØ�!ˆ9Ðr~   c                 óž   — | t         t        t        fv r| S t        t	        t
        | |dz   «      |«      }t	        |t        |dz   |«      ||«      S )Nr’   )r   r   r   Úmpf_psi0r'   r   r³   )Úxrv   r×   rw   s       r|   Úmpf_harmonicrð   „  sK   € ØŒU”Dœ$ÐÑØˆÜ”œ˜q $ q¡&Ó)¨4Ó0€AÜ�1”i  Q¡¨Ó,¨d°CÓ8Ð8r~   c                 ó¸   — | d   t         k(  rt        | d   ||«      t         fS t        t        | t        |dz   «      |«      }t        |t        |dz   |«      ||«      S )Nr   r   r’   )r   rð   Úmpc_psi0r]   r   r³   )Úzrv   r×   rw   s       r|   Úmpc_harmonicrô   Š  sZ   € Øˆ�tŒu‚}Ü˜Q˜q™T 4¨Ó-¬uÐ5Ð5Ü”˜Q¤ d¨1¡fÓ-¨tÓ4€AÜ�qœ) D¨¡F¨CÓ0°$¸Ó<Ð<r~   c           
      ól  — | \  }}}}|dz   }|s#| t         k(  r| S | t        k(  s	| t        k(  rt        S | t        k(  s|dk\  r|rt	        d«      ‚||z   dk  r;t        t        | t        ||«      ||«      }t        |t        t        | ||«      ||«      S |ra||z   dkD  rYt        | |«      \  }	}
t        t        |	|
|«      t        |«      |«      }t        t        t        | |«      |«      }t        ||||«      S |s$||z   |kD  rt        t        | t        |«      ||«      S t        | «      }t        d|z  «      dz   }t         }
t#        | |«      } t$        |z  }||k  r!t'        ||«      D ]  }|
||z  | z  z  }
| |z  } Œ | |z  } |
t#        t        t)        | | |«      |«      |«      z  }
|
||z  d| z  z  z  }
| | z  |z	  }|}d}d}	 ||z  |z	  }t+        d|z  |«      \  }}}}|d|z  z   }|dk\  r||z  |d|z  z  z  }n|| z	  |d|z  z  z  }|dz  r|
|z  }
n|
|z  }
|dkD  r||k\  rn|}|dz  }Œjt)        |
| ||«      S )	z_
    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î   �  s   € ð
 Ñ€Dˆ#ˆs�BØ	�‰€BÙØ”Š9˜Q�hØ”Š:˜œdš¬4 KØŒE‚z�c˜Q’h¡4ÜÐ)Ó*Ð*à
ˆ2�v�‚{Ü”W˜Q¤ d¨CÓ0°$¸Ó<ˆÜ�qœ'¤$¨¨2¨sÓ3°T¸3Ó?Ð?á��B‘˜’
Ü˜a Ó$‰ˆˆ1Ü”G˜A˜q "Ó%¤v¨b£z°2Ó6ˆÜ”WœT 1 bÓ)¨2Ó.ˆÜ�q˜!˜T 3Ó'Ð'á�b˜3‘h ’mÜ”w˜q¤$¨Ó+¨T°3Ó7Ð7äˆq‹	€AÜˆD�‰G‹�qÑ€AÜ€AÜ��B‹€AÜ
�R‰-€CØˆ1‚uÜ˜˜1“ò 	ˆAØ�#˜‘) Ñ!Ñ!ˆAØ�‰H‰Að	ð ˆ�H€AàŒ”'œ, q¨2¨#¨rÓ2°BÓ7¸Ó	<Ñ<€Aàˆ#�‰)˜˜1™Ñ	Ñ€Aà
ˆ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‰ˆð ô ˜˜B˜3  CÓ(Ð(r~   c                 ó&  — | \  }}|t         k(  rt        |||«      t         fS |dz   }|\  }}}}	|rj||	z   dkD  rbt        | |«      }
t        | |«      }t	        t        |
||«      t        |«      |«      }t        t        t        | |«      |«      }t        ||||«      S |s$|	|z   |kD  rt        t        | t        |«      ||«      S t        |«      }t        d|z  «      dz   }t        }||k  r9t        ||«      D ]*  }t        |t        | |«      |«      }t!        | t"        |«      } Œ, t        | t        |«      } t%        |t        | |«      |«      }t%        |t        t&        | |«      |«      }t)        | |«      }t        }t        }t         }d}t+        t"        | dz   «      }	 t-        |||«      }t/        d|z  |«      }t1        |t3        |d|z  |«      |«      }t        |||«      }t5        |d«      }|dkD  rt7        ||«      st7        ||«      r	 |S |}|}|dz  }Œz)zb
    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‚{Ü˜˜T 3Ó'¬Ð/Ð/Ø	�‰€BØÑ€Dˆ#ˆs�Bá��B‘˜’
Ü�q˜"ÓˆÜ�q˜"ÓˆÜœ  1 bÓ)¬6°"«:°rÓ:ˆÜ”WœW a¨Ó,¨bÓ1ˆÜ�q˜!˜T 3Ó'Ð'á�b˜3‘h ’mÜ”w˜q¤'¨2Ó.°°cÓ:Ð:äˆr‹
€AÜˆD�‰G‹�qÑ€AÜ€AØˆ1‚uÜ˜˜1“ò 	)ˆAÜ˜œ>¨!¨RÓ0°"Ó5ˆAÜ˜Aœt RÓ(‰Að	)ô 	�”7˜BÓ€Aä�”7˜1˜b“> 2Ó&€AÜ�”7œ8 Q¨Ó+¨RÓ0€Aä	�A�rÓ	€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Øð €Hð ˆØˆØ	ˆQ‰ˆð r~   c                 ó^   — | dk(  rt        ||t        ¬«      S t        | |t        f||«      d   S )zm
    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    s4   € ð
 	ˆA‚vÜ˜˜4¤ZÔ0Ð0Ü�1�qœ%�j $¨Ó,¨QÑ/Ð/r~   c           
      óä  — | dk(  rt        |||«      S |\  }}|dz   }|\  }}}	}
|d   s|t        t        t        fv rt        t        fS |s3|t        k(  r|t        k(  rt        t        fS |t        k(  rt        t        fS t        |«      }t        d|z  d| z  z   «      }t        }||k  r@t        ||«      D ]1  }t        ||  dz
  |«      }t        |||«      }t        |t        |«      }Œ3 t        ||  |«      }t        |d|«      }t        |t        | «      |«      }t        |||«      }t        |t        t!        |||«      t"        |«      |«      }| dz   }d}d}t%        |d«      }|d   |d	   z   }t'        t        ||z
  dz   «      }	 t)        |||«      }t+        d|z  |«      }t-        |||«      }t/        |t        |«      |«      }t        |||«      }t        |||«      }t%        |d«      }|dkD  rt1        ||«      rn1|| d|z  z   | d|z  z   dz   z  z  }|d|z  dz   d|z  dz   z  z  }|dz  }Œ¨t        |t3        t        | dz   «      |«      ||«      }| dz  st5        |d   «      t5        |d   «      f}|S )
zp
    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Ü˜˜4 Ó%Ð%Ø�F€BˆØ	�‰€BØÑ€Dˆ#ˆs�BØˆaŠ5Ø”$œœtÐ$Ñ$Üœ$�<ÐÙØ”Š:˜"¤š+Üœ5�>Ð!Ø”Š:Üœ$�<Ðäˆr‹
€AÜˆC�‰F�Q�q‘S‰LÓ€AÜ€AØˆ1‚uÜ˜˜1“ò 	)ˆAÜ˜A ˜r !™t RÓ(ˆAÜ˜˜1˜bÓ!ˆAÜ˜Aœt RÓ(‰Að	)ô 
�Q˜˜˜BÓ	€BÜ	�Q˜˜BÓ	€Bä ¤H¨Q£K°Ó4€MÜ��= "Ó%€Aä�”;œw r¨1¨bÓ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¸3Ó?€AØ�ŠEÜ�A�a‘D‹Mœ7 1 Q¡4›=Ð(ˆØ€Hr~   c                 ó  — | t         v r	t         |    S t        g| dz   z  }t        }t        x}|d<   t        d| dz   «      D ]4  }|dz  | |z   dz
  z  | |z
  dz   z  }|d|z  d|z  dz
  z  z  }||z  }|||<   Œ6 |t         | <   |S )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�q‘S˜‘U‰O˜q ™s 1™uÑ%ˆØ	��!‘˜˜1™˜a™Ñ Ñ!ˆØ	ˆQ‰ˆØˆˆ1Šð	ð
 „M�!ÑØ€Ir~   rÊ   c           	      ó
  — |dz   }t        | «      } | t        v r&t        |    d   |k\  rt        t        |    d   ||«      S | dk  rI| dk(  rt        d«      ‚| st	        t
        «      S t        t        |  dz   |«      t        | dz
  «      ||«      S | |k\  rt        t        d||«      S | |dz  k\  rHd|z  x}}|d|| z
  z  z  }||t        | z  z  z  }|dt        d|| dz  z
  «      z  z  }t        || ||«      S t        |«      | dz
  z  dz   }|dk  r®t        d|z  dz   «      }|t        |d	z  d
z   «      dz  k  r†t        }t        |«      D ]a  }t        || t!        j"                  |d«      z  z
  «      }	|	dk  r n5t%        t        t'        t        |«      |  |	«      |«      }
t)        ||
|«      }Œc t        t        ||«      S t        |d	z  d
z   «      }t+        |«      }t,        }t/        | «      } t1        |«      D ]"  }|d|z  ||   ||   z
  z  |z  |dz   | z  z  z  }Œ$ ||z  ||    z  }||z  d|z  d|dz   | z
  z  z
  z  }| t        v rt        |    d   |k  s| t        vr|t        || |z
  «      ft        | <   t        || |z
  ||«      S )z<
    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°3Ó7Ð7Øˆ1‚uØ�Š6Ü˜^Ó,Ð,ÙÜœ5“>Ð!Ü”} a R¨¡T¨2Ó.´¸¸1¹³¸tÀSÓIÐIàˆB‚wÜœ4  D¨#Ó.Ð.à	
ˆb�‰hŠØ�r‘'ÐˆˆCØ	ˆQ�2˜‘6‰]ÑˆØ	ˆS”Y !‘^Ñ$Ñ$ˆØ	ˆQ”#�a˜˜a ™c™Ó"Ñ"Ñ"ˆÜ˜A ˜s D¨#Ó.Ð.ô �2‹Y˜˜!™‰_˜qÑ ˆØˆrŠ6Ü˜s A™v¨™z›?ˆLØœc " T¡'¨A¡+Ó.°Ñ3Ò3Ü�Ü$ \Ó2ò *�Aä! " q¬¯©°!°A«¡Ñ"6Ó7�GØ ’{ÙÜ¤¤k´(¸1³+À¸rÀ7Ó&KÈRÓP�AÜ  1 bÓ)‘Að*ô œt Q¨Ó+Ð+äˆBˆt‰G�a‰KÓ€AÜ˜QÓ€AÜ€AÜˆA‹€AÜ�A‹Yò ;ˆØ	��Q‰w˜!˜A™$  1¡™+Ñ&¨2Ñ-°1°Q±3¸±(Ñ:Ñ:‰ð;à	
ˆb‰�q˜‘t�eÑ€AØ	
ˆb‰�q˜B‘w 1¨¨A©¨a©¡=Ñ1Ñ2€AØ	Œ^Ñ¤¨qÑ 1°!Ñ 4°rÒ 9¸qÌÑ?VØ¤¨a°"°°R±Ó!8Ð9Œ�qÑÜ˜˜B˜3˜r™6 4¨Ó-Ð-r~   c                 óÌ  — | \  }}}}|s5| t         k(  r|rt        S t        t        «      S | t        k(  rt        S t
        S |dz   }|s1||z   t        j                  |d«      dz   kD  rt        t        |||«      S |dk\  r‡|ro| t        k(  rt        ||«      S t        t        | «      |t        |   «      }	t        t        t        t        t        t        | |«      |«      |«      }
t!        |	|
||«      S t        t        | «      ||«      S |rñ|rGt        t        t        t        t        t        | |«      |«      |«      }
t!        t#        | |«      |
||«      S t        t        | d|z  «      }t%        ||«      }t#        ||«      }t'        t)        | d«      |«      }|t+        d||z   «      z   }t-        ||z   «      }t/        t        t)        |d«      | |«      ||«      }t!        |t!        |t!        |||«      |«      ||«      S t        t        | |«      }t1        |«      \  }}}}d||z   z  }||kD  r?|rt        ||«      S t        t/        t        ||«      «      }
t3        |
t5        |«      ||«      S |t+        d|«      z  }t6        }t9        |dz  d	z   «      }t;        |«      }t6        }t=        | |«      }t?        |«      }tA        |«      D ]D  }| tC        |dz   ||«      z  |z	  }tE        |||«      }||   ||   z
  |z  }|dz  r||z  }Œ@||z  }ŒF |||    z  }tG        || |«      }|rtI        |||«      S t        t        t        t        t        t        | |«      |«      |«      }
t/        ||
||«      S )
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!  Á  sX  € ØÑ€Dˆ#ˆs�BÙØ”Š:ÙÜ�äœu“~Ð%Ø”Š9ÜˆKÜˆØ	�‰€Bá�s˜R‘x¤4§8¡8¨B¨q£>°AÑ#5Ò6Üœ4  d¨CÓ0Ð0à	�ŠÙØ”DŠyÜ˜t SÓ)Ð)ÜœV A›Y¨¬L¸Ñ,=Ó>ˆAÜœœg¤d¬G´D¸!¸RÓ,@À"ÓEÀrÓJˆAÜ˜1˜a  sÓ+Ð+ä¤ q£	¨4°Ó5Ð5ñ
 áÜœœg¤d¬G´D¸!¸RÓ,@À"ÓEÀrÓJˆAÜœ8 A r›?¨A¨t°SÓ9Ð9ä”D˜!˜R ™UÓ#ˆÜ�a˜ÓˆÜ�Q˜‹OˆÜ”y  BÓ'¨Ó,ˆØ”3�q˜˜R™“=Ñ ˆÜ�B�s‘F‹^ˆÜ”GœI b¨!Ó,¨a°Ó5°r¸3Ó?ˆÜ�qœ ¤7¨1¨Q¨r£?°2Ó6°t¸CÓ@Ð@ô 	”�a˜Ó€AÜ$ Q›ZÑ€Eˆ4��sØ�D˜‘H‘€IØ�2‚~ÙÜ˜4 Ó%Ð%äœ¤ a¨Ó,Ó-ˆAÜ˜1œi¨›m¨T°3Ó7Ð7à
Œc�!�YÓÑˆä€Aô 	ˆBˆt‰G�a‰KÓ€AÜ˜QÓ€AÜ€AÜ	�!�R‹€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˜!˜T 3Ó'Ð'r~   Fc                 ó  — | \  }}|t         k(  rt        ||||«      t         fS |s%t        t        | d«      t	        |«      «      rt
        ‚|dz   }t        t        | |«      }t        |d«      \  }	}
}}d||z   z  }||kD  r³|rtt        |«      }t        |t        |«      |«      }t        t        |||«      d«      }t        ||«      }t        |t        |«      |«      }t        |||«      }t!        |||«      S t#        t%        t        ||«      «      }t        |t        |«      |«      }t!        |||«      S |t'        d|«      z  }t)        |t         «      �r|rGt        t        t+        t,        t        t        | |«      |«      |«      }t/        t1        | |«      |||«      S t        t        | d|z  «      }t3        ||«      }t1        ||«      }t5        t7        | d«      |«      }|\  }}}}|\  }}}}t'        ||z   ||z   «      }|t'        d|«      z   }t9        ||z   «      }t        |d«      t         f} t;        t+        | | |«      ||«      }!t/        |t/        |t/        ||!|«      |«      ||«      S t=        |dz  dz   «      }"|"t=        d	t?        tA        |«      «      z  «      z  }"tC        |"«      }!tE        ||«      }#tE        ||«      }$tF        }%tF        }&tH        |z  }'tH        d
|z  z  }(|tJ        k(  })tM        |«      }*tO        |dz
  «      } ||z   }tQ        |"«      D ]‹  }+tS        |+dz   ||*«      },|)r|(tU        |+dz   |z  «      z  }-ntW        |# |,z  |z	  |«      }-|+dz  r|-|!|"   |!|+   z
  z  }-n|-|!|+   |!|"   z
  z  }-tY        |$ |,z  |z	  || «      \  }.}/|%|-|.z  |z	  z  }%|&|-|/z  |z	  z  }&Œ� |%|!|"    z  }%|&|!|"    z  }&t[        |%| |«      }%t[        |&| |«      }&|rt!        |%|&f||«      S t        t        t+        t,        ||«      |«      }t%        |%|&f|||«      S )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|   r0  r0    s<  € Ø�F€BˆØ	ŒU‚{Ü˜˜D # sÓ+¬UÐ2Ð2ñ ”vœg a¨›n¬h°t«nÔ=Ü!Ð!à	�‰€Bô 	”˜˜BÓ€AÜ$ Q¨›^Ñ€Eˆ4��sØ�D˜‘H‘€IØ�2‚~ÙÜ˜“ˆAÜ˜œ9 R›=¨"Ó-ˆAÜœ' ! Q¨Ó+¨RÓ0ˆAÜ˜˜1“ˆAÜ˜Aœw q›z¨2Ó.ˆAÜ˜A˜q "Ó%ˆAÜ˜1˜d CÓ(Ð(äœ¤¨¨BÓ/Ó0ˆAÜ˜Aœy¨›}¨bÓ1ˆAÜ˜1˜d CÓ(Ð(à
Œc�!�YÓÑˆô
 ˆb”%ÕáÜœ¤¬´'¼'À1ÀbÓ2IØó"ØóˆAäœ8 A r›?¨A¨t°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¸CÓ@Ð@ÜˆBˆt‰G�a‰KÓ€AØŒˆS””V˜B“Z“Ñ Ó	!Ñ!€AÜ˜QÓ€AÜ
�2�rÓ
€CÜ
�2�rÓ
€CÜ
€CÜ
€CÜ
�R‰-€CÜ˜!˜B™$Ñ€GØœ%‘K€MÜ
�B‹-€CÜ
�2�a‘4‹.€CØ
ˆR‰%€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 d¨CÓ0Ð0r~   c                 ó   — t        | ||d«      S ©Nr   )r!  ©ry   rv   r×   s      r|   Úmpf_altzetarI  r  ó   € Ü�A�t˜S !Ó$Ð$r~   c                 ó   — t        | ||d«      S rG  )r0  rH  s      r|   Úmpc_altzetarL  u  rJ  r~   c                 ón   — |dk(  r| S t         |z  }|r"|dz  r|| z  |z	  }|dz  }| | z  |z	  } |dz  }|rŒ"|S )Nr   ro   ru   )rï   r{   r†   r#  s       r|   Ú	pow_fixedrN  |  sY   € ØˆA‚vØˆÜ�2‰€AÙ
ØˆqŠ5Ø�1‘˜‘ˆAØ�‰FˆAØˆq‰S�R‰KˆØ	ˆa‰ˆò ð €Hr~   c                 óž  — | t        t        «      k  r9t        }t        d t        j                  t	        |«      «      dz    }t
        }|||fS dg| dz   z  }dg| dz   z  }t        | «      }|D ]  }t        || dz   |«      D ]  }|||<   Œ	 Œ t        |«      D ],  \  }}|dk\  sŒd}||z  } | |z  s| |z  } |dz  }| |z  sŒ|||<   Œ. |a|a|a|||fS )Nr   r   ro   )	ÚlenÚsieve_cacheÚprimes_cacheÚindexr­   Ú
mult_cacher
   r   Ú	enumerate)r{   ÚsieverÂ   Úmultr¯   rš   rÄ   rµ   s           r|   Ú
primesieverX  �  s  € àŒ3Œ{ÓÒÜˆÜÐ?œ|×1Ñ1´#°e³*Ó=¸aÑ?Ð@ˆÜˆØ�f˜dÐ"Ð"ØˆC�1�Q‘3‰K€EØˆ3�!�A‘#‰;€DÜ˜‹^€FØò ˆä˜˜!˜A™#˜a“ò 	ˆAØˆE�!ŠHñ	ðô ˜%Ó ò ‰ˆˆ1Ø�‹6ØˆAØ�Q‘ˆAØ˜!’eØ�a‘�Ø�Q‘�ð ˜!“eð ˆD�ŠGðð €KØ€LØ€JØ�&˜$ÐÐr~   c           
      ó|  — |dk  rt        d«      ‚t        ||z   «      \  }}}i }	t        |z  }
t        d|z  z  }||z   }t        |«      }t	        |dz
  «      }|D ]ß  }|dz  ||z   kD  r nÒt        |||«      }t        | |z  |z	  ||«      \  }}| r|t        ||z  «      z  }nt        | |z  |z	  |«      }||z  |z	  }||z  |z	  }||fg|	|<   ||}}t        dt        t        j                  ||z   |«      dz   «      dz   «      D ]4  }||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}|	|   j                  ||f«       Œ6 Œá t        }t        }|dk(  r||
z  }t        |d«      }t!        |||z   dz   «      D ]Ç  }||   }||	v rW||   }|	|   |dz
     \  }}	 |||z  z  }|dk(  rn�||   }||   }|	|   |dz
     \  }}||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}ŒCt        |||«      }t        | |z  |z	  ||«      \  }}| r|t        ||z  «      z  }nt        | |z  |z	  |«      }||z  |z	  }||z  |z	  }||z  }||z  }ŒÉ ||fS )Nr   za cannot be less than 1ro   g{®Gáz„?)rÎ   rX  r   r?   r>   r@   rO   r   rP   r–   r„   r«   r¬   Úappendr   r­   r   )rC  ÚsreÚsimrw   r{   r†   rV  rÂ   rW  Úbasic_powersrx   rB  r$  r,  r=  r¯   r¬   ÚcosÚsinrå   ÚpreÚpimr@  rA  rµ   ÚxreÚximÚaarš   s                                r|   Úzetasum_sievedre  ¨  s÷  € Øˆ1‚uÜÐ2Ó3Ð3Ü$ Q q¡S›/Ñ€Eˆ6�4Ø€LÜ
�R‰-€CÜ˜!˜B™$Ñ€GØ
ˆR‰%€CÜ
�B‹-€CÜ
�2�a‘4‹.€CØò .ˆØˆQ‰3��1‘Š9ÙÜ˜A˜r 3Ó'ˆÜ  3 $ s¡(¨R¡°°SÓ9‰ˆˆSÙØœ: a¨¡fÓ-Ñ-‰Aä˜C˜4 ™8 b™.¨"Ó-ˆAØ�‰u˜‰mˆØ�‰u˜‰mˆØ ˜:˜,ˆ�Q‰Ø˜ˆ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Õ-ñ	.ð.ô  €CÜ
€CØˆA‚vØˆs‰
ˆÜ	ˆQˆq‹€BÜ�B˜˜!™˜A™Óò ˆØ�!‰HˆØ�ÑØ�Q‘ˆAØ# 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 sÓ+ˆ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                 ó2  — |dz   }t        |«      }|dgk7  }t        |«      dk(  }| \  }	}
|	t        k(  }t        |	|«      }	t        |
|«      }
|dkD  r[|t        kD  rR|sP|sN|dk  st
        j                  dkD  r6t        ||	|
|||«      \  }}t        || |d«      t        || |d«      fg}|g fS t        |«      }|st        |dz   «      }|D �cg c]  }t        ‘Œ
 }}|D �cg c]  }t        ‘Œ
 }}|r'|D �cg c]  }t        ‘Œ
 }}|D �cg c]  }t        ‘Œ
 }}ng x}}t        |z  }t        d|z  z  }t        |«      }t        |dz
  «      }||z   }t        |||z   dz   «      D �]y  }t!        |||«      }t#        |
 |z  |z	  ||«      \  }}|r|t%        ||z  «      z  }nt'        |	 |z  |z	  |«      }||z  |z	  }||z  |z	  } |r|||z  z  }!|!|z  |z	  }"|!|z  |z	  }#|rÇ|r]t)        |||«      }|dxx   ||z  |z	  z  cc<   |dxx   | |z  |z	  z  cc<   |sŒ³|dxx   "|z  |z	  z  cc<   |dxx   #|z  |z	  z  cc<   ŒÚt        |z  }$|D ]X  }||xx   ||$z  |z	  z  cc<   ||xx   | |$z  |z	  z  cc<   |r&||xx   "|$z  |z	  z  cc<   ||xx   #|$z  |z	  z  cc<   |$|z  |z	  }$ŒZ �ŒB|dxx   |z  cc<   |dxx   | z  cc<   |s�Œ`|dxx   "z  cc<   |dxx   #z  cc<   �Œ| |r�|r,|dz  r‰|d    |d<   |d    |d<   |ru|d    |d<   |d    |d<   nb|D �cg c]  }d|z  ||   z  ‘Œ }}|D �cg c]  }d|z  ||   z  ‘Œ }}|r0|D �cg c]  }d|z  ||   z  ‘Œ }}|D �cg c]  }d|z  ||   z  ‘Œ }}t+        ||«      D �%�&cg c]#  \  }%}&t        |%| |d«      t        |&| |d«      f‘Œ% }}%}&t+        ||«      D �'�(cg c]#  \  }'}(t        |'| |d«      t        |(| |d«      f‘Œ% })}'}(||)fS c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}&}%w c c}(}'w )	zI
    Fast version of mp._zetasum, assuming s = complex, a = integer.
    r¥   r   r   g    ÐƒAl        r{   ro   rq   )ÚlistrP  r   r!   ÚZETASUM_SIEVE_CUTOFFÚsysÚmaxsizere  r"   r­   r–   r   r   r?   r>   r   r@   rO   r   rP   rN  Úzip)*ry   rw   r{   ÚderivativesÚreflectrv   r†   Úhave_derivativesÚhave_one_derivativer[  r\  rC  r  r  ÚxsÚmaxdr¨   rb  rc  ÚyreÚyimrx   rB  r,  r=  r$  r  r¬   r^  r_  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¸%Ò,?Ü ¨s°C¸¸A¸rÓB‰ˆˆBÜ˜B   T¨3Ó/´¸bÀ2À#À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Ø
ˆR‰%€Cä�A�q˜‘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¨2Ó.�Ø�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ÛØ�A“˜(Ñ"“Ø�A“˜(Ñ"•ðI$#ñJ ÙØ�aŠxØ˜a™&˜��A‘Ø˜a™&˜��A‘ÙØ! !™f˜W�C˜‘FØ! !™f˜W�C˜’Fà-8Ö9¨�B˜‘7˜S ™VÓ#Ð9ˆCÐ9Ø-8Ö9¨�B˜‘7˜S ™VÓ#Ð9ˆCÐ9ÙØ1<Ö=¨A˜˜Q‘w  Q¡Ó'Ð=�Ð=Ø1<Ö=¨A˜˜Q‘w  Q¡Ó'Ð=�Ð=ä˜C ›÷
'ÙˆR�ô ˜˜R˜C  sÓ+¬\¸"¸r¸cÀ4ÈÓ-MÒ
Nð 
'€Bñ 
'ô ˜C ›÷
'ÙˆR�ô ˜˜R˜C  sÓ+¬\¸"¸r¸cÀ4ÈÓ-MÒ
Nð 
'€Bñ 
'àˆrˆ6€MùòM *ùÚ
)ùâ-ùÚ-ùòr :ùÚ9ùâ=ùÚ=ùó
'ùó
's<   Ã
O%ÃO*Ã2O/ÄO4ÌO9Ì'O>ÍPÍPÍ<(PÎ6(Piˆ  i˜:  gš™™™™™É?é–   c           	      ó†  — d}||z   }t         g| dz   z  }t        |«      }t        |z  }| dz  |d<   t        t	        |«      d«      }t        ||«      x}}	g }
d}	 |d|z  z
  }|dk  rn�t        t        t        |t        |«      |«      }t        |t        |||«      |«      }t        ||«      }t        ||«      }||z  |z  |z	  }|
j                  ||f«       t        ||	|«      }|dz  }Œ�t        d| dz   d«      D ]Q  }t         }d}|
D ]:  \  }}|dz  dk(  r	|||z  z  }n|dz
  dz  }|||z  z   ||z  z  }|s n||z  }|dz  }Œ< d|z  ||<   ŒS t        | dz   «      D �cg c]  }t        t        ||«      «      ‘Œ }}t        t        t	        |«      d«      d|«      x}}t        |t!        d«      |«      }t        d| dz   d«      D ]M  }t        ||   ||«      }t        ||«      ||<   t        |||«      }t        |t!        |dz   |dz   z  «      |«      }ŒO ||z  |z  }t        d| dz   d«      D ]k  }|dz
  dz  }|d|z  dz      d|z  d	z   z  dz  }t        d|dz   «      D ]"  }||d|z     |d|z  dz   d|z  z
     z  |z	  z  }Œ$ ||xx   d|z  |z  |z	  z  cc<   Œm t        d
| dz   d«      D ]z  }|dz
  dz  }|d|z  dz      d|z  dz   z  }t        dd|z  dz   «      D ].  }|d|z  dz  |z  |d|z     z  |d|z  dz   d|z  z
     z  |z	  z  }Œ0 ||xx   ||z  |z	  d|z  z  z  cc<   Œ| |D �cg c]  }||z	  ‘Œ	 c}S c c}w c c}w )a  
    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!   rZ  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Ø	ˆ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¤¨¨2¨bÓ 1°2Ó6ˆÜ�b˜"ÓˆÜ�b˜"ÓˆØ�"‰f�r‰k˜bÑ ˆØ�‰�b˜"�XÔä˜I w°Ó3ˆ	Ø	ˆQ‰ˆð ô  �A�q˜‘s˜AÓò ˆÜˆØˆØò 		‰FˆB�Ø�‰s�aŠxØ˜!˜Q™$‘J‘à�q‘S˜1‘H�Ø˜"˜a™%‘Z A q¡DÑ(�ÙÙØ�‰FˆAØ�‰F‰Að		ð ˜A™ˆ�AŠðô 06°a¸±c«{Ö;¨!Œ”˜q Ó$Õ	%Ð;€AÐ;Üœy¬°«°QÓ7¸¸BÓ?Ð?€FˆSÜ�VœX a›[¨"Ó-€FÜ�A�a˜‘c˜!‹_ò <ˆÜ�A�a‘D˜& "Ó%ˆÜ! ! R›ˆ�A‰Ü˜  bÓ)ˆÜ˜¤¨1¨Q©3°°1±©+Ó!6¸Ó;‰ð	<ð ˜B‘Y 2Ñ%€MÜ�A�q˜‘s˜AÓò 4ˆØˆq‰S�1‰HˆØ˜˜!™˜A™Ñ  !¡ A¡Ñ&¨Ñ)ˆÜ˜˜1˜Q™3“ò 	CˆAØ�+˜a ™cÑ" [°°1±°Q±°q¸±s±Ñ%;Ñ;ÀÑBÑB‰Að	Cà�A‹˜1˜Q™3˜}Ñ,°Ñ3Ñ3Œð4ô �A�q˜‘s˜AÓò 9ˆØˆq‰S�1‰HˆØ˜˜!™˜A™Ñ  !¡ A¡Ñ&ˆÜ˜˜1˜Q™3˜q™5Ó!ò 	NˆAØ�2˜‘'˜!‘)˜A‘+˜{¨1¨Q©3Ñ/Ñ/°+¸aÀ¹cÀ!¹eÀAÀaÁC¹iÑ2HÑHÈ2ÑMÑM‰Að	Nà�A‹˜A˜m™O¨bÑ0°A°a±CÑ8Ñ8Œð9ð *Ö*˜ˆAˆu‹HÒ*Ð*ùò- 	<ùò, +s   ÅL9Ì*L>c                 ó  — | dk  r| d| dz  z
  z   }n| dk  r| d| dz  z
  z   }n| }|t         v rt         |   |fS |dk  rt        |dz  dz   «      }nt        |dz  dz   «      }t         D ];  }||kD  sŒ	t         |   | d D �cg c]
  }|||z
  z	  ‘Œ }}| dk  r	|t         |<   ||fc S  |dkD  rt        |d	z  «      }|d
z   }dg|z  }t        |d<   t        |z  |d<   t	        |«      |d<   t        ||«      }t        d|«      D ]L  }	|d    ||	dz
     z  |z	  }
t        d|	«      D ]  }|
d|z  ||   z  ||	|z
     z  |z	  z  }
Œ |
d|	z
  z  }
|
||	<   ŒN |D �
cg c]  }
|
d
z	  ‘Œ	 }}
|ddd…   }|dd }|t         |<   t        | «      S c c}w c c}
w )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‘Ó ˆô $ò  ˆØ�4‹<Ü/AÀ%Ñ/HÈ!ÈÈÐ/MÖN¨!�a˜% ™*“oÐNˆFÐNØ˜Š}Ø+1Ô" 4Ñ(Ø˜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�q‘S‘6‰\˜BÑˆÜ˜˜!“ò 	;ˆAØ�2˜‘'˜K¨™NÑ*¨Q¨q°©s©VÑ3¸Ñ:Ñ:‰Að	;à	ˆq�‰s‰ˆØˆˆ!Šðð Ö�1ˆˆB‹Ð€AÐØ	‰$ˆBˆ$‰€AØ	ˆ#ˆ2ˆ€AØ Ô�tÑä$ VÓ,Ð,ùò9 Oùò. 	s   Á>E?ÅFc           	      óH  — ||dz
  z	  t         z   dz	  }t         |z  }t        |«      \  }}	|dkD  r®|}
t        |dz
  «      D ]  }||z  }|
|z  |z	  }
Œ ||z  }t        }|D ]  }|||z  |z	  z   }Œ ||	|z
  z  }|dk(  rt	        |
|z  |z  | ||«      S |dk(  rt        t        ||
|z  ||«      |«      S |dk(  r't        t        t	        |
|z  |z  | «      «      ||«      S y |}
t        | «      D ]  }|
|z  |z	  }
||z  }Œ t        }|D ]  }|||z  |z	  z   }Œ ||	|z
  z  }|t        t        |«      «      z
  dkD  rŠt        | t        | «      «      }t	        ||
z  | |z
  «      }
t        |
||«      }
|dk(  rt        t        |
||«      S |dk(  rt!        |
||«      S |dk(  r%t        t        t        t        |
|«      «      ||«      S y t	        ||z  |
z  d|z  «      }
|dk(  rt        t        |
||«      S |dk(  rt!        |
||«      S |dk(  rt#        t        t        |
«      ||«      «      S y )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ü   r3  s                  r|   Úgamma_fixed_taylorr›  é  s�  € ð ˜"˜Q™$‘K¤7Ñ*¨qÑ0€KÜ
�R‰-€CÜ+¨BÓ/�K€FˆCØ�Q‚ØˆÜ˜ A™Ó&ò 	ˆAØ�‰HˆAØ�1‘˜‘‰Að	ð 	
ˆS‰ˆÜˆØò 	 ˆAØ�a˜‘c˜B‘Y‘‰Að	 à	ˆs�2‰v‰ˆØ�1Š9Ü  B¡¨¡
¨R¨C°°sÓ;Ð;Ø�1Š9Üœ]¨1¨q°"©u°t¸SÓAÀ2ÓFÐFØ�1Š9Üœ7¤<°°B±¸±
¸R¸CÓ#@ÓAÀ4ÈÓMÐMð ð ˆÜ˜˜Ó%ò 	ˆAØ�1‘˜‘ˆAØ�‰H‰Að	ô ˆØò 	 ˆAØ�a˜‘c˜B‘Y‘‰Að	 à	ˆs�2‰v‰ˆØ”œ˜Q›Ó Ñ  2Ò%ä˜œh¨ |Ó4Ó5ˆAÜ˜Q˜q™S "  R¡Ó(ˆAÜ˜˜1˜bÓ!ˆAØ�qŠyÜœt Q¨¨cÓ2Ð2Ø�qŠyÜ˜q $¨Ó,Ð,Ø�qŠyÜœw¤w¬t°Q¸Ó';Ó<¸dÀCÓHÐHð ô ˜Q˜q™S ™U 2 b¡5Ó)ˆAØ�qŠy¤¬¨q°$¸Ó!<Ð<Ø�qŠy¤¨¨D°#Ó!6Ð6Ø�qŠy¤¬´¸³¸TÀ3Ó)GÓ!HÐHˆyr~   c                 óÊ   — | t         v r	t         |    S t        | «      \  }}|t        | | dz
  z  «      z  }||t        t	        |«      «      t        |«      ft         | <   t         |    S rG  )Úgamma_stirling_cacherÐ   r   r6   r—   )r{   r¯   rØ   s      r|   Ústirling_coefficientrž    se   € ØÔ Ñ Ü# AÑ&Ð&Ü�A‹;�D€A€qØŒˆQ��!‘‰W‹Ñ€AØ ¤H¬S°«VÓ$4´h¸q³kÐAÔ˜ÑÜ Ñ"Ð"r~   c                 ó  — t         ||z   z  | z  }||z  |z	  }t        |«      | z
  }||dz  z  }||z  |z	  }||dz  z  }||z  |z	  }||dz  z  }||z  |z	  }||dz  z  }||z  |z	  }|s|S ||dz  z  }||z  |z	  }|d|z  dz  z  }||z  |z	  }||dz  z  }||z  |z	  }|s|S |d	|z  d
z  z  }||z  |z	  }|d|z  dz  z  }||z  |z	  }|d|z  dz  z  }||z  |z	  }|s|S d}t        t        |«      «      }t        t        |«      «      }d}	 t	        |«      \  }	}
}}||z   |z   }| }||z
  }|dkD  r||k  r
|	|z  }	||z  }||z
  }|dkD  r||k  r||z	  }||z  }n|}||	z  |
z  |z	  }|s	 |S ||z  }||z  |z	  }|||z
  z  }|dz  }Œ{)zr
    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µ  "  sR  € ô 
�4˜‘9Ñ	 !Ñ#€AØ	
ˆ1‰ˆ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Ó.‰ˆˆ1ˆb�"Ø˜2‘: Ñ$ˆØ�ˆØ�‰MˆØˆqŠ5�U˜Q’YØ�!‰GˆAØ�Q‰JˆEØ�HÑˆØˆqŠ5�U˜Q’YØ�Q‘ˆAØ�Q‰J‰EàˆAØ�!‘�Q‘˜5Ñ ˆÙØð
 €Hð	 	
ˆT‰	ˆØˆq‰S�U‰NˆØ�˜‘ÑˆØ	ˆQ‰ˆð) r~   c                 ó  — | | z  ||z  z   |z	  }| |z  |z  }| |z  |z  }||z  ||z  z
  |z	  }||z  |dz
  z	  }t        |«      | z
  }| }	||dz  z  }|	|dz  z  }	||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||dz  z  }|	|dz  z  }	||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||dz  z  }|	|dz  z  }	||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||dz  z  }|	|dz  z  }	||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}t        |«      t        |«      z   dk  r||	fS ||dz  z  }|	|dz  z  }	||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}|d|z  d	z  z  }|	d|z  d	z  z  }	||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||d
z  z  }|	|d
z  z  }	||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}t        |«      t        |«      z   dk  r||	fS |d|z  dz  z  }|	d|z  dz  z  }	||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}|d|z  dz  z  }|	d|z  dz  z  }	||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}|d|z  dz  z  }|	d|z  dz  z  }	||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}t        |«      t        |«      z   dk  r||	fS d}
t        t        t        |«      t        |«      «      «      }t        t        t        |«      t        |«      «      «      }d}	 t	        |
«      \  }}}}||z   |z   }| }||z
  }|dkD  r||k  r
||z  }||z  }||z
  }|dkD  r||k  r||z	  }||z	  }||z  }n|}|}||z  |z  |z	  }||z  |z  |z	  }t        |«      t        |«      z   dk  r	 ||	fS ||z  }|	|z  }	||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}|||z
  z  }|
dz  }
ŒÀ)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   Ú_mr@  rA  ÚureÚuimr[  r\  rš   r®  r¯  r°  r¯   rØ   r±  r²  r³  r´  rµ   rD  rE  ÚtermreÚtermims                            r|   Úcomplex_stirling_seriesr¼  W  s  € à
ˆA‰#��!‘‰)˜Ñ	€BØ�‰9˜Ñ
€CØˆ2�‰:˜"Ñ
€Càˆs‰7�S˜‘WÑ Ñ
%€CØ
ˆc‰'�d˜1‘fÑ
€Cä
˜4Ó
  1Ñ
$€CØˆ"€Cð ˆ3�‰7�N€C�C˜3 ™7‘N�CØ�S‘˜˜S™‘ 4Ñ'¨C°©G°C¸±G©O¸dÑ+Bˆ€CØˆ3�‰8�O€C�S˜C ™H‘_�SØ�S‘˜˜S™‘ 4Ñ'¨C°©G°C¸±G©O¸dÑ+Bˆ€CØˆ3�‰9Ñ€C�c˜S $™YÑ&�cØ�S‘˜˜S™‘ 4Ñ'¨C°©G°C¸±G©O¸dÑ+Bˆ€CØˆ3�‰9Ñ€C�c˜S $™YÑ&�cØ�S‘˜˜S™‘ 4Ñ'¨C°©G°C¸±G©O¸dÑ+Bˆ€CÜ
ˆ3ƒx”#�c“(Ñ˜QÒ s¨C x Øˆ3�‰9Ñ€C�c˜S $™YÑ&�cØ�S‘˜˜S™‘ 4Ñ'¨C°©G°C¸±G©O¸dÑ+Bˆ€CØˆ3ˆs‰7�F‰?Ñ€C˜C 3 s¡7¨F¡?Ñ2˜CØ�S‘˜˜S™‘ 4Ñ'¨C°©G°C¸±G©O¸dÑ+Bˆ€CØˆ3�‰8�O€C�S˜C ™H‘_�SØ�S‘˜˜S™‘ 4Ñ'¨C°©G°C¸±G©O¸dÑ+Bˆ€CÜ
ˆ3ƒx”#�c“(Ñ˜QÒ s¨C x Øˆ4�‰8�VÑÑ€C˜S D¨¡H¨fÑ$4Ñ4˜SØ�S‘˜˜S™‘ 4Ñ'¨C°©G°C¸±G©O¸dÑ+Bˆ€CØˆ5�‰9�fÑÑ€C˜c U¨3¡Y°Ñ%6Ñ6˜cØ�S‘˜˜S™‘ 4Ñ'¨C°©G°C¸±G©O¸dÑ+Bˆ€CØˆ6�#‰:�vÑÑ€C˜s f¨S¡j°&Ñ&8Ñ8˜sØ�S‘˜˜S™‘ 4Ñ'¨C°©G°C¸±G©O¸dÑ+Bˆ€CÜ
ˆ3ƒx”#�c“(Ñ˜QÒ s¨C x à
€Aô ”Sœ˜S›¤3 s£8Ó,Ó-€EÜ”Sœ˜S›¤3 s£8Ó,Ó-€EØ€DØ
Ü+¨AÓ.‰ˆˆ1ˆ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Ø�a‘%˜‘(˜uÑ$ˆØ�a‘%˜‘(˜uÑ$ˆÜˆv‹;œ˜V›Ñ$ qÒ(Øð �ˆ8€Oð 	ˆv‰ˆØˆv‰ˆØ˜‘W˜s 3™wÑ&¨Ñ.Ø�#‰g˜˜C™Ñ %Ñ'ð ˆà�˜‘ÑˆØ	ˆQ‰ˆð3 r~   c           
      óv  — | \  }}}}|sJ| t         k(  r!|dk(  rt        S |dk(  rt         S t        d«      ‚| t        k(  r|dk(  rt         S t        S t        S |dk(  r2|dz   }||z   |kD  r%|s#t        t        | t        | |«      |«      | ||«      S |dk\  }	|	r˜|r|dk(  rt         S t        d«      ‚||z  }
|
t        k  r�|dk(  rt        t        |
dz
     ||«      S |dk(  rt        t        |
   ||«      S |dk(  rt        t        t        |
dz
     ||«      S |dk(  r&t        t        |
dz
     ||«      S t        || z	  «      }
||z   }|
|z  }|dk(  r|dz   }n|t        |«      z   dz   }|| k  r�|dk(  r,t        t        t        | |«      t        t        | «      ||«      S |dk(  rt        t        | ||«      S |dk(  rt        | t        t        ||z
  «      ||«      S |dk(  rt!        t        t#        | «      ||«      «      S |dk(  rt%        t        | t        «      ||d«      S |dk\  �r÷|	rp|d|z  k  rh|dk(  rt'        t)        |
dz
  «      ||«      S |dk(  rt+        t,        t)        |
dz
  «      ||«      S |dk(  r"t        t'        t)        |
dz
  «      «      ||«      S |
d	k  s	|d|z  k  �rw|r³t/        |«      }|
dz  rt1        d|
z  dz   «      }nt1        d|
z  dz   «       }|dk(  rt        t+        ||||«      | |
z   dz   «      S |dk(  rt        t+        ||||«      ||
z
  dz
  «      S |dk(  rõt        t        t+        |t3        |«      ||«      | |
z   dz   «      ||«      S |
dk(  rL|dk(  rt5        ||«      S |dk(  rt        t        t5        |«      ||«      S |dk(  r‡t        t5        |«      ||«      S t/        |«      }t7        |t1        d|
z  dz
  «      z  | |
z
  «      }|dk(  rt        |||«      S |dk(  rt        t        |||«      S |dk(  rt        t#        |«      ||«      S ||z   }|dk\  r||z  }n|| z	  }|dk(  �r	|�st,        |z  }t3        ||z
  «      }t3        |d|z  z
  «      }|t        t9        ||«      «      z
  }|dkD  rÁt        t        | «      }t        t:        | «      }|d   |d   z   }|d   |d   z   }|| k  r%t        t=        |«      t        t        | «      ||«      S || k  r3t        t        t        t=        |«      «      t        | t:        «      ||«      S |t?        | | «      z  }||z   }|dk\  r||z  }n|| z	  }t        t@        |z  «      }|
t?        d	|«      k  r|tB        k  r|r| }tE        | |||||«      S | }d}|
|k  rJt,        |z  x}}||
z
  }tG        |«      D ]  }||z  |z	  }||z  }Œ t7        || «      x} }|rt!        | «      } nt#        | «      }tI        ||«      }tK        t        ||«      |«      } |t,        |dz
  z  z
  | z  |z	  } || z  }t7        || «      }|rìt        tM        ||«      ||«      }!t!        tO        |«      «      }"|dk(  s|dk(  rVt        |!tQ        ||«      «      }!|rt        |"t7        || «      |«      }"|dk(  rt        |"|!||«      S |dk(  rt        |!|"||«      S |dk(  r[|rt        |"t7        || «      |«      }"t        t        t#        |!«      |«      ||«      }!t        t        t#        |"«      |«      |!||«      S y
|dk(  r2|r#t        tQ        ||«      t7        || «      ||«      S tQ        |||«      S |dk(  r;|r#t        t7        || «      tQ        ||«      ||«      S tQ        t!        |«      ||«      S |dk(  r2|r#t        |t        t7        || «      |«      ||«      S t        |||«      S y
)a�  
    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  Ÿ  sl  € ð Ñ€Dˆ#ˆs�BÙØ”Š:Ø�qŠy¤˜+Ø�qŠy¤˜,ÜÐ2Ó3Ð3Ø”Š9Ø�qŠy¤˜,ÜˆKÜˆð
 ˆq‚yØ�"‰WˆØˆr‰6�BŠ;™tÜœ7 1¤g¨a°£n°bÓ9¸1¸dÀCÓHÐHð ˜‘€JÙáØ�qŠyÜ�ÜÐ2Ó3Ð3à�3‰JˆØÔ)Ò)Ø�qŠyÜÔ4°Q°q±SÑ9¸4ÀÓEÐEØ�qŠyÜÔ4°QÑ7¸¸sÓCÐCØ�qŠyÜœtÔ%:¸1¸Q¹3Ñ%?ÀÀsÓKÐKØ�qŠyÜÔ4°Q°q±SÑ9¸4ÀÓEÐEô �˜˜‘Óˆð �‰(€CØ�3‘€Jàˆq‚yØ�B‰Y‰à”H˜ZÓ(Ñ(¨2Ñ-ˆð ˆbˆS‚yØ�1Š9Üœ7¤4¨¨2Ó.¬y¼¸r¸cÓ/BÀ4ÈÓLÐLØ�1Š9œW¤T¨1¨d°CÓ8Ð8Ø�1Š9œW Q¬	´$°s¸2±vÓ(>ÀÀcÓJÐJØ�1Š9œW¤W¬W°Q«Z¸¸sÓ%CÓDÐDð ˆq‚yÜœ ¤DÓ)¨4°°aÓ8Ð8ð
 ˆbƒyÙØ˜B˜r™EÒ!Ø˜1’9Ü#¤D¨¨1©£I¨t°SÓ9Ð9Ø˜1’9Ü(¬´$°q¸±s³)¸TÀ3ÓGÐGØ˜1’9Ü"¤8¬D°°1±«IÓ#6¸¸cÓBÐBàˆsŠ7�j 2 b¡5Ó(ÙÜ  Ó$�Ø�q’5œe A a¡C¨¡E›l™!Ü$ Q q¡S¨¡U›|˜m˜!Ø˜1’9Ü$¤]°1°a¸¸sÓ%CÀbÀSÈÁUÈ1ÁWÓMÐMØ˜1’9Ü$¤]°1°a¸¸sÓ%CÀRÈÁTÈ!ÁVÓLÐLØ˜1’9Ü"¤9¬]¸1¼cÀ!»fØ˜có.#Ø%' C¨¡E¨!¡Gó$-Ø.2°Có9ð 9à�a’Ø˜1’9¤Z°°cÓ%:Ð:Ø˜1’9¤W¬T´:¸b³>À4ÈÓ%MÐMØ˜1’9¤W¬Z¸«^¸TÀ3Ó%GÐGä  Ó$�Ü  ¤U¨1¨Q©3¨q©5£\Ñ!1°B°3°q±5Ó9�Ø˜1’9¤W¨Q°°cÓ%:Ð:Ø˜1’9¤W¬T°1°d¸CÓ%@Ð@Ø˜1’9¤W¬W°Q«Z¸¸sÓ%CÐCð �2‰X€FØ�‚{˜c V™m‘GØ! v 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Ó.>ÀÀcÓJÐJØ˜2˜#Š~Üœw¤t¬Y°r«]Ó;Ü˜AœtÓ$ d¨Có1ð 1ð ”#�x�i ( Ó+Ñ+ˆBØ˜2‘XˆFØ˜Š{ c¨V¡m™GØ&)¨v¨gÑ&6˜Gô Ô,¨RÑ/Ó0€NØŒ3ˆs�NÓ#Ò#¨Ô-BÒ(BÙØ�hˆGÜ! ! W¨b°$¸¸TÓ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 b›>Ó*ˆAÙÜ˜Aœ|¨A°¨sÓ3°RÓ8�Ø�qŠyÜ˜q ! T¨3Ó/Ð/Ø�qŠyÜ˜q ! T¨3Ó/Ð/Ø�1Š9ÙÜ˜Aœ|¨A°¨sÓ3°RÓ8�Üœ¤¨£
¨BÓ/°°BÓ7ˆAÜœ7¤7¨1£:¨rÓ2°A°t¸SÓAÐAð	 ð �1Š9ÙÜœw q¨"›~Ü   R CÓ(¨$°ó5ð 5ä˜1˜d CÓ(Ð(Ø�1Š9ÙÜœ|¨A°¨sÓ3Ü˜A˜r“N D¨#ó/ð /äœ7 1›: t¨SÓ1Ð1Ø�1Š9ÙÜ˜q¤'¬,°q¸"¸Ó*=¸rÓ"BÀDÈ#ÓNÐNÜ˜1˜d CÓ(Ð(ð r~   c           
      óÂ  — | \  }}|\  }}}}	|\  }
}}}|t         k(  rN|dk(  r5|r3t        |||d«      }| | z	  }t        t        |dz   «      |||«      }||fS t        ||||«      t         fS |s|s|s|rt        t        fS |dz   }||	z   }||z   }|rt        ||«      }n|}|dk  r�|| k  rt        | t        t        | | |«      t        |«      |«      |«      }|dk(  rt        |||«      S |dk(  rt        | |||«      S |dk(  rt        |||«      S |dk(  r"t        t        ||«      ||«      S |dk7  r|| z  }|dk(  r/||kD  r*|r||k\  r#t        t        | t        | |«      |«      | ||«      S |dk(  rt        t!        |t"        «      |f||d«      S t%        t'        |«      «      }t%        t'        |«      «      }t        ||«      }||z  }|dk(  rn|t)        |«      z  }|}| }|r#t+        | «      } | d   x\  }}}}	}| d   x\  }
}}}}d}d}|dk  �r;|dk(  �r¤t-        | t"        «      }|d   t         k(  r| }nt        |d   d   |d   d   z   |«       }||kD  rvt        |«      } t        || |«      }!t        |!|!|«      }!t/        |!t1        d	«      |«      }!t        |t3        t        |«      «      |«      }"t        |!|"|«      }|st        |||«      S |dkD  r||z  }t-        | t4        «      }#|#d   t         k(  r| }$nt        |#d   d   |#d   d   z   |«       }$|$|kD  r˜t        |«      } t7        t9        | | «      t1        d
«      «      }%t        t        |#|#|«      |%|«      }!t/        |!t1        d	«      |«      }!t        |#t7        t"        t        |«      «      |«      }"t        |!|"|«      }|st        |||«      S |$dkD  r||$z  }|| k  r…d|dz   z  }&t;        |«      }'t=        t"        ||z
  «      }(t        |'|&|¬«      })t        t!        |'|(«      |&|¬«      }*t?        t7        |*|)|&«      |(|&«      }+t9        ||+||«      }"|)|"f}|st        |||«      S || z  }||z  }tA        tB        |z  «      },||,k  }-tE        ||«      }.tE        ||«      }/d}0|�s,| }1||,k  r–tG        ||«      }tA        d|,dz  z   |dz  z
  dz  |z
  «      }2tH        |z  x}3}4tJ        }5tM        |2«      D ]#  }6|.|3z  |/|5z  z
  |z	  |.|5z  |/|3z  z   |z	  }5}3|.|4z  }.Œ% tO        |3| «      tO        |5| «      f}0tO        |.| «      }||f} tQ        |.|/|«      \  }7}8t        | |«      \  }9}:tE        |9|«      }9tE        |:|«      }:|9|.z  |:|/z  z
  |z	  |9dz	  z
  |7z   }7|9|/z  |:|.z  z   |z	  |:dz	  z
  |8z   }8tO        |7| «      tO        |8| «      f}"|0�r|dk(  �rt        |"t        |0|«      |«      }"tS        |1d   «      };tS        |1d   «      }<tU        jV                  |;|<«      }=tS        |"d   «      }>tU        jX                  |<|;«      }?|=dk  r	d|<z  |?z
  }@n(|< d|?z  z
  |;|?z  z   |<tU        jZ                  |=«      z  z   }@tA        tU        j\                  @|>z
  dtT        j^                  z  z  dz   «      «      }|"d   t!        |"d   t        t        |«      d|z  |«      |«      f}"|�r¿|dk(  s|dk(  r t        ta        ||«      ||«      }At3        t        |«      «      t         f}B|r!|dk(  rt        A||«      }An%t        A||«      }Ant        Atc        "|«      |«      }A|0rt        B|0|«      }B|dk(  rt        BA||«      S |dk(  rt        AB||«      S |dk(  �r|rt+        |«      }Cnt+        "«      }Ct        Ct        t+        |«      |«      |«      }Cte        |d   «      }Dtg        |d   «      }Et        |«      } t9        | |D«      }%t        |%|E|«      }%|Cd   t!        |Cd   |%|«      f}Cti        |Ctk        | |«      |«      }Cta        t-        ||D«      |«      }%t        |%|«      }%t        |C|%|«      }C|Es+t9        | te        D«      |«      }%Cd   t7        |Cd   |%|«      f}Ct        C||«      S y |dk(  r'|0rt        tc        "|«      |0||«      S tc        "||«      S |dk(  r0|0rt        |0tc        "|«      ||«      S tc        t+        "«      ||«      S |dk(  rt        "||«      S y )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   r1  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š   rr  rs  ÚlreÚlimÚzfaÚzfbÚzfabsÚyfbrå   Úgir¡   r    Ús1ÚrezfloorÚimzsignsF                                                                         r|   r1  r1  m  sµ	  € Ø�D€A€qØÑ€Eˆ4��sØÑ€Eˆ4��sàŒE‚zà�1Š9™Ü˜1˜d C¨Ó+ˆBØ�˜T˜EÑ"ˆAÜœV D¨¡G›_¨a°°sÓ;ˆBØ�r�6ˆMÜ˜˜D # tÓ,¬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°SÓ!9Ð9Ø�qŠy¤¨¨D°#Ó!6Ð6Ø�qŠy¤¬¸¸4Ó)@À$ÈÓ!LÐLØ�QŠYØ�C�4‰LˆBð
 ˆq‚y�S˜2’X©°4¸4²<Ü”w˜q¤'¨!¨R£.°"Ó5°q¸$ÀÓDÐDð ˆq‚yÜœ' !¤TÓ*¨AÐ.°°c¸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�T˜3 Ø%& q¡TÐ)Ñˆˆt�T˜3 ð €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¨SÓ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Ø�1�ˆ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°SÓ!9Ð9Ø�qŠy¤¨¨A¨t°SÓ!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 SÓ)Ð)ð/ ð2 �1Š9ÙÜœw q¨"›~¨q°$¸Ó<Ð<Ü˜1˜d CÓ(Ð(Ø�1Š9ÙÜ˜q¤'¨!¨R£.°$¸Ó<Ð<Üœ7 1›: t¨SÓ1Ð1Ø�1Š9Ü˜1˜d CÓ(Ð(ð r~   c                 ó   — t        | ||d«      S rG  ©r  ©rï   rv   r×   s      r|   Úmpf_factorialrú  W  ó   € Ü�Q˜˜c 1Ó%Ð%r~   c                 ó   — t        | ||d«      S rG  ©r1  rù  s      r|   Úmpc_factorialrþ  Z  rû  r~   c                 ó   — t        | ||d«      S ©Nro   rø  rù  s      r|   Ú
mpf_rgammar  ]  rû  r~   c                 ó   — t        | ||d«      S r   rý  rù  s      r|   Ú
mpc_rgammar  `  rû  r~   c                 ó<   — | \  }}}}|rt         ‚t        | ||d«      S )Nrn   )r:   r  )rï   rv   r×   rø   rù   rú   rû   s          r|   Úmpf_loggammar  c  s*   € ØÑ€Dˆ#ˆs�BÙÜÐÜ�Q˜˜c 1Ó%Ð%r~   c                 óÀ   — | \  }}|\  }}}}|\  }	}
}}|t         k(  r5|r3t        |||d«      }| | z	  }t        t        |dz   «      |||«      }||fS t	        | ||d«      S )Nrn   r¥   )r   r  r*   r=   r1  )ró   rv   r×   rw   r�   r&  r'  r(  r)  rÿ   r   r  r  r  r{   r  s                   r|   Úmpc_loggammar  i  s€   € Ø�D€A€qØÑ€Eˆ4��sØÑ€Eˆ4��sØŒE‚z‘eÜ�q˜$  QÓ'ˆØˆU˜˜ÑˆÜœ  R¡›¨!¨T°3Ó7ˆØ�2ˆvˆÜ�Q˜˜c 1Ó%Ð%r~   c                 ón   — | t         k  rt        t        | dz
     ||«      S t        t	        | «      ||«      S rG  )r¾  r$   r¿  r  r   )r{   rv   r×   s      r|   rè   rè   t  s7   € ØÔ%Ò%ÜÔ,¨Q¨q©SÑ1°4¸Ó=Ð=Ü”X˜a“[ $¨Ó,Ð,r~   rº   )r¨   r   )r¨   )´Ú__doc__r«   ri  Ú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!  r0  rI  rL  Úmpf_zetasumrN  rQ  rR  rT  rX  re  rh  r~  rÂ  rÁ  r¾  r�  r�  r–   r¿  rŽ  r‘  r›  rž  rµ  r¼  r  r1  rú  rþ  r  r  r  r  rè   r¾   s   0r|   ú<module>r     sT  ðñó Û 
å ß <Õ <ç 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Ò$Ð $Ð$ð Ð à Ð àÐ ØÐ ñ 
Ð)¨!Ñ+Ó	,ö.Øñ "¡$ q£'Õ*ò .Ð òO+òb7-òr/Iòb#ò3òjEóPK)ó\h)óT&ó&ó&ó&ó&ó	&ð  *ô -ùòq.s   ÈI