§
    JŠtj- ã                   óô  — 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¢d/„  e£e dz   ¦  «        D ¦   «         Z¤d0„ Z¥d1„ Z¦d2„ Z§d3„ Z¨d4„ Z©d5„ ZªdAd7„Z«dAd8„Z¬dBd9„Z­dBd:„Z®dBd;„Z¯dBd<„Z°dBd=„Z±dBd>„Z²efd?„Z³dS )Cao  
-----------------------------------------------------------------------
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\  }}}|rc|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  }|°c|dz	  S )Né   )r   r   r   é    é   é   r   é   éÿÿÿÿé(   é   é   ©r   )ÚprecÚaÚoneÚsÚtÚns         úT/var/www/html/CA-Chatbot/venv/lib/python3.11/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                 óÖ  — 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nP||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   s“  € å	ˆT�D˜#‘IÑ Ñ"Ñ	#Ô	#€BÝ€AÝ
�1‰+Œ+€CÝ˜‰mÐ€AˆÝ	�‰Œ€BÝ�w r¨2¨rÑ2Ô2°AÑ6Ô6Ð6€EˆFØ	€Að+Ý� q¨¡s¨BÑ/Ô/Ñ0Ô0ˆÝ˜ ¨Ñ+Ô+ˆÝ˜  bÑ)Ô)ˆÝ˜& "Ñ%Ô%ˆØ˜3‘, !Ñ#¨Ñ)¨bÑ0ˆØ�#Š:ˆ:Øð 	
ˆT‰	ˆØ	ˆS�1�Q‘3�q‘5‰\˜C ! A¡#™JÑ&Ñ&ˆØ	ˆQ‰ˆÝ˜#  !¡ a¨¡c¨!¡e™}¨bÑ1Ô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n^||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¢   ¯   s|  € à	�‰€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à�2‰g˜˜4™Ñ BÑ&ˆÝ˜˜R˜CÑ Ô ˆÝ˜!˜A™#˜rÑ"Ô"ˆÝ�q˜!˜RÑ Ô ˆÝ�t˜S "Ñ%Ô%ˆÝ˜˜bÑ!Ô!ˆÝˆt‰9Œ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Ô1ˆð#2õ& 
�"‰Œ€BØˆ�F€AØ	
ˆb‰�b˜!‘e˜r‘kÑ"€AØ��R‰ŒÑ€AØ�•'�, q¨¡t¨b¨SÑ1Ô1°2Ñ6Ô6¸Ñ	;Ô	;Ñ;€AØˆ"�H€AÝ•˜Q  Ñ$Ô$ bÑ)Ô)€AÝ�A�tÑÔÐr~   c                 óî   — | dz  } t           | z  }t          d¦  «        | z  }d}t          }|rE||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  }|°E|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Œ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  }Œ^|| |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�d˜1‘f¥¤¨¡¤Ñ+¨QÑ/Ô/Ñ0Ô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Œv•s˜1‘v”vÑÔ Ò$Ð$ØØ	ˆQ‰ˆðð ��U‘
‰O˜aÑÐr~   c                 óL  — | dz   }d}t          |¦  «        }	 t          ||¦  «        }|t          k    rnbt          ||¦  «        }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ˆ9ØÝ�A�r‰NŒNˆÝ˜�7 1™:œ: rÑ*Ô*ˆÝ�A•x ‘{”{ BÑ'Ô'ˆÝ�A�q‰MŒMˆØ	ˆQ‰ˆðõ �A�tÑÔÐr~   c           	      óv  ‡— d„ }d| z  dz   Št           }ˆfd„dD ¦   «         }ˆfd„|D ¦   «         }d}	 t          |‰¦  «        }t          d¦  «        D ]L}t          |t	          t           ||         ¦  «        ‰¦  «        }t          ||         ||         ‰¦  «        ||<   ŒMt          | ||¦  «         ‰¦  «        }t          || d	z   d
¦  «        t           k    rnt          ||‰¦  «        }|dz  }Œ¼t          |t          d¦  «        ‰¦  «        }t          |t          d¦  «        ‰¦  «        }t          || ¦  «        S )Nc                 ób   ‡ — t          ˆ fd„t          d‰ dz   ¦  «        D ¦   «         ¦  «        ‰ z  S )Nc              3   óL   •K  — | ]}‰|z  °t          |¦  «        ‰|z  z  V — Œd S ©N)r   )Ú.0r¨   r{   s     €r|   ú	<genexpr>z-twinprime_fixed.<locals>.I.<locals>.<genexpr>=  s;   øè è € ÐHÐH¨!ÀAÀaÁCÐH•7˜1‘:”:  1¡Ñ%ÐHÐHÐHÐHÐHÐHr~   r   )Úsumr   ©r{   s   `r|   ÚIztwinprime_fixed.<locals>.I<  s7   ø€ ÝÐHÐHÐHÐH­v°a¸¸!¹©}¬}ÐHÑHÔHÑHÔHÈ!ÑKÐKr~   ro   r‘   c                 ó2   •— g | ]}t          d |‰¦  «        ‘ŒS )r   )r#   ©r»   r¯   r†   s     €r|   ú
<listcomp>z#twinprime_fixed.<locals>.<listcomp>@  s%   ø€ Ð7Ð7Ð7¨�m˜A˜a Ñ#Ô#Ð7Ð7Ð7r~   )ro   rn   r’   é   c                 ó2   •— g | ]}t          ||‰¦  «        ‘ŒS © )r)   rÁ   s     €r|   rÂ   z#twinprime_fixed.<locals>.<listcomp>A  s#   ø€ Ð/Ð/Ð/ 1�w�q˜˜2‰ŒÐ/Ð/Ð/r~   r   r‚   r¥   r{   i'  i 	  )
r   r´   r–   r)   r(   r-   r$   r   r+   r!   )	rv   r¿   ÚresÚprimesÚppowersr{   rw   Úir†   s	           @r|   Útwinprime_fixedrÊ   :  sc  ø€ ðLð Lð Là	
ˆ4‰�"‰€BÝ
€CØ7Ð7Ð7Ð7¨YÐ7Ñ7Ô7€FØ/Ð/Ð/Ð/¨Ð/Ñ/Ô/€GØ	€AðÝ˜˜BÑÔˆÝ�q‘”ð 	<ð 	<ˆAÝ˜�7¥4¨°¬Ñ4Ô4°bÑ9Ô9ˆAÝ  ¨¤¨V°A¬Y¸Ñ;Ô;ˆG�A‰JˆJÝ˜˜A˜A˜a™DœD˜5 "Ñ%Ô%ˆÝ�1�d˜2‘g˜sÑ#Ô#¥tÒ+Ð+Øõ �c˜1˜bÑ!Ô!ˆØ	ˆQ‰ˆðõ �#•x Ñ(Ô(¨"Ñ
-Ô
-€CÝ
�#•x Ñ(Ô(¨"Ñ
-Ô
-€CÝ�C˜ÑÔÐr~   i¸  rn   r”   c                 óh   — 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Í   Š  s4   € å
Œ(�1�Q‰-Œ-€CÝˆu�s˜3‘w‰  C¨%¡K¡Ñ0Ñ1Ô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
          k    rD|t          | ¦  «        dz  dz   k    r+t          | ¦  «        \  }}t          ||||pt          ¦  «        S | t          k    rt          | ||¦  «        S |dz   }|d|d	z  z
  z  }t                               |¦  «        }|rK|\  }}| |v r!|s||          S t          ||          ||¦  «        S |\  }	}
}| |	z
  d
k    rt          | ||¦  «        S nI| d
k    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k    r|d|	z   d|	z   z  z  |	dz
  |	dz
  z  z  }|	|
|g|dd…<   |	| k    �°Ó||          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€uØˆqŠ5ˆ5ÝÐHÑIÔIÐIØ�Š6ˆ6ÝˆKØ�Š6ˆ6Ý�5‘>”>Ð!àˆ1�uð Ýˆð
 Õ#Ò#Ð#¨­~¸aÑ/@Ô/@ÀÑ/DÀtÑ/KÒ(KÐ(KÝ˜‰{Œ{‰ˆˆ1Ý˜Q  4¨Ð);µÑ<Ô<Ð<ØÕÒÐÝ! ! T¨3Ñ/Ô/Ð/Ø	�‰€Bàˆ"��r‘	Ñ
Ñ€BÝ× Ò  Ñ$Ô$€FØð /Ø‰ˆ�Ø�ˆ<ˆ<Øð "Ø˜q”zÐ!Ý˜7 1œ: t¨SÑ1Ô1Ð1Ø‰ˆˆ3�Øˆq‰5�2Š:ˆ:Ý% a¨¨sÑ3Ô3Ð3ð ð ˆrŠ6ˆ6Ý% a¨¨sÑ3Ô3Ð3Ø•T�(ˆØ !¥3 r¡7¤7­GÐ4Ð4‰ˆˆ3��uØ&¨Ð.�˜ÑØ
ˆqŠ&‰&à�1‰uˆõ ˜aÑ Ô ˆØˆÝ�1�d‰|Œ|˜rÑ!ˆØˆqŠ5ˆ5ÝˆAˆ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ˆAØ�1Š9ˆ9�, q¨¡s­B°Ñ3Ô3�aØ�1Š9ˆ9�, q¨¡s­B°Ñ3Ô3�aØ�1Š9ˆ9�,¨ r¨!¡t­R°Ñ4Ô4�aÝ˜˜D "Ñ%Ô%ˆÝ•G˜A˜q "Ñ%Ô%¥x°¡}¤}°bÑ9Ô9ˆØˆ�‰
Ø	ˆQ‰ˆà�a˜‘c˜A˜a™C‘[Ñ! a¨¨1©¡gÑ.ˆØˆqŠ5ˆ5Ø˜A˜a™C ! A¡#™;Ñ'¨Q¨q©S°1°Q±3©KÑ8ˆDØ�s˜D�>ˆˆaˆaˆa‰ðA ˆqŠ&‰&ðB �1Œ:Ðr~   c                 ó’  — |dz   }|t          t          j        | d¦  «        ¦  «        z   }t          | dz   |¦  «        }t	          |t          | |¦  «        |¦  «        }t	          |t          t          |¦  «        |  |¦  «        ¦  «        }t          |d| z
  ¦  «        }| dz  st          |¦  «        }t          |||p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˜q ‘m”mÑ$Ô$Ñ$€FÝ�a˜‘c˜2ÑÔ€AÝ�•<  2Ñ&Ô&¨Ñ+Ô+€AÝ�•;�v f™~œ~°¨r°2Ñ6Ô6Ñ7Ô7€AÝ�!�Q�q‘SÑÔ€AØˆq‰5ð Ý�A‰JŒJˆÝ�1�d˜CÐ-¥:Ñ.Ô.Ð.r~   c                 óŒ  — t          | ¦  «        } | dk     r
g d¢|          S | dz  rdS d}t          | dz   ¦  «        D ]}| |dz
  z  s||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€uØ(Ð(Ð(¨Ô+Ð+Øˆ1�uð ØˆvØ	€AÝ˜˜1™ÑÔð ð ˆØ�Q�q‘S‘	ð 	Ø�‰FˆAøÝ˜!ÑÔ�s¥4¤8¨A¨a¡=¤=Ñ1Ô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õ   „  sZ   € Ø�U•D�$ÐÐÐØˆÝ•�˜q $ q¡&Ñ)Ô)¨4Ñ0Ô0€AÝ�1•i  Q¡¨Ñ,Ô,¨d°CÑ8Ô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ù   Š  sk   € Øˆ„t�u‚}€}Ý˜Q˜qœT 4¨Ñ-Ô-­uÐ5Ð5Ý•˜Q¥ d¨1¡fÑ-Ô-¨tÑ4Ô4€AÝ�q�) D¨¡F¨CÑ0Ô0°$¸Ñ<Ô<Ð<r~   c           
      óN  — | \  }}}}|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     rMt          t          | t          ||¦  «        ||¦  «        }t          |t          t          | ||¦  «        ||¦  «        S |r||z   dk    rvt          | |¦  «        \  }	}
t          t          |	|
|¦  «        t          |¦  «        |¦  «        }t          t          t          | |¦  «        |¦  «        }t          ||||¦  «        S |s.||z   |k    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k    r||k    rn|}|dz  }Œqt)          |
| ||¦  «        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Øð 0Ø•Š9ˆ9˜Q�hØ•Š:ˆ:˜�dš˜­4 KØ�E‚z€z�c˜Q’h�h 4�hÝÐ)Ñ*Ô*Ð*à
ˆ2�v�‚{€{Ý•W˜Q¥ d¨CÑ0Ô0°$¸Ñ<Ô<ˆÝ�q�'¥$¨¨2¨sÑ3Ô3°T¸3Ñ?Ô?Ð?àð (��B‘˜’
�
Ý˜a Ñ$Ô$‰ˆˆ1Ý•G˜A˜q "Ñ%Ô%¥v¨b¡z¤z°2Ñ6Ô6ˆÝ•W�T 1 bÑ)Ô)¨2Ñ.Ô.ˆÝ�q˜!˜T 3Ñ'Ô'Ð'àð 8�b˜3‘h ’m�mÝ•w˜q¥$¨Ñ+Ô+¨T°3Ñ7Ô7Ð7åˆq‰	Œ	€AÝˆD�‰G‰Œ�qÑ€AÝ€AÝ��B‰Œ€AÝ
�R‰-€CØˆ1‚u€uÝ˜˜1‘”ð 	ð 	ˆAØ�#˜‘) Ñ!Ñ!ˆAØ�‰HˆAˆAØˆ�H€Aà�•'�, q¨2¨#¨rÑ2Ô2°BÑ7Ô7¸Ñ	<Ô	<Ñ<€Aàˆ#�‰)˜˜1™Ñ	Ñ€Aà
ˆA‰#�"‰€BØ€AØ€DØ	€AðØˆr‰T�b‰LˆÝ!.¨q°©s°BÑ!7Ô!7Ñˆˆt�T˜3Ø˜˜2™‘+ˆØ�QŠ;ˆ; ¨¡°A°q¸±s±GÑ<˜˜Ø $¨&¨Ñ 1°q¸!¸A¹#±wÑ?˜Øˆq‰5ð 	�!�t‘)�!�!Ø�t‘)�!ØˆqŠ5ˆ5�T˜T’\�\ØØˆØ	ˆQ‰ˆðõ ˜˜B˜3  CÑ(Ô(Ð(r~   c                 óD  — | \  }}|t           k    rt          |||¦  «        t           fS |dz   }|\  }}}}	|rŒ||	z   dk    rƒt          | |¦  «        }
t          | |¦  «        }t	          t          |
||¦  «        t          |¦  «        |¦  «        }t          t          t          | |¦  «        |¦  «        }t          ||||¦  «        S |s.|	|z   |k    r%t          t          | t          |¦  «        ||¦  «        S t          |¦  «        }t          d|z  ¦  «        dz   }t          }||k     rHt          ||¦  «        D ]7}t          |t          | |¦  «        |¦  «        }t!          | t"          |¦  «        } Œ8t          | 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k    r!t7          ||¦  «        st7          ||¦  «        rn
|}|}|dz  }Œ™|S )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Ô1ˆÝ�q˜!˜T 3Ñ'Ô'Ð'àð ;�b˜3‘h ’m�mÝ•w˜q¥'¨2Ñ.Ô.°°cÑ:Ô:Ð:åˆr‰
Œ
€AÝˆD�‰G‰Œ�qÑ€AÝ€AØˆ1‚u€uÝ˜˜1‘”ð 	)ð 	)ˆAÝ˜�>¨!¨RÑ0Ô0°"Ñ5Ô5ˆAÝ˜A�t RÑ(Ô(ˆAˆAÝ�•7˜BÑÔ€Aå�•7˜1˜b‘>”> 2Ñ&Ô&€AÝ�•7�8 Q¨Ñ+Ô+¨RÑ0Ô0€Aå	�A�rÑ	Ô	€BÝ€AÝ€DÝ€FØ	€AÝ
•D˜2˜#˜a™%Ñ
 Ô
 €Cð
Ý�A�r˜2ÑÔˆÝ˜Q˜q™S "Ñ%Ô%ˆÝ˜4¥¨Q°°!±°RÑ!8Ô!8¸"Ñ=Ô=ˆÝ�A�t˜RÑ Ô ˆÝ˜˜rÑ"Ô"ˆØˆqŠ5ˆ5•f˜V SÑ)Ô)ˆ5­V°F¸FÑ-CÔ-Cˆ5ØØˆØˆØ	ˆQ‰ˆð
ð €Hr~   c                 óz   — | 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    s?   € ð
 	ˆA‚v€vÝ˜˜4¥ZÐ0Ñ0Ô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 |s=|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     rOt          ||¦  «        D ]>}t          ||  dz
  |¦  «        }t          |||¦  «        }t          |t          |¦  «        }Œ?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k    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€vÝ˜˜4 Ñ%Ô%Ð%Ø�F€BˆØ	�‰€BØÑ€Dˆ#ˆs�BØˆaŒ5ð  Ø•$��tÐ$Ð$Ð$Ý�$�<ÐØð  Ø•Š:ˆ:˜"¥š+˜+Ý�5�>Ð!Ø•Š:ˆ:Ý�$�<Ðåˆr‰
Œ
€AÝˆC�‰F�Q�q‘S‰LÑÔ€AÝ€AØˆ1‚u€uÝ˜˜1‘”ð 	)ð 	)ˆAÝ˜A ˜r !™t RÑ(Ô(ˆAÝ˜˜1˜bÑ!Ô!ˆAÝ˜A�t RÑ(Ô(ˆAˆAÝ	�Q˜˜˜BÑ	Ô	€BÝ	�Q˜˜BÑ	Ô	€Bå ¥H¨Q¡K¤K°Ñ4Ô4€MÝ��= "Ñ%Ô%€Aå�•;�w r¨1¨bÑ1Ô1µ5¸"Ñ=Ô=¸rÑBÔ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ˆ5•V˜F CÑ(Ô(ˆ5Øà	ˆa��!‘‰e�a˜˜!™‘e˜A‘gÑÑˆØ	ˆa�‰c�!‰e�a˜‘c˜!‘e‰_ÑˆØ	ˆQ‰ˆðõ 	�A•y¥¨!¨A©#¡¤°Ñ3Ô3°T¸3Ñ?Ô?€AØ�‰Eð )Ý�A�a”D‰MŒ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  }|||<   Œ5|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           	      ó4  — |dz   }t          | ¦  «        } | t          v r9t          |          d         |k    r"t          t          |          d         ||¦  «        S | dk     r_| 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    rQd|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 ]v}t          || t!          j        |d¦  «        z  z
  ¦  «        }	|	dk     r nEt%          t          t'          t          |¦  «        |  |	¦  «        |¦  «        }
t)          ||
|¦  «        }Œwt          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´   Œ  sF  € ð 
�‰€BÝˆA‰Œ€AØ�NÐÐ�~¨aÔ0°Ô3°rÒ9Ð9Ý•~ aÔ(¨Ô+¨T°3Ñ7Ô7Ð7Øˆ1‚u€uØ�Š6ˆ6Ý˜^Ñ,Ô,Ð,Øð 	"Ý�5‘>”>Ð!Ý•} a R¨¡T¨2Ñ.Ô.µ¸¸1¹±´¸tÀSÑIÔIÐIàˆB‚w€wÝ�4  D¨#Ñ.Ô.Ð.à	
ˆb�‰hŠˆØ�r‘'ÐˆˆCØ	ˆQ�2˜‘6‰]ÑˆØ	ˆS•Y !‘^Ñ$Ñ$ˆØ	ˆQ•#�a˜˜a ™c™Ñ"Ô"Ñ"Ñ"ˆÝ˜A ˜s D¨#Ñ.Ô.Ð.õ �2‰YŒY˜˜!™‰_˜qÑ ˆØˆrŠ6ˆ6Ý˜s A™v¨™z™?œ?ˆLØ�c " T¡'¨A¡+Ñ.Ô.°Ñ3Ò3Ð3Ý�Ý$ \Ñ2Ô2ð *ð *�Aå! " q­¬°!°A©¬¡Ñ"6Ñ7Ô7�GØ ’{�{Ø˜Ý¥¥kµ(¸1±+´+À¸rÀ7Ñ&KÔ&KÈRÑPÔP�AÝ  1 bÑ)Ô)�A�AÝ�t Q¨Ñ+Ô+Ð+åˆBˆt‰G�a‰KÑÔ€AÝ˜QÑÔ€AÝ€AÝˆA‰Œ€AÝ�A‰YŒ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Ð 9¸qÍÐ?VÐ?VØ¥¨a°"°°R±Ñ!8Ô!8Ð9��qÑÝ˜˜B˜3˜r™6 4¨Ñ-Ô-Ð-r~   c                 óª  — | \  }}}}|sA| t           k    r|rt          S t          t          ¦  «        S | t          k    rt          S t
          S |dz   }|s6||z   t          j        |d¦  «        dz   k    rt          t          |||¦  «        S |dk    r´|r”| t          k    rt          ||¦  «        S t          t          | ¦  «        |t          |         ¦  «        }	t          t          t          t          t          t          | |¦  «        |¦  «        |¦  «        }
t!          |	|
||¦  «        S t          t          | ¦  «        ||¦  «        S |�r=|r^t          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  }||k    rT|rt          ||¦  «        S t          t/          t          ||¦  «        ¦  «        }
t3          |
t5          |¦  «        ||¦  «        S |t+          d|¦  «        z  }t6          }t9          |dz  d	z   ¦  «        }t;          |¦  «        }t6          }t=          | |¦  «        }t?          |¦  «        }tA          |¦  «        D ]R}| tC          |dz   ||¦  «        z  |z	  }tE          |||¦  «        }||         ||         z
  |z  }|dz  r||z  }ŒM||z  }ŒS|||          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&  Á  s  € ØÑ€Dˆ#ˆs�BØð Ø•Š:ˆ:Øð &Ý�å�u‘~”~Ð%Ø•Š9ˆ9ÝˆKÝˆØ	�‰€Bàð 6�s˜R‘x¥4¤8¨B¨q¡>¤>°AÑ#5Ò6Ð6Ý�4  d¨CÑ0Ô0Ð0à	�ŠˆØð 	6Ø•DŠyˆyÝ˜t SÑ)Ô)Ð)Ý�V A™YœY¨­L¸Ô,=Ñ>Ô>ˆAÝ��g¥d­GµD¸!¸RÑ,@Ô,@À"ÑEÔEÀrÑJÔJˆAÝ˜1˜a  sÑ+Ô+Ð+å¥ q¡	¤	¨4°Ñ5Ô5Ð5ð
 ñ Aàð 	:Ý��g¥d­GµD¸!¸RÑ,@Ô,@À"ÑEÔEÀrÑJÔJˆAÝ�8 A r™?œ?¨A¨t°SÑ9Ô9Ð9å•D˜!˜R ™UÑ#Ô#ˆÝ�a˜ÑÔˆÝ�Q˜‰OŒOˆÝ•y  BÑ'Ô'¨Ñ,Ô,ˆØ•3�q˜˜R™‘=”=Ñ ˆÝ�B�s‘F‰^Œ^ˆÝ•G�I b¨!Ñ,Ô,¨a°Ñ5Ô5°r¸3Ñ?Ô?ˆÝ�q� ¥7¨1¨Q¨r¡?¤?°2Ñ6Ô6°t¸CÑ@Ô@Ð@õ 	•�a˜ÑÔ€AÝ$ Q™ZœZÑ€Eˆ4��sØ�D˜‘H‘€IØ�2‚~€~Øð 	8Ý˜4 Ñ%Ô%Ð%å�¥ a¨Ñ,Ô,Ñ-Ô-ˆAÝ˜1�i¨™mœm¨T°3Ñ7Ô7Ð7à
�c�!�YÑÔÑˆå€Aõ 	ˆBˆt‰G�a‰KÑÔ€AÝ˜QÑÔ€AÝ€AÝ	�!�R‰Œ€BÝ
�B‰-Œ-€CÝ�A‰YŒYð ð ˆØˆS•˜q ™s B¨Ñ,Ô,Ñ,°Ñ3ˆõ ˜˜B Ñ$Ô$ˆØˆqŒT�A�a”D‰[˜DÑ ˆØˆq‰5ð 	Ø�‰FˆAˆAà�‰FˆAˆAØ	ˆq�Œtˆe‰€AÝ�Q˜˜˜RÑ Ô €AØ
ð (Ý�q˜$ Ñ$Ô$Ð$å•D�'¥$­µ°a¸Ñ(<Ô(<¸bÑAÔAÀ2ÑFÔFˆÝ�q˜!˜T 3Ñ'Ô'Ð'r~   Fc                 óV
  — | \  }}|t           k    rt          ||||¦  «        t           fS |s2t          t          | d¦  «        t	          |¦  «        ¦  «        rt
          ‚|dz   }t          t          | |¦  «        }t          |d¦  «        \  }	}
}}d||z   z  }||k    rð|rœt          |¦  «        }t          |t          |¦  «        |¦  «        }t          t          |||¦  «        d¦  «        }t          ||¦  «        }t          |t          |¦  «        |¦  «        }t          |||¦  «        }t!          |||¦  «        S t#          t%          t          ||¦  «        ¦  «        }t          |t          |¦  «        |¦  «        }t!          |||¦  «        S |t'          d|¦  «        z  }t)          |t           ¦  «        �rg|r^t          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_liner1  rš   r¬   r  ÚwreÚwims0                                                   r|   r5  r5    s  € Ø�F€BˆØ	�U‚{€{Ý˜˜D # sÑ+Ô+­UÐ2Ð2ð ð "•v�g a¨™nœn­h°t©n¬nÑ=Ô=ð "Ý!Ð!à	�‰€Bõ 	•˜˜BÑÔ€AÝ$ Q¨™^œ^Ñ€Eˆ4��sØ�D˜‘H‘€IØ�2‚~€~Øð 	)Ý˜‘”ˆAÝ˜�9 R™=œ=¨"Ñ-Ô-ˆAÝ�' ! Q¨Ñ+Ô+¨RÑ0Ô0ˆAÝ˜˜1‘”ˆAÝ˜A�w q™zœz¨2Ñ.Ô.ˆAÝ˜A˜q "Ñ%Ô%ˆAÝ˜1˜d CÑ(Ô(Ð(å�¥¨¨BÑ/Ô/Ñ0Ô0ˆAÝ˜A�y¨™}œ}¨bÑ1Ô1ˆAÝ˜1˜d CÑ(Ô(Ð(à
�c�!�YÑÔÑˆõ
 ˆb•%ÑÔñ Aàð 	:Ý�¥­µ'½'À1ÀbÑ2IÔ2IØñ"ô "Øñô ˆAå�8 A r™?œ?¨A¨t°SÑ9Ô9Ð9å•G˜Q  2¡Ñ&Ô&ˆÝ�a˜ÑÔˆÝ�Q˜‰OŒOˆÝ•y  BÑ'Ô'¨Ñ,Ô,ˆØ!#Ñˆˆt�T˜3Ø!#Ñˆˆt�T˜3Ý�$�s‘(˜D ™HÑ%Ô%ˆØ•3�q˜#‘;”;ÑˆÝ�B�s‘F‰^Œ^ˆÝ˜˜QÑÔ¥Ð'ˆÝ�  Q¨Ñ,Ô,¨b°#Ñ6Ô6ˆÝ�q� ¥7¨1¨Q¨r¡?¤?°2Ñ6Ô6°t¸CÑ@Ô@Ð@ÝˆBˆt‰G�a‰KÑÔ€AØ�ˆS••V˜B‘Z”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ŒYð ð ˆÝ˜A˜a™C  SÑ)Ô)ˆàð 	0Ø�: q¨¡s¨s¡lÑ3Ô3Ñ3ˆAˆAå˜C˜4 ™8¨Ñ*¨BÑ/Ô/ˆAØˆq‰5ð 	Ø�!�A”$˜˜1œ‘+ÑˆAˆAà�!�A”$˜˜1œ‘+ÑˆAÝ  3 $ s¡(¨R¡°°SÑ9Ô9‰ˆˆSØ��C‘˜B‰ÑˆØ��C‘˜B‰ÑˆˆØˆa�ŒdˆU�O€CØˆa�ŒdˆU�O€CÝ
�s˜R˜C Ñ
$Ô
$€CÝ
�s˜R˜C Ñ
$Ô
$€CØ
ð 1Ý˜˜S�z 4¨Ñ-Ô-Ð-å•G�W¥W¨a°Ñ4Ô4°bÑ9Ô9ˆÝ˜˜S�z 1 d¨CÑ0Ô0Ð0r~   c                 ó&   — t          | ||d¦  «        S ©Nr   )r&  ©ry   rv   rÜ   s      r|   Úmpf_altzetarN  r  ó   € Ý�A�t˜S !Ñ$Ô$Ð$r~   c                 ó&   — t          | ||d¦  «        S rL  )r5  rM  s      r|   Úmpc_altzetarQ  u  rO  r~   c                 óp   — |dk    r| S t           |z  }|r!|dz  r|| z  |z	  }|dz  }| | z  |z	  } |dz  }|°!|S )Nr   ro   ru   )rô   r{   r†   r(  s       r|   Ú	pow_fixedrS  |  sj   € ØˆA‚v€vØˆÝ�2‰€AØ
ð Øˆq‰5ð 	Ø�1‘˜‘ˆAØ�‰FˆAØˆq‰S�R‰KˆØ	ˆa‰ˆð ð ð €Hr~   c                 óÖ  — | t          t          ¦  «        k     rJt          }t          d t                               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    r d}||z  } | |z  s| |z  } |dz  }| |z  ¯|||<   Œ,|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|   Ú
primesiever]  �  s@  € à�3�{ÑÔÒÐÝˆÝÐ?�|×1Ò1µ#°e±*´*Ñ=Ô=¸aÑ?Ð?Ô@ˆÝˆØ�f˜dÐ"Ð"ØˆC�1�Q‘3‰K€EØˆ3�!�A‘#‰;€DÝ˜‰^Œ^€FØð ð ˆå˜˜!˜A™#˜a‘”ð 	ð 	ˆAØˆE�!‰HˆHð	å˜%Ñ Ô ð ð ‰ˆˆ1Ø�Š6ˆ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   k    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 ];}||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}|	|                              ||f¦  «         Œ<Œýt          }t          }|dk    r||
z  }t          |d¦  «        }t!          |||z   dz   ¦  «        D ]ñ}||         }||	v rn||         }|	|         |dz
           \  }}	 |||z  z  }|dk    rnA||         }||         }|	|         |dz
           \  }}||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}ŒPnkt          |||¦  «        }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Ó   r]  r   r?   r>   r@   rO   r   rP   r–   r„   r«   r¬   Úappendr   r­   r   )rH  ÚsreÚsimrw   r{   r†   r[  rÇ   r\  Úbasic_powersrx   rG  r)  r1  rB  r¯   r¬   ÚcosÚsinrê   ÚpreÚpimrE  rF  rµ   ÚxreÚximÚaarš   s                                r|   Úzetasum_sievedrj  ¨  sU  € Øˆ1‚u€uÝÐ2Ñ3Ô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ˆ9ØˆEÝ˜A˜r 3Ñ'Ô'ˆÝ  3 $ s¡(¨R¡°°SÑ9Ô9‰ˆˆSØð 	.Ø�: a¨¡fÑ-Ô-Ñ-ˆAˆAå˜C˜4 ™8 b™.¨"Ñ-Ô-ˆAØ�‰u˜‰mˆØ�‰u˜‰mˆØ ˜:˜,ˆ�Q‰Ø˜ˆSˆÝ�q��TœX a¨¡c¨!™_œ_¨TÑ1Ñ2Ô2°1Ñ4Ñ5Ô5ð 	.ð 	.ˆAØ˜S™  S¡™¨2Ñ-°#°c±'¸#¸c¹'±/ÀBÑ1F�ˆCØ˜ŒO×"Ò" C¨ 9Ñ-Ô-Ð-Ð-ð	.õ €CÝ
€CØˆA‚v€vØˆs‰
ˆÝ	ˆQˆq‰Œ€BÝ�B˜˜!™˜A™ÑÔð ð ˆØ�!ŒHˆØ�ÐÐØ�Q”ˆAØ# A” q¨¡sÔ+‰HˆC�ðLØ�a˜‘d‘
�Ø˜’6�6ØØ˜!”H�Ø˜”G�Ø'¨œ?¨1¨Q©3Ô/‘��SØ  ™W S¨¡W™_¨rÑ1°c¸#±g¸cÀ#¹g±oÈÑ5J�S�ðLð õ    2 sÑ+Ô+ˆCÝ$ s d¨3¡h°¡^°R¸Ñ=Ô=‰HˆC�Øð 2Ø�z¨!¨S©&Ñ1Ô1Ñ1��å ˜t C™x¨"™n¨bÑ1Ô1�Ø�S‘5˜R‘-ˆCØ�S‘5˜R‘-ˆCØˆs‰
ˆØˆs‰
ˆˆØ�ˆ8€Or~   r¥   c                 óÄ  ‡‡!‡"‡#‡$‡%— ‰dz   Š!t          |¦  «        }|dgk    }t          |¦  «        dk    }| \  }}	|t          k    }
t          |‰!¦  «        }t          |	‰!¦  «        }	|dk    rg|t          k    r\|sZ|sX|dk     st
          j        dk    rBt          |
||	||‰!¦  «        \  }}t          |‰! ‰d¦  «        t          |‰! ‰d¦  «        fg}|g fS t          |¦  «        }|st          |dz   ¦  «        }d„ |D ¦   «         Š#d„ |D ¦   «         Š"|rd	„ |D ¦   «         Š%d
„ |D ¦   «         Š$ng xŠ%Š$t          ‰!z  }t          d‰!z  z  }t          ‰!¦  «        }t          ‰!dz
  ¦  «        }‰!‰!z   }t          |||z   dz   ¦  «        D �]­}t          |‰!|¦  «        }t!          |	 |z  ‰!z	  ‰!|¦  «        \  }}|
r|t#          ||z  ¦  «        z  }nt%          | |z  ‰!z	  ‰!¦  «        }||z  ‰!z	  }||z  ‰!z	  }|r|||z  z  }||z  ‰!z	  }||z  ‰!z	  }|rá|rlt'          ||‰!¦  «        }‰#dxx         ||z  ‰!z	  z  cc<   ‰"dxx         ||z  ‰!z	  z  cc<   |r,‰%dxx         ||z  ‰!z	  z  cc<   ‰$dxx         ||z  ‰!z	  z  cc<   Œøt          ‰!z  }|D ]d}‰#|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	  }Œe�Œk‰#dxx         |z  cc<   ‰"dxx         |z  cc<   |r ‰%dxx         |z  cc<   ‰$dxx         |z  cc<   �Œ¯|rt|r8|dz  r2‰#d          ‰#d<   ‰"d          ‰"d<   |r‰%d          ‰%d<   ‰$d          ‰$d<   n:ˆ#fd„|D ¦   «         Š#ˆ"fd„|D ¦   «         Š"|rˆ%fd„|D ¦   «         Š%ˆ$fd„|D ¦   «         Š$ˆˆ!fd„t)          ‰#‰"¦  «        D ¦   «         }ˆˆ!fd„t)          ‰%‰$¦  «        D ¦   «         } || fS )zI
    Fast version of mp._zetasum, assuming s = complex, a = integer.
    r¥   r   r   g    ÐƒAl        r{   c                 ó   — g | ]	}t           ‘Œ
S rÅ   ©r   ©r»   r¨   s     r|   rÂ   zmpc_zetasum.<locals>.<listcomp>ÿ  ó   € Ð
)Ð
)Ð
)˜�8Ð
)Ð
)Ð
)r~   c                 ó   — g | ]	}t           ‘Œ
S rÅ   rm  rn  s     r|   rÂ   zmpc_zetasum.<locals>.<listcomp>   ro  r~   c                 ó   — g | ]	}t           ‘Œ
S rÅ   rm  rn  s     r|   rÂ   zmpc_zetasum.<locals>.<listcomp>  ó   € Ð-Ð-Ð-˜A�xÐ-Ð-Ð-r~   c                 ó   — g | ]	}t           ‘Œ
S rÅ   rm  rn  s     r|   rÂ   zmpc_zetasum.<locals>.<listcomp>  rr  r~   ro   c                 ó,   •— g | ]}d |z  ‰|         z  ‘ŒS ©rq   rÅ   )r»   r¨   rg  s     €r|   rÂ   zmpc_zetasum.<locals>.<listcomp><  ó&   ø€ Ð9Ð9Ð9¨�B˜‘7˜S œVÑ#Ð9Ð9Ð9r~   c                 ó,   •— g | ]}d |z  ‰|         z  ‘ŒS ru  rÅ   )r»   r¨   rh  s     €r|   rÂ   zmpc_zetasum.<locals>.<listcomp>=  rv  r~   c                 ó,   •— g | ]}d |z  ‰|         z  ‘ŒS ru  rÅ   )r»   r¨   Úyres     €r|   rÂ   zmpc_zetasum.<locals>.<listcomp>?  ó&   ø€ Ð=Ð=Ð=¨A˜˜Q‘w  Q¤Ñ'Ð=Ð=Ð=r~   c                 ó,   •— g | ]}d |z  ‰|         z  ‘ŒS ru  rÅ   )r»   r¨   Úyims     €r|   rÂ   zmpc_zetasum.<locals>.<listcomp>@  rz  r~   c           	      ób   •— g | ]+\  }}t          |‰ ‰d ¦  «        t          |‰ ‰d ¦  «        f‘Œ,S r¾   ©r"   )r»   ÚxaÚxbrv   r†   s      €€r|   rÂ   zmpc_zetasum.<locals>.<listcomp>A  óR   ø€ ð 
'ð 
'ð 
'ÙˆR�õ ˜˜R˜C  sÑ+Ô+­\¸"¸r¸cÀ4ÈÑ-MÔ-MÐ
Nð 
'ð 
'ð 
'r~   c           	      ób   •— g | ]+\  }}t          |‰ ‰d ¦  «        t          |‰ ‰d ¦  «        f‘Œ,S r¾   r~  )r»   ÚyaÚybrv   r†   s      €€r|   rÂ   zmpc_zetasum.<locals>.<listcomp>C  r�  r~   )ÚlistrU  r   r!   ÚZETASUM_SIEVE_CUTOFFÚsysÚmaxsizerj  r"   r­   r–   r   r?   r>   r   r@   rO   r   rP   rS  Úzip)&ry   rw   r{   ÚderivativesÚreflectrv   Úhave_derivativesÚhave_one_derivativer`  ra  rH  r
  r  ÚxsÚmaxdrx   rG  r1  rB  r)  r  r¬   rc  rd  rê   Úxterm_reÚxterm_imÚ
reciprocalÚyterm_reÚyterm_imrz   r¨   Úysr†   rh  rg  r|  ry  s&        `                           @@@@@r|   Úmpc_zetasumr–  ä  sŠ  øøøøøø€ ð
 
�‰€BÝ�{Ñ#Ô#€KØ" q cÒ)ÐÝ˜kÑ*Ô*¨aÒ/Ðð �H€CˆØ�E’\€MÝ
�3˜Ñ
Ô
€CÝ
�3˜Ñ
Ô
€Càˆ1‚u€u�Õ)Ò)Ð)Ð2BÐ)Øð *Ø!" S¢ ­C¬K¸%Ò,?Ð,?Ý ¨s°C¸¸A¸rÑBÔB‰ˆˆBÝ˜B   T¨3Ñ/Ô/µ¸bÀ2À#ÀtÈSÑ1QÔ1QÐRÐSˆØ�2ˆvˆåˆ{ÑÔ€DØð $Ý˜D ™F‘m”mˆð *Ð
)˜[Ð
)Ñ
)Ô
)€CØ
)Ð
)˜[Ð
)Ñ
)Ô
)€CØð Ø-Ð- Ð-Ñ-Ô-ˆØ-Ð- Ð-Ñ-Ô-ˆˆàˆˆˆ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Ô9‰ˆˆSØð 	.Ø�: a¨¡fÑ-Ô-Ñ-ˆAˆAå˜C˜4 ™8 b™.¨"Ñ-Ô-ˆAØ˜‘G ‘?ˆØ˜‘G ‘?ˆØð 	0Ø! a¨¡cÑ*ˆJØ" SÑ(¨RÑ/ˆHØ" SÑ(¨RÑ/ˆHàð 	#Ø"ð (Ý  T¨2Ñ.Ô.�Ø�A��”˜8 c™>¨bÑ0Ñ0��‘Ø�A��”˜8 c™>¨bÑ0Ñ0��‘Øð 5Ø˜�F�F”F˜x¨#™~°"Ñ4Ñ4�F�F‘FØ˜�F�F”F˜x¨#™~°"Ñ4Ñ4�F�F‘Føå˜r‘M�Ø$ð (ð (�AØ˜�F�F”F˜x¨!™|°Ñ2Ñ2�F�F‘FØ˜�F�F”F˜x¨!™|°Ñ2Ñ2�F�F‘FØð 7Ø˜A˜˜œ 8¨a¡<°BÑ"6Ñ6˜˜™Ø˜A˜˜œ 8¨a¡<°BÑ"6Ñ6˜˜™Ø˜S™ R™�A�Añ(ð �ˆFˆFŒF�hÑˆFˆF‰FØ�ˆFˆFŒF�hÑˆFˆF‰FØð #Ø�A��”˜(Ñ"��‘Ø�A��”˜(Ñ"��‘ùØð >Øð 	>Ø�a‰xð %Ø˜aœ&˜��A‘Ø˜aœ&˜��A‘Øð %Ø! !œf˜W�C˜‘FØ! !œf˜W�C˜‘Føà9Ð9Ð9Ð9¨[Ð9Ñ9Ô9ˆCØ9Ð9Ð9Ð9¨[Ð9Ñ9Ô9ˆCØð >Ø=Ð=Ð=Ð=°Ð=Ñ=Ô=�Ø=Ð=Ð=Ð=°Ð=Ñ=Ô=�ð
'ð 
'ð 
'ð 
'ð 
'Ý˜C ™œð
'ñ 
'ô 
'€Bð
'ð 
'ð 
'ð 
'ð 
'Ý˜C ™œð
'ñ 
'ô 
'€Bàˆrˆ6€Mr~   iˆ  i˜:  gš™™™™™É?é–   c                 óF   — g | ]}t          t          |¦  «        ¦  «        ‘ŒS rÅ   )r   r   )r»   r{   s     r|   rÂ   rÂ   \  s6   € ð .ð .ð .Øõ "¥$ q¡'¤'Ñ*Ô*ð .ð .ð .r~   c           	      óT  ‡‡— 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	  }|                     ||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  ||<   ŒRˆfd	„t          | dz   ¦  «        D ¦   «         }t          t          t	          ‰¦  «        d¦  «        d‰¦  «        x}}t          |t          d¦  «        ‰¦  «        }t          d| dz   d¦  «        D ]d}t          ||         |‰¦  «        }t          |‰¦  «        ||<   t          ||‰¦  «        }t          |t          |dz   |dz   z  ¦  «        ‰¦  «        }Œe|‰z  |z  }t          d| dz   d¦  «        D ]y}|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<   Œzt          d| dz   d¦  «        D ]ˆ}|dz
  dz  }|d|z  dz            d|z  dz   z  }t          dd|z  dz   ¦  «        D ]4}	|d|	z  dz  |	z  |d|	z           z  |d|z  dz   d|	z  z
           z  ‰z	  z  }Œ5||xx         ||z  ‰z	  d|z  z  z  cc<   Œ‰ˆfd„|D ¦   «         S )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“   c                 óJ   •— g | ]}t          t          |‰¦  «        ¦  «        ‘Œ S rÅ   )r&   r…   )r»   rš   r†   s     €r|   rÂ   zzeta_array.<locals>.<listcomp>˜  s+   ø€ Ð;Ð;Ð;¨!�•˜q Ñ$Ô$Ñ	%Ô	%Ð;Ð;Ð;r~   rÃ   r’   rq   c                 ó   •— g | ]}|‰z	  ‘ŒS rÅ   rÅ   )r»   rô   r®   s     €r|   rÂ   zzeta_array.<locals>.<listcomp>®  s   ø€ Ð*Ð*Ð*˜ˆAˆu‰HÐ*Ð*Ð*r~   )r   r>   r   r3   r=   rB   r+   r   r(   r)   r!   r_  r   r-   r   )r™   rv   Úzeta_valuesr‰   rx   Úf_2piÚ	exp_2pi_kÚexp_2piÚexps3rš   ÚtpÚq1Úq2r{   ry   Úe1Úe2rz   r°   r    Úpi_powÚfpirø   Úreciprocal_pir®   r†   s                           @@r|   Ú
zeta_arrayr©  _  s�  øø€ ð €EØ	ˆe‰€BÝ�*  !¡Ñ$€KÝ	�"‰Œ€Bå
�R‰-€CØ�T˜1‘W€K��NÝ•f˜R‘j”j Ñ#Ô#€EÝ! %¨Ñ,Ô,Ð,€I�ð
 €EØ	€AðØ�!�A‘#‰XˆØ�Š6ˆ6Øå•T�7 9­d°BÑ7Ô7¸Ñ<Ô<ˆå�Y¥¨¨2¨bÑ 1Ô 1°2Ñ6Ô6ˆÝ�b˜"ÑÔˆÝ�b˜"ÑÔˆØ�"‰f�r‰k˜bÑ ˆØ�Š�b˜"�XÑÔÐå˜I w°Ñ3Ô3ˆ	Ø	ˆQ‰ˆðõ  �A�q˜‘s˜AÑÔð ð ˆÝˆØˆØð 		ð 		‰FˆB�Ø�‰s�aŠxˆxØ˜!˜Q™$‘J��à�q‘S˜1‘H�Ø˜"˜a™%‘Z A q¡DÑ(�Øð Ø�Ø�‰FˆAØ�‰FˆAˆAØ˜A™ˆ�A‰ˆà;Ð;Ð;Ð;­v°a¸±c©{¬{Ð;Ñ;Ô;€AÝ�y­°©¬°QÑ7Ô7¸¸BÑ?Ô?Ð?€FˆSÝ�V�X a™[œ[¨"Ñ-Ô-€FÝ�A�a˜‘c˜!‰_Œ_ð <ð <ˆÝ�A�a”D˜& "Ñ%Ô%ˆÝ! ! R™œˆ�A‰Ý˜  bÑ)Ô)ˆÝ˜¥¨1¨Q©3°°1±©+Ñ!6Ô!6¸Ñ;Ô;ˆˆà˜B‘Y 2Ñ%€MÝ�A�q˜‘s˜AÑÔð 4ð 4ˆØˆq‰S�1‰HˆØ˜˜!™˜A™Ô  !¡ A¡Ñ&¨Ñ)ˆÝ˜˜1˜Q™3‘”ð 	Cð 	CˆAØ�+˜a ™cÔ" [°°1±°Q±°q¸±s±Ô%;Ñ;ÀÑBÑBˆAˆAØ�AˆˆŒ˜1˜Q™3˜}Ñ,°Ñ3Ñ3ˆˆ‰ˆÝ�A�q˜‘s˜AÑÔð 9ð 9ˆØˆq‰S�1‰HˆØ˜˜!™˜A™Ô  !¡ A¡Ñ&ˆÝ˜˜1˜Q™3˜q™5Ñ!Ô!ð 	Nð 	NˆAØ�2˜‘'˜!‘)˜A‘+˜{¨1¨Q©3Ô/Ñ/°+¸aÀ¹cÀ!¹eÀAÀaÁC¹iÔ2HÑHÈ2ÑMÑMˆAˆAØ�AˆˆŒ˜A˜m™O¨bÑ0°A°a±CÑ8Ñ8ˆˆ‰ˆØ*Ð*Ð*Ð*˜kÐ*Ñ*Ô*Ð*r~   c                 óx  ‡	‡
— | 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 ]AŠ	‰	‰
k    r9ˆ	ˆ
fd„t           ‰	         | d	…         D ¦   «         }| dk     r
|t           ‰
<   |‰
fc S ŒB‰
dk    rt          ‰
d
z  ¦  «        Š
‰
dz   }dg|z  }t          |d<   t          |z  |d<   t	          |¦  «        |d<   t          ||¦  «        }t          d|¦  «        D ]Z}|d          ||dz
           z  |z	  }t          d|¦  «        D ]"}|d|z  ||         z  |||z
           z  |z	  z  }Œ#|d|z
  z  }|||<   Œ[d„ |D ¦   «         }|d	d	d…         }|d	d…         }|t           ‰
<   t          | ¦  «        S )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¾Ÿ/é?c                 ó    •— g | ]
}|‰‰z
  z	  ‘ŒS rÅ   rÅ   )r»   rô   Úcprecrv   s     €€r|   rÂ   z-gamma_taylor_coefficients.<locals>.<listcomp>Ë  s!   ø€ ÐNÐNÐN¨!�a˜% ™*‘oÐNÐNÐNr~   Ng333333ó?rl   r   r   rn   rq   c                 ó   — g | ]}|d z	  ‘ŒS )rl   rÅ   )r»   rw   s     r|   rÂ   z-gamma_taylor_coefficients.<locals>.<listcomp>â  s   € ÐÐÐ�1ˆˆB‰ÐÐÐr~   )Úgamma_taylor_cacher„   r   r   r˜   r©  r   Úgamma_taylor_coefficients)Úinprecr™   Úcoeffsr†   r¡   rœ  rš   rw   rž   r¬  rv   s            @@r|   r¯  r¯  °  sC  øø€ ð �‚|€|Ø˜˜V B™Y™Ñ(ˆˆØ	�$ŠˆØ˜˜V B™Y™Ñ(ˆˆàˆØÕ!Ð!Ð!Ý! $Ô'¨Ð-Ð-ð ˆd‚{€{Ý��d‘
˜Q‘ÑÔˆˆõ ��e‘˜a‘Ñ Ô ˆõ $ð  ð  ˆØ�4Š<ˆ<ØNÐNÐNÐNÐNÕ/AÀ%Ô/HÈ!ÈÈÈÔ/MÐNÑNÔNˆFØ˜Š}ˆ}Ø+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ˆAØ	ˆq�‰s‰ˆØˆˆ!‰ˆØÐ˜ÐÑÔ€AØ	ˆ$ˆ$ˆBˆ$Œ€AØ	ˆ#ˆ2ˆ#Œ€AØ Õ�tÑå$ VÑ,Ô,Ð,r~   c           	      ó2  — ||dz
  z	  t           z   dz	  }t           |z  }t          |¦  «        \  }}	|dk    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    r3t          t          t	          |
|z  |z  | ¦  «        ¦  «        ||¦  «        S d S |}
t          | ¦  «        D ]}|
|z  |z	  }
||z  }Œt          }|D ]}|||z  |z	  z   }Œ||	|z
  z  }|t          t          |¦  «        ¦  «        z
  dk    r´t          | t          | ¦  «        ¦  «        }t	          ||
z  | |z
  ¦  «        }
t          |
||¦  «        }
|dk    rt          t          |
||¦  «        S |dk    rt!          |
||¦  «        S |dk    r2t          t          t          t          |
|¦  «        ¦  «        ||¦  «        S d S t	          ||z  |
z  d|z  ¦  «        }
|dk    rt          t          |
||¦  «        S |dk    rt!          |
||¦  «        S |dk    r+t#          t          t          |
¦  «        ||¦  «        ¦  «        S d S )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  r8  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ˆAØ	ˆS‰ˆÝˆØð 	 ð 	 ˆAØ�a˜‘c˜B‘Y‘ˆAˆAØ	ˆs�2‰v‰ˆØ�1Š9ˆ9Ý  B¡¨¡
¨R¨C°°sÑ;Ô;Ð;Ø�1Š9ˆ9Ý�]¨1¨q°"©u°t¸SÑAÔAÀ2ÑFÔFÐFØ�1Š9ˆ9Ý�7¥<°°B±¸±
¸R¸CÑ#@Ô#@ÑAÔAÀ4ÈÑMÔMÐMð ˆ9ð ˆÝ˜˜Ñ%Ô%ð 	ð 	ˆAØ�1‘˜‘ˆAØ�‰HˆAˆAÝˆØð 	 ð 	 ˆAØ�a˜‘c˜B‘Y‘ˆAˆAØ	ˆs�2‰v‰ˆØ•�˜Q™œÑ Ô Ñ  2Ò%Ð%å˜�h¨ |Ñ4Ô4Ñ5Ô5ˆAÝ˜Q˜q™S "  R¡Ñ(Ô(ˆAÝ˜˜1˜bÑ!Ô!ˆAØ�qŠyˆyÝ�t Q¨¨cÑ2Ô2Ð2Ø�qŠyˆyÝ˜q $¨Ñ,Ô,Ð,Ø�qŠyˆyÝ�w¥w­t°Q¸Ñ';Ô';Ñ<Ô<¸dÀCÑHÔHÐHð ˆyõ ˜Q˜q™S ™U 2 b¡5Ñ)Ô)ˆAØ�qŠyˆy¥­¨q°$¸Ñ!<Ô!<Ð<Ø�qŠyˆy¥¨¨D°#Ñ!6Ô!6Ð6Ø�qŠyˆy¥­µ¸±´¸TÀ3Ñ)GÔ)GÑ!HÔ!HÐHˆyˆyr~   c                 ó  — | t           v rt           |          S t          | ¦  «        \  }}|t          | | dz
  z  ¦  «        z  }||t          t	          |¦  «        ¦  «        t          |¦  «        ft           | <   t           |          S rL  )Úgamma_stirling_cacherÕ   r   r6   r—   )r{   r¯   rÝ   s      r|   Ústirling_coefficientr»    ss   € ØÕ Ð Ð Ý# AÔ&Ð&Ý�A‰;Œ;�D€A€qØ�ˆQ��!‘‰W‰ŒÑ€AØ ¥H­S°©V¬VÑ$4Ô$4µh¸q±k´kÐAÕ˜ÑÝ Ô"Ð"r~   c                 óF  — 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k    r||k     r
|	|z  }	||z  }||z
  }|dk    r||k     r||z	  }||z  }n|}||	z  |
z  |z	  }|sn||z  }||z  |z	  }|||z
  z  }|dz  }Œ�|S )zr
    Sums the rational part of Stirling's expansion,

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

    r•   éh  éì  é�  é¤  é³  é¨ éœ   é!  é Þ é[«  éÜ¹ éª éØé é   r   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Ò  "  sz  € õ 
�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”VÑÔ€EÝ•S˜‘V”VÑÔ€EØ€DðÝ+¨AÑ.Ô.‰ˆˆ1ˆb�"Ø˜2‘: Ñ$ˆØ�ˆØ�‰MˆØˆqŠ5ˆ5�U˜Q’Y�YØ�!‰GˆAØ�Q‰JˆEØ�HÑˆØˆqŠ5ˆ5�U˜Q’Y�YØ�Q‘ˆAØ�Q‰JˆEˆEàˆAØ�!‘�Q‘˜5Ñ ˆØð 	ØØ	ˆT‰	ˆØˆq‰S�U‰NˆØ�˜‘ÑˆØ	ˆQ‰ˆð)ð* €Hr~   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k    r||k     r
||z  }||z  }||z
  }|dk    r||k     r||z	  }||z	  }||z  }n|}|}||z  |z  |z	  }||z  |z  |z	  }t          |¦  «        t          |¦  «        z   dk     rn4||z  }|	|z  }	||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}|||z
  z  }|
dz  }
ŒÍ||	fS )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   Ú_mrE  rF  ÚureÚuimr`  ra  rš   rË  rÌ  rÍ  r¯   rÝ   rÎ  rÏ  rÐ  rÑ  rµ   rI  rJ  Ú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„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„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„x•#�c‘(”(Ñ˜QÒÐ s¨C x à
€Aõ •S�˜S™œ¥3 s¡8¤8Ñ,Ô,Ñ-Ô-€EÝ•S�˜S™œ¥3 s¡8¤8Ñ,Ô,Ñ-Ô-€EØ€DðÝ+¨AÑ.Ô.‰ˆˆ1ˆb�"Ø˜2‘: Ñ$ˆØ�ˆØ�‰MˆØˆqŠ5ˆ5�U˜Q’Y�YØ�!‰GˆAØ�Q‰JˆEØ�HÑˆØˆqŠ5ˆ5�U˜Q’Y�YØ˜‘(ˆCØ˜‘(ˆCØ�Q‰JˆEˆEàˆCØˆCØ�a‘%˜‘(˜uÑ$ˆØ�a‘%˜‘(˜uÑ$ˆÝˆv‰;Œ;�˜V™œÑ$ qÒ(Ð(ØØˆv‰ˆØˆv‰ˆØ˜‘W˜s 3™wÑ&¨Ñ.Ø�#‰g˜˜C™Ñ %Ñ'ð ˆà�˜‘ÑˆØ	ˆQ‰ˆð3ð4 �ˆ8€Or~   r¨   c           
      ó¼  — | \  }}}}|sZ| 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    r?|dz   }||z   |k    r1|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 n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„|	r‘|d|z  k     rˆ|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     �rá|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    rCt          t          t+          |t3          |¦  «        ||¦  «        | |
z   dz   ¦  «        ||¦  «        S nü|
dk    re|dk    rt5          ||¦  «        S |dk    r$t          t          t5          |¦  «        ||¦  «        S |dk    rt          t5          |¦  «        ||¦  «        S n‘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    �rW|�sTt,          |z  }t3          ||z
  ¦  «        }t3          |d|z  z
  ¦  «        }|t          t9          ||¦  «        ¦  «        z
  }|dk    rýt          t          | ¦  «        }t          t:          | ¦  «        }|d         |d         z   }|d         |d         z   }|| k     r2t          t=          |¦  «        t          t          | ¦  «        ||¦  «        S || k     rEt          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     rUt,          |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    rpt          |!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 d
S |dk    rB|r/t          tQ          ||¦  «        t7          || ¦  «        ||¦  «        S tQ          |||¦  «        S |dk    rO|r/t          t7          || ¦  «        tQ          ||¦  «        ||¦  «        S tQ          t!          |¦  «        ||¦  «        S |dk    rB|r/t          |t          t7          || ¦  «        |¦  «        ||¦  «        S t          |||¦  «        S d
S )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{   rA  Ú
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�BØð Ø•Š:ˆ:Ø�qŠyˆy¥˜+Ø�qŠyˆy¥˜,ÝÐ2Ñ3Ô3Ð3Ø•Š9ˆ9Ø�qŠyˆy¥˜,ÝˆKÝˆð
 ˆq‚y€yØ�"‰WˆØˆr‰6�BŠ;ˆ;˜tˆ;Ý�7 1¥g¨a°¡n¤n°bÑ9Ô9¸1¸dÀCÑHÔHÐHð ˜’€JØð àð 	4Ø�qŠyˆyÝ�ÝÐ2Ñ3Ô3Ð3à�3‰JˆØÕ)Ò)Ð)Ø�qŠyˆyÝÕ4°Q°q±SÔ9¸4ÀÑEÔEÐEØ�qŠyˆyÝÕ4°QÔ7¸¸sÑCÔCÐCØ�qŠyˆyÝ�tÕ%:¸1¸Q¹3Ô%?ÀÀsÑKÔKÐKØ�qŠyˆyÝÕ4°Q°q±SÔ9¸4ÀÑEÔEÐEøõ �˜˜‘ÑÔˆð �‰(€CØ�3‘€Jàˆq‚y€yØ�B‰Yˆˆà•H˜ZÑ(Ô(Ñ(¨2Ñ-ˆð ˆbˆS‚y€yØ�1Š9ˆ9Ý�7¥4¨¨2Ñ.Ô.­y½¸r¸cÑ/BÔ/BÀ4ÈÑLÔLÐLØ�1Š9ˆ9�W¥T¨1¨d°CÑ8Ô8Ð8Ø�1Š9ˆ9�W Q­	µ$°s¸2±vÑ(>Ô(>ÀÀcÑJÔJÐJØ�1Š9ˆ9�W¥W­W°Q©Z¬Z¸¸sÑ%CÔ%CÑDÔDÐDð ˆq‚y€yÝ� ¥DÑ)Ô)¨4°°aÑ8Ô8Ð8ð
 ˆb‚y�yØð 	CØ˜B˜r™EÒ!Ð!Ø˜1’9�9Ý#¥D¨¨1©¡I¤I¨t°SÑ9Ô9Ð9Ø˜1’9�9Ý(­µ$°q¸±s±)´)¸TÀ3ÑGÔGÐGØ˜1’9�9Ý"¥8­D°°1±©I¬IÑ#6Ô#6¸¸cÑBÔBÐBàˆsŠ7ˆ7�j 2 b¡5Ò(Ñ(Øð DÝ  Ñ$Ô$�Ø�q‘5ð ,�e A a¡C¨¡E™lœl˜!˜!Ý$ Q q¡S¨¡U™|œ|˜m˜!Ø˜1’9�9Ý$¥]°1°a¸¸sÑ%CÔ%CÀbÀSÈÁUÈ1ÁWÑMÔMÐMØ˜1’9�9Ý$¥]°1°a¸¸sÑ%CÔ%CÀRÈÁTÈ!ÁVÑLÔLÐLØ˜1’9�9Ý"¥9­]¸1½cÀ!¹f¼fØ˜cñ.#ô .#Ø%' C¨¡E¨!¡Gñ$-ô $-Ø.2°Cñ9ô 9ð 9ð ð �a’�Ø˜1’9�9¥Z°°cÑ%:Ô%:Ð:Ø˜1’9�9¥W­Tµ:¸b±>´>À4ÈÑ%MÔ%MÐMØ˜1’9�9¥W­Z¸©^¬^¸TÀ3Ñ%GÔ%GÐG�9å  Ñ$Ô$�Ý  ¥U¨1¨Q©3¨q©5¡\¤\Ñ!1°B°3°q±5Ñ9Ô9�Ø˜1’9�9¥W¨Q°°cÑ%:Ô%:Ð:Ø˜1’9�9¥W­T°1°d¸CÑ%@Ô%@Ð@Ø˜1’9�9¥W­W°Q©Z¬Z¸¸sÑ%CÔ%CÐCð �2‰X€FØ�‚{€{˜c V™m�G�GØ! v gÑ.�Gð ˆq‚y�y˜�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ÐJØ˜2˜#Š~ˆ~Ý�w¥t­Y°r©]¬]Ñ;Ô;Ý˜A�tÑ$Ô$ d¨Cñ1ô 1ð 1ð •#�x�i ( Ñ+Ô+Ñ+ˆBØ˜2‘XˆFØ˜Š{ˆ{ c¨V¡m˜G˜GØ&)¨v¨gÑ&6˜Gõ Õ,¨RÑ/Ñ0Ô0€NØ�3ˆs�NÑ#Ô#Ò#Ð#¨Õ-BÒ(BÐ(BØð 	Ø�hˆGÝ! ! W¨b°$¸¸TÑBÔBÐBð €Eð 	
€AØˆ>ÒÐÝ˜R‘-ÐˆˆCØ˜QÑˆÝ˜‘”ð 	ð 	ˆAØ�W‘ Ñ#ˆAØ�s‰NˆGˆGÝ ¨"¨Ñ-Ô-Ð-ˆˆDØð 	Ý˜‘
”
ˆAøå�q‰zŒzˆõ 	˜W bÑ)Ô)€AÝ•˜˜rÑ"Ô" BÑ'Ô'€AØ
•W˜r !™t‘_Ñ
%¨Ñ	*¨rÑ1€AØˆ�F€AÝ�Q˜˜ÑÔ€Að ñ )å•J˜u bÑ)Ô)¨5°"Ñ5Ô5ˆÝ•F˜2‘J”JÑÔˆØ�1Š9ˆ9˜ š	˜	Ý˜�7 1 b™>œ>Ñ*Ô*ˆAØð 9Ý˜A�|¨A°¨sÑ3Ô3°RÑ8Ô8�Ø�qŠyˆyÝ˜q ! T¨3Ñ/Ô/Ð/Ø�qŠyˆyÝ˜q ! T¨3Ñ/Ô/Ð/Ø�1Š9ˆ9Øð 9Ý˜A�|¨A°¨sÑ3Ô3°RÑ8Ô8�Ý�¥¨¡
¤
¨BÑ/Ô/°°BÑ7Ô7ˆAÝ�7¥7¨1¡:¤:¨rÑ2Ô2°A°t¸SÑAÔAÐAð	 ˆ9ð �1Š9ˆ9Øð 5Ý�w q¨"™~œ~Ý   R CÑ(Ô(¨$°ñ5ô 5ð 5å˜1˜d CÑ(Ô(Ð(Ø�1Š9ˆ9Øð /Ý�|¨A°¨sÑ3Ô3Ý˜A˜r‘N”N D¨#ñ/ô /ð /å�7 1™:œ: t¨SÑ1Ô1Ð1Ø�1Š9ˆ9Øð OÝ˜q¥'­,°q¸"¸Ñ*=Ô*=¸rÑ"BÔ"BÀDÈ#ÑNÔNÐNÝ˜1˜d CÑ(Ô(Ð(ð ˆ9r~   c           
      óš  — | \  }}|\  }}}}	|\  }
}}}|t           k    r`|dk    rA|r?t          |||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 n|dk    r|| z  }|dk    r=||k    r7|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   |¦  «         }||k    rŸt          |¦  «        } t          || |¦  «        }!t          |!|!|¦  «        }!t/          |!t1          d	¦  «        |¦  «        }!t          |t3          t          |¦  «        ¦  «        |¦  «        }"t          |!|"|¦  «        }|st          |||¦  «        S n|dk    r||z  }t-          | t4          ¦  «        }#|#d         t           k    r| }$n,t          |#d         d         |#d         d         z   |¦  «         }$|$|k    rÎt          |¦  «        } t7          t9          | | ¦  «        t1          d
¦  «        ¦  «        }%t          t          |#|#|¦  «        |%|¦  «        }!t/          |!t1          d	¦  «        |¦  «        }!t          |#t7          t"          t          |¦  «        ¦  «        |¦  «        }"t          |!|"|¦  «        }|st          |||¦  «        S n|$dk    r||$z  }|| k     r«d|dz   z  }&t;          |¦  «        }'t=          t"          ||z
  ¦  «        }(t          |'|&|¬¦  «        })t          t!          |'|(¦  «        |&|¬¦  «        }*t?          t7          |*|)|&¦  «        |(|&¦  «        }+t9          ||+||¦  «        }"|)|"f}|st          |||¦  «        S n|| 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    �r3t          |"t          |0|¦  «        |¦  «        }"tS          |1d         ¦  «        };tS          |1d         ¦  «        }<tU          j+        |;|<¦  «        }=tS          |"d         ¦  «        }>tU          j,        |<|;¦  «        }?|=dk    r	d|<z  |?z
  }@n'|< d|?z  z
  |;|?z  z   |<tU          j-        |=¦  «        z  z   }@tA          tU          j.        |@|>z
  dtT          j/        z  z  dz   ¦  «        ¦  «        }|"d         t!          |"d         t          t          |¦  «        d|z  |¦  «        |¦  «        f}"|�rY|dk    s|dk    rÐt          ta          ||¦  «        ||¦  «        }At3          t          |¦  «        ¦  «        t           f}B|r*|dk    rt          |A||¦  «        }An1t          |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    �rt|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 d S |dk    r3|0r t          tc          |"|¦  «        |0||¦  «        S tc          |"||¦  «        S |dk    r@|0r t          |0tc          |"|¦  «        ||¦  «        S tc          t+          |"¦  «        ||¦  «        S |dk    rt          |"||¦  «        S d S )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   r6  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ÚbmagrA  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š   ry  r|  ÚlreÚlimÚzfaÚzfbÚzfabsÚyfbrê   Úgir¡   r    Ús1ÚrezfloorÚimzsignsF                                                                         r|   r6  r6  m  sÝ  € Ø�D€A€qØÑ€Eˆ4��sØÑ€Eˆ4��sà�E‚z€zà�1Š9ˆ9˜ˆ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Œoˆˆàˆð ˆR‚x€xØ�"�Š9ˆ9å˜�;¥w¨q°°2¡¤µyÀ±}´}ÀRÑHÔHÈ"ÑMÔMˆAØ�qŠyˆy¥°°4¸Ñ!=Ô!=Ð=Ø�qŠyˆy¥¨¨A¨t°SÑ!9Ô!9Ð9Ø�qŠyˆy¥¨¨D°#Ñ!6Ô!6Ð6Ø�qŠyˆy¥­¸¸4Ñ)@Ô)@À$ÈÑ!LÔ!LÐLˆyØ�QŠYˆYØ�C�4‰LˆBð
 ˆq‚y€y�S˜2’X�X¨�X°4¸4²<°<Ý•w˜q¥'¨!¨R¡.¤.°"Ñ5Ô5°q¸$ÀÑDÔDÐDð ˆq‚y€yÝ�' !¥TÑ*Ô*¨AÐ.°°c¸1Ñ=Ô=Ð=å	�V�A‰YŒY‰Œ€BÝ	�V�A‰YŒY‰Œ€BÝˆr�2‰;Œ;€DØ�c‘€JØˆq‚y€yØà
�h�zÑ"Ô"Ñ"ˆð €OØ€EØð *Ý�A‰JŒJˆØ%& q¤TÐ)Ñˆˆt�T˜3 Ø%& q¤TÐ)Ñˆˆt�T˜3 ð €FØ€LØˆc‚z�zà�1Š9‰9Ý ¥4Ñ(Ô(ˆEØ�QŒx�5Ò Ð Ø˜%��å˜u Qœx¨œ{¨5°¬8°A¬;Ñ6¸Ñ=Ô=Ð=�Ø˜Š|ˆ|Ý˜B‘Z”Z�Ý  r¨2Ñ.Ô.�Ý˜A˜q "Ñ%Ô%�Ý ¥8¨B¡<¤<°Ñ4Ô4�Ý ¥w­y¸©}¬}Ñ'=Ô'=¸rÑBÔB�Ý   A rÑ*Ô*�Ø&ð 6Ý" 6¨4°Ñ5Ô5Ð5ð6à˜1’�Ø�g‘�Ý ¥4Ñ(Ô(ˆEØ�QŒx�5Ò Ð Ø˜%��å˜u Qœx¨œ{¨5°¬8°A¬;Ñ6¸Ñ=Ô=Ð=�Ø˜Š|ˆ|Ý˜B‘Z”Z�Ý�G B¨™OœO­X°a©[¬[Ñ9Ô9�Ý¥¨¨u°bÑ 9Ô 9¸1¸bÑAÔA�Ý ¥8¨B¡<¤<°Ñ4Ô4�Ý ¥w­tµY¸r±]´]Ñ'CÔ'CÀRÑHÔH�Ý   A rÑ*Ô*�Ø&ð 6Ý" 6¨4°Ñ5Ô5Ð5ð6à˜1’�Ø�g‘�Ø�2�#Š:ˆ:à�B�r‘E‘ˆBÝ˜1‘:”:ˆDÝ�D $ r¡'Ñ*Ô*ˆCÝ˜4 ¨$Ð/Ñ/Ô/ˆBÝ�7 4¨Ñ-Ô-¨r¸Ð=Ñ=Ô=ˆBÝ�W R¨¨RÑ0Ô0°#°rÑ:Ô:ˆFÝ˜˜6 4¨Ñ-Ô-ˆAØ˜!�WˆFð #ð 2Ý˜v t¨SÑ1Ô1Ð1ð2ð ˜d˜UÑ#ˆLàˆ,Ñ€BÝÕ,¨RÑ/Ñ0Ô0€NØ˜NÒ*€Nå�A�r‰?Œ?€DÝ�A�r‰?Œ?€Dà	€AØñ (LØˆà�.Ò Ð Ý˜2˜r‘?”?ˆDÝ�Q˜¨Ñ*Ñ*¨R°©UÑ2°SÑ8¸2Ñ=Ñ>Ô>ˆAÝ 2™Ð%ˆC�#ÝˆCÝ˜A‘Y”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Ñ$:Ô$:Ð:ˆàñ 	L�˜’‘õ ˜�7 1 b™>œ>¨2Ñ.Ô.ˆAÝ˜7 1œ:Ñ&Ô&ˆCÝ˜7 1œ:Ñ&Ô&ˆCÝ”J˜s 3Ñ'Ô'ˆEå˜1˜Qœ4‘.”.ˆCÝ”
˜3 Ñ$Ô$ˆAØ˜Š|ˆ|Ø˜c‘\ AÑ%��à�T˜C ™E‘\ C¨¡EÑ)¨Cµ´¸±´Ñ,?Ñ?�Ý•D”J  3¡¨­4¬7©Ñ3°CÑ7Ñ8Ô8Ñ9Ô9ˆAØ�1”•w˜q œt¥[µ¸±´¸Q¸q¹SÀ"Ñ%EÔ%EÀrÑJÔJÐKˆAàñ 8)Ø�1Š9ˆ9˜ š	˜	Ý�
 5¨"Ñ-Ô-¨u°bÑ9Ô9ˆAÝ� ™œÑ$Ô$¥eÐ,ˆAØð 3Ø˜1’9�9Ý  6¨2Ñ.Ô.�A�Aå  6¨2Ñ.Ô.�A�Aå˜A�w q¨"™~œ~¨rÑ2Ô2�Øð &Ý˜A˜q "Ñ%Ô%�Ø�qŠyˆy¥¨¨A¨t°SÑ!9Ô!9Ð9Ø�qŠyˆy¥¨¨A¨t°SÑ!9Ô!9Ð9ð �1Š9‰9Øð  Ý˜V‘_”_��å˜Q‘Z”Z�å˜�W¥W¨U¡^¤^°RÑ8Ô8¸"Ñ=Ô=ˆBå   q¤Ñ*Ô*ˆHÝ˜u QœxÑ(Ô(ˆGÝ˜‘”ˆBÝ˜˜HÑ%Ô%ˆAÝ˜A˜w¨Ñ+Ô+ˆAØ�Q”%�  A¤¨¨2Ñ.Ô.Ð/ˆBÝ˜R¥¨¨R¡¤°"Ñ5Ô5ˆBÝ�; u¨hÑ7Ô7¸Ñ<Ô<ˆAÝ˜˜2‘”ˆAÝ˜˜Q Ñ#Ô#ˆBð ð 4Ý˜B¥	¨(Ñ 3Ô 3°RÑ8Ô8�Ø˜”e�W R¨¤U¨A¨rÑ2Ô2Ð3�Ý˜2˜t SÑ)Ô)Ð)ð/ ˆ9ð2 �1Š9ˆ9Øð =Ý�w q¨"™~œ~¨q°$¸Ñ<Ô<Ð<Ý˜1˜d CÑ(Ô(Ð(Ø�1Š9ˆ9Øð =Ý˜q¥'¨!¨R¡.¤.°$¸Ñ<Ô<Ð<Ý�7 1™:œ: t¨SÑ1Ô1Ð1Ø�1Š9ˆ9Ý˜1˜d CÑ(Ô(Ð(ð ˆ9r~   c                 ó&   — t          | ||d¦  «        S rL  ©r  ©rô   rv   rÜ   s      r|   Úmpf_factorialr  W  ó   € Ý�Q˜˜c 1Ñ%Ô%Ð%r~   c                 ó&   — t          | ||d¦  «        S rL  ©r6  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                 óF   — | \  }}}}|rt           ‚t          | ||d¦  «        S )Nrn   )r:   r  )rô   rv   rÜ   rý   rþ   rÿ   r   s          r|   Úmpf_loggammar"  c  s2   € ØÑ€Dˆ#ˆs�BØð ÝÐÝ�Q˜˜c 1Ñ%Ô%Ð%r~   c                 óä   — | \  }}|\  }}}}|\  }	}
}}|t           k    rA|r?t          |||d¦  «        }| | z	  }t          t          |dz   ¦  «        |||¦  «        }||fS t	          | ||d¦  «        S )Nrn   r¥   )r   r  r*   r=   r6  )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€z�e€zÝ�q˜$  QÑ'Ô'ˆØˆU˜˜ÑˆÝ�  R¡™œ¨!¨T°3Ñ7Ô7ˆØ�2ˆvˆÝ�Q˜˜c 1Ñ%Ô%Ð%r~   c                 ó’   — | t           k     rt          t          | dz
           ||¦  «        S t          t	          | ¦  «        ||¦  «        S rL  )rÛ  r$   rÜ  r  r   )r{   rv   rÜ   s      r|   rí   rí   t  sB   € ØÕ%Ò%Ð%ÝÕ,¨Q¨q©SÔ1°4¸Ñ=Ô=Ð=Ý•X˜a‘[”[ $¨Ñ,Ô,Ð,r~   rº   )r¨   r   )r¨   )´Ú__doc__r«   r‡  Ú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&  r5  rN  rQ  Úmpf_zetasumrS  rV  rW  rY  r]  rj  r†  r–  rß  rÞ  rÛ  r®  rº  r–   rÜ  r©  r¯  r¸  r»  rÒ  rÙ  r  r6  r  r  r  r   r"  r$  rí   rÅ   r~   r|   ú<module>r4     sa	  ððð ð €€€Ø 
€
€
€
à Ð Ð Ð Ð Ð Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <à 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð0 ð
ð 
ñ „ð
ðH ðð ñ „ððB ð2ð 2ñ „ð2ðz ðð ñ „ððð* ð ð  ñ „ð ð0 ðð ñ „ðð ðð ñ „ðð2 Ð˜[Ñ)Ô)€	ØÐ˜[Ñ)Ô)€	ØÐ Ñ/Ô/€ØÐ Ñ/Ô/€ØÐ˜}Ñ-Ô-€ØÐ˜}Ñ-Ô-€Ø Ð  Ñ1Ô1€ð Ð ðð@ €Ø€Xˆa�[„[€Ø€Xˆa�[„[€ð2ð 2ð 2ð
 '˜Ð':Ñ;Ô;Ð ðIð Ið Ið IðV	/ð 	/ð 	/ð 	/ðTð Tð Tðz:ð@9ð 9ð 9ð=ð =ð =ð %ð 9)ð 9)ð 9)ð 9)ðv %ð 3ð 3ð 3ð 3ðl 'ð 0ð 0ð 0ð 0ð 'ð <ð <ð <ð <ðJ(ðT €ðð ð ð Ð Ø€à(ð 3.ð 3.ð 3.ð 3.ðj %¨!ð U(ð U(ð U(ð U(ðn %¨!°5ð X1ð X1ð X1ð X1ðt (ð %ð %ð %ð %ð (ð %ð %ð %ð %ð €ð
ð 
ð 
ð €Ø€Ø€
ðð ð ð67ð 7ð 7ðt Ð ðað að aðV Ð à˜uÒ$Ð$Ð$Ð$ð Ð à Ð àÐ ØÐ ð.ð .Ø	ˆÐ)¨!Ñ+Ñ	,Ô	,ð.ñ .ô .Ð ðO+ð O+ð O+ðb7-ð 7-ð 7-ðr/Ið /Ið /Iðb#ð #ð #ð3ð 3ð 3ðjEð Eð EðPK)ð K)ð K)ð K)ð\h)ð h)ð h)ð h)ðT&ð &ð &ð &ð&ð &ð &ð &ð&ð &ð &ð &ð&ð &ð &ð &ð&ð &ð &ð &ð	&ð 	&ð 	&ð 	&ð  *ð -ð -ð -ð -ð -ð -r~   