§
    JŠtj´F  ã                   ó   — d dl mZ  G d„ de¦  «        Zd„ Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed	„ ¦   «         Z	ed
„ ¦   «         Z
ed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed8d„¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed9d„¦   «         Zed:d„¦   «         Zed „ ¦   «         Zed!„ ¦   «         Zed"„ ¦   «         Zed#„ ¦   «         Z ed$„ ¦   «         Z!ed%„ ¦   «         Z"ed&„ ¦   «         Z#ed;d(„¦   «         Z$ed)„ ¦   «         Z%ed*„ ¦   «         Z&ed+„ ¦   «         Z'ed,„ ¦   «         Z(d-„ Z)dd'l*Z*dd'l+Z+d.„ Z,d/„ Z-ed9d0„¦   «         Z.ed8d1„¦   «         Z/d:d2„Z0ed3„ ¦   «         Z1ed4„ ¦   «         Z2ed5„ ¦   «         Z3ed:d6„¦   «         Z4ed:d7„¦   «         Z5d'S )<é   )Úxrangec                   ó~   — e Zd ZdZi ZdZd„ Zed„ ¦   «         Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚSpecialFunctionsa  
    This class implements special functions using high-level code.

    Elementary and some other functions (e.g. gamma function, basecase
    hypergeometric series) are assumed to be predefined by the context as
    "builtins" or "low-level" functions.
    gËPÊÿÿï?c           
      óz  — | j         }|j        D ])}|j        |         \  }}|                     |||¦  «         Œ*|                      d¦  «        | _        |                      d¦  «        | _        |                      d¦  «        | _        |                      d¦  «        | _        |                      d¦  «        | _        |                      d¦  «        | _	        |                      d¦  «        | _
        |                      d¦  «        | _        |                      d	¦  «        | _        |                      d
¦  «        | _        |                      d¦  «        | _        |                      d¦  «        | _        |                      d¦  «        | _        |                      d¦  «        | _        |                      d¦  «        | _        |                      d¦  «        | _        |                      d¦  «        | _        i | _        | j                             ddddddddœ¦  «         |                      | j        ¦  «        | _        d S )N)é   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
   ÚargÚconjÚrootÚpsiÚzetaÚfibÚfac)ÚphaseÚ	conjugateÚnthrootÚ	polygammaÚhurwitzÚ	fibonacciÚ	factorial)Ú	__class__Údefined_functionsÚ_wrap_specfunÚ_mpqÚmpq_1Úmpq_0Úmpq_1_2Úmpq_3_2Úmpq_1_4Úmpq_1_16Úmpq_3_16Úmpq_5_2Úmpq_3_4Úmpq_7_4Úmpq_5_4Úmpq_1_3Úmpq_2_3Úmpq_4_3Úmpq_1_6Úmpq_5_6Úmpq_5_3Ú_misc_const_cacheÚ_aliasesÚupdateÚmemoizeÚzetazeroÚzetazero_memoized)ÚselfÚclsÚnameÚfÚwraps        úX/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/mpmath/functions/functions.pyÚ__init__zSpecialFunctions.__init__   së  € ØŒnˆØÔ)ð 	-ð 	-ˆDØÔ+¨DÔ1‰GˆAˆtØ×Ò˜d A tÑ,Ô,Ð,Ð,à—Y’Y˜uÑ%Ô%ˆŒ
Ø—Y’Y˜uÑ%Ô%ˆŒ
Ø—y’y Ñ'Ô'ˆŒØ—y’y Ñ'Ô'ˆŒØ—y’y Ñ'Ô'ˆŒØŸ	š	 &Ñ)Ô)ˆŒØŸ	š	 &Ñ)Ô)ˆŒØ—y’y Ñ'Ô'ˆŒØ—y’y Ñ'Ô'ˆŒØ—y’y Ñ'Ô'ˆŒØ—y’y Ñ'Ô'ˆŒØ—y’y Ñ'Ô'ˆŒØ—y’y Ñ'Ô'ˆŒØ—y’y Ñ'Ô'ˆŒØ—y’y Ñ'Ô'ˆŒØ—y’y Ñ'Ô'ˆŒØ—y’y Ñ'Ô'ˆŒà!#ˆÔàŒ×ÒØØ ØØØð
  Øð
ð 
ñ 	ô 	ð 	ð "&§¢¨d¬mÑ!<Ô!<ˆÔÐÐó    c                 ó(   — t          | ||¦  «         d S ©N)Úsetattr)r:   r;   r<   r=   s       r>   r    zSpecialFunctions._wrap_specfun=   s   € å��T˜1ÑÔÐÐÐr@   c                 ó   — t           ‚rB   ©ÚNotImplementedError©ÚctxÚnÚzs      r>   Ú_besseljzSpecialFunctions._besseljD   s   € Õ#6Ð6r@   c                 ó   — t           ‚rB   rE   ©rH   rJ   s     r>   Ú_erfzSpecialFunctions._erfE   s   € Õ/Ð/r@   c                 ó   — t           ‚rB   rE   rM   s     r>   Ú_erfczSpecialFunctions._erfcF   ó   € Õ0Ð0r@   c                 ó   — t           ‚rB   rE   )rH   rJ   Úas      r>   Ú_gamma_upper_intz!SpecialFunctions._gamma_upper_intG   s   € Õ+>Ð%>r@   c                 ó   — t           ‚rB   rE   rG   s      r>   Ú_expint_intzSpecialFunctions._expint_intH   s   € Õ&9Ð 9r@   c                 ó   — t           ‚rB   rE   ©rH   Úss     r>   Ú_zetazSpecialFunctions._zetaI   rQ   r@   c                 ó   — t           ‚rB   rE   )rH   rY   rS   rI   ÚderivativesÚreflects         r>   Ú_zetasum_fastzSpecialFunctions._zetasum_fastJ   s   € ÕATÐ;Tr@   c                 ó   — t           ‚rB   rE   rM   s     r>   Ú_eizSpecialFunctions._eiK   ó   € Õ.Ð.r@   c                 ó   — t           ‚rB   rE   rM   s     r>   Ú_e1zSpecialFunctions._e1L   ra   r@   c                 ó   — t           ‚rB   rE   rM   s     r>   Ú_cizSpecialFunctions._ciM   ra   r@   c                 ó   — t           ‚rB   rE   rM   s     r>   Ú_sizSpecialFunctions._siN   ra   r@   c                 ó   — t           ‚rB   rE   rX   s     r>   Ú_altzetazSpecialFunctions._altzetaO   s   € Õ 3Ð3r@   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚTHETA_Q_LIMr?   Úclassmethodr    rK   rN   rP   rT   rV   rZ   r^   r`   rc   re   rg   ri   © r@   r>   r   r      sÂ   € € € € € ðð ð Ðð
 €Kð(=ð (=ð (=ðV ðð ñ „[ðð 7Ð6Ð6Ø/Ð/Ð/Ø0Ð0Ð0Ø>Ð>Ð>Ø9Ð9Ð9Ø0Ð0Ð0ØTÐTÐTØ.Ð.Ð.Ø.Ð.Ð.Ø.Ð.Ð.Ø.Ð.Ð.Ø3Ð3Ð3Ð3Ð3r@   r   c                 ó2   — | dft           j        | j        <   | S )NT©r   r   rj   ©r<   s    r>   Údefun_wrappedrt   Q   s   € Ø56¸°WÕÔ& q¤zÑ2Ø€Hr@   c                 ó2   — | dft           j        | j        <   | S )NFrr   rs   s    r>   Údefunrv   U   s   € Ø56¸°XÕÔ& q¤zÑ2Ø€Hr@   c                 ó<   — t          t          | j        | ¦  «         | S rB   )rC   r   rj   rs   s    r>   Údefun_staticrx   Y   s   € ÝÕ˜aœj¨!Ñ,Ô,Ð,Ø€Hr@   c                 ó<   — | j         |                      |¦  «        z  S rB   )ÚoneÚtanrM   s     r>   Úcotr|   ]   ó   € Øœ #§'¢'¨!¡*¤*Ñ,Ð,r@   c                 ó<   — | j         |                      |¦  «        z  S rB   )rz   ÚcosrM   s     r>   Úsecr€   `   r}   r@   c                 ó<   — | j         |                      |¦  «        z  S rB   )rz   ÚsinrM   s     r>   Úcscrƒ   c   r}   r@   c                 ó<   — | j         |                      |¦  «        z  S rB   )rz   ÚtanhrM   s     r>   Úcothr†   f   ó   € Øœ 3§8¢8¨A¡;¤;Ñ.Ð.r@   c                 ó<   — | j         |                      |¦  «        z  S rB   )rz   ÚcoshrM   s     r>   ÚsechrŠ   i   r‡   r@   c                 ó<   — | j         |                      |¦  «        z  S rB   )rz   ÚsinhrM   s     r>   Úcschr�   l   r‡   r@   c                 óT   — |s
| j         dz  S |                      | j        |z  ¦  «        S )Nç      à?)ÚpiÚatanrz   rM   s     r>   Úacotr’   o   s.   € àð %ØŒv˜‰|Ðà�xŠx˜œ !™Ñ$Ô$Ð$r@   c                 ó<   — |                       | j        |z  ¦  «        S rB   )Úacosrz   rM   s     r>   Úasecr•   v   ó   € ØŸš #¤'¨A¡+Ñ.Ô.Ð.r@   c                 ó<   — |                       | j        |z  ¦  «        S rB   )Úasinrz   rM   s     r>   Úacscr™   y   r–   r@   c                 óT   — |s
| j         dz  S |                      | j        |z  ¦  «        S )Ny              à?)r�   Úatanhrz   rM   s     r>   Úacothrœ   |   s.   € àð &ØŒv˜‰}Ðà�yŠy˜œ 1™Ñ%Ô%Ð%r@   c                 ó<   — |                       | j        |z  ¦  «        S rB   )Úacoshrz   rM   s     r>   ÚasechrŸ   „   ó   € ØŸ)š) C¤G¨a¡KÑ0Ô0Ð0r@   c                 ó<   — |                       | j        |z  ¦  «        S rB   )Úasinhrz   rM   s     r>   Úacschr£   ‡   r    r@   c                 óÖ   — |                       |¦  «        }|r|                      |¦  «        r|S |                      |¦  «        r|dk    r| j        S | j         S |t	          |¦  «        z  S )Nr	   )ÚconvertÚisnanÚ_is_real_typerz   Úabs©rH   Úxs     r>   Úsignr«   Š   sn   € à�Š�A‰Œ€AØð �—	’	˜!‘”ð ØˆØ
×Ò˜ÑÔð ØˆqŠ5ˆ5Ø”7ˆNà”G�8ˆOØ�s�1‰vŒv‰:Ðr@   r   c                 ó¸   — |dk    r|                       |¦  «        S |                      |¦  «        }|                      |¦  «        }|                      ||¦  «        S ©Nr   )Úagm1r¥   Ú_agm)rH   rS   Úbs      r>   Úagmr±   –   sK   € àˆA‚v€vØ�xŠx˜‰{Œ{ÐØ�Š�A‰Œ€AØ�Š�A‰Œ€AØ�8Š8�A�q‰>Œ>Ðr@   c                 ót   — |                       |¦  «        rd|z  S |s|dz   S |                      |¦  «        |z  S r­   )Úisinfr‚   r©   s     r>   Úsincr´   ž   sB   € à
‡y‚y��|„|ð Ø�‰sˆ
Øð Ø�‰sˆ
Ø�7Š7�1‰:Œ:�a‰<Ðr@   c                 ó„   — |                       |¦  «        rd|z  S |s|dz   S |                      |¦  «        | j        |z  z  S r­   )r³   Úsinpir�   r©   s     r>   Úsincpir·   ¦   sI   € à
‡y‚y��|„|ð Ø�‰sˆ
Øð Ø�‰sˆ
Ø�9Š9�Q‰<Œ<˜œ ™Ñ"Ð"r@   c                 ó    ‡ ‡— ‰s‰ j         S ‰                      ‰¦  «        ‰ j         k     r‰d‰dz  z  z   S ‰                      ˆ ˆfd„d¦  «        S )Nr�   r   c                  óL   •— t          ‰                      ‰¦  «        dg¦  «        S ©Néÿÿÿÿ)ÚiterÚexpr©   s   €€r>   ú<lambda>zexpm1.<locals>.<lambda>·   s   ø€ ¥d¨C¯GªG°A©J¬J°r¨?Ñ&;Ô&;€ r@   r   )ÚzeroÚmagÚprecÚsum_accuratelyr©   s   ``r>   Úexpm1rÃ   ¯   sa   øø€ àð ØŒxˆà
‡w‚wˆq�z„z�S”X�IÒÐØ�3�q˜!‘t‘8‰|Ðà×ÒÐ;Ð;Ð;Ð;Ð;¸AÑ>Ô>Ð>r@   c                 óÎ   — |s| j         S |                      |¦  «        | j         k     r|d|dz  z  z
  S |                      |                      d|d| j        z  ¬¦  «        ¦  «        S )Nr�   r   r   ©rÁ   )r¿   rÀ   rÁ   ÚlogÚfaddr©   s     r>   Úlog1prÈ   ¹   sf   € àð ØŒxˆØ
‡w‚wˆq�z„z�S”X�IÒÐØ�3�q˜!‘t‘8‰|ÐØ�7Š7�3—8’8˜A˜q q¨¬¡z�8Ñ2Ô2Ñ3Ô3Ð3r@   c                 óf  ‡‡— | j         }| j        }‰‰z  |z
  } ||¦  «        }|dk    r|S |s‰r‰dv r|                      ‰¦  «        r|S ‰|z
  } |‰¦  «        }|                      ‰¦  «        }	| ||	¦  «        z   | j         k     r|	‰z  |	‰z  dz  dz  z   S |                      ˆˆfd„d¦  «        S )Niøÿÿÿ)r   r»   y              ð?y       €      ð¿r   c                  ó,   •— t          ‰ ‰z  dg¦  «        S rº   )r¼   )rª   Úys   €€r>   r¾   zpowm1.<locals>.<lambda>Õ   s   ø€ ¥d¨A¨q©D°"¨:Ñ&6Ô&6€ r@   r   )rÀ   rz   ÚisintÚlnrÁ   rÂ   )
rH   rª   rË   rÀ   rz   ÚwÚMÚx1ÚmagyÚlnxs
    ``       r>   Úpowm1rÓ   Á   sç   øø€ à
Œ'€CØ
Œ'€CØ	ˆ1‰ˆs‰
€AØˆˆA‰Œ€Aàˆ2‚v€vØˆàð Øð 	�qÐ,Ð,Ð,°·²¸1±´Ð,ØˆHØ	
ˆS‰€BØˆ3ˆq‰6Œ6€DØ
�&Š&�‰)Œ)€Càˆcˆc�#‰hŒh�˜#œ(˜Ò"Ð"Ø�1‰u˜˜A™ ‘z !‘|Ñ#Ð#à×ÒÐ6Ð6Ð6Ð6Ð6¸Ñ:Ô:Ð:r@   c                 ó   — t          |¦  «        }t          |¦  «        }||z  }|s| j        S d|z  |k    r| j         S d|z  |k    r| j        S d|z  d|z  k    r| j         S |                      d|                      |¦  «        z  |z  ¦  «        S )Nr   r   r
   )Úintrz   ÚjÚexpjpiÚmpf)rH   ÚkrI   s      r>   Ú_rootof1rÚ   ×   s˜   € åˆA‰Œ€AÝˆA‰Œ€AØˆ�F€AØð ØŒwˆØ	
ˆ1‰�ŠˆØ”ˆxˆØ	
ˆ1‰�ŠˆØŒuˆØ	
ˆ1‰��!‘ŠˆØ”ˆvˆØ�:Š:�a˜Ÿš ™
œ
‘l 1‘nÑ%Ô%Ð%r@   r	   c                 óâ  — t          |¦  «        }|                      |¦  «        }|r´|dz  rRd|z  |dz
  k    rF|                      |¦  «        s1|                      |¦  «        dk     r|                      | |¦  «         S | j        }	 | xj        dz  c_        |                      ||d¦  «        |                      ||¦  «        z  }|| _        n# || _        w xY w|
 S |                      ||¦  «        S )Nr   r   r	   é
   )rÕ   r¥   ÚimÚrer   rÁ   rÚ   Ú_nthroot)rH   rª   rI   rÙ   rÁ   Úvs         r>   r   r   æ   sí   € åˆA‰Œ€AØ�Š�A‰Œ€AØð à�‰Eð 	$�a˜‘c˜Q˜q™S’j�j¨3¯6ª6°!©9¬9�j¸3¿6º6À!¹9¼9Àqº=¸=Ø—H’H˜a˜R ‘O”OÐ#Ð#àŒxˆð	ØˆHŒH˜‰NˆHŒHØ—’˜˜A˜qÑ!Ô! C§L¢L°°AÑ$6Ô$6Ñ6ˆAàˆCŒHˆHø�tˆCŒHˆOˆOˆOˆOØˆrˆ	Ø�<Š<˜˜1ÑÔÐs   Â>C Ã	CFc                 óþ   ‡ ‡‡— ‰ j         Š‰ j        }	 ‰ xj        dz  c_        |rˆ ˆˆfd„t          ‰¦  «        D ¦   «         }nˆ ˆfd„t          ‰¦  «        D ¦   «         }|‰ _        n# |‰ _        w xY wd„ |D ¦   «         S )NrÜ   c                 ó\   •— g | ](} ‰|‰¦  «        d k    ¯‰                      |‰¦  «        ‘Œ)S ©r   ©rÚ   )Ú.0rÙ   rH   ÚgcdrI   s     €€€r>   ú
<listcomp>zunitroots.<locals>.<listcomp>ÿ   s6   ø€ ÐFÐFÐF q¸¸¸A¸a¹¼ÀAº¸�—’˜a Ñ"Ô"¸¸¸r@   c                 ó<   •— g | ]}‰                      |‰¦  «        ‘ŒS rp   rä   )rå   rÙ   rH   rI   s     €€r>   rç   zunitroots.<locals>.<listcomp>  s'   ø€ Ð5Ð5Ð5 q�—’˜a Ñ"Ô"Ð5Ð5Ð5r@   c                 ó   — g | ]}|
 ‘ŒS rp   rp   )rå   rª   s     r>   rç   zunitroots.<locals>.<listcomp>  s   € ˆ?ˆ?ˆ?�1ˆQˆBˆ?ˆ?ˆ?r@   )Ú_gcdrÁ   Úrange)rH   rI   Ú	primitiverÁ   rà   ræ   s   ``   @r>   Ú	unitrootsrí   ø   s¢   øøø€ à
Œ(€CØŒ8€DðØˆŒ�B‰ˆŒØð 	6ØFÐFÐFÐFÐFÐF­E°!©H¬HÐFÑFÔFˆAˆAð 6Ð5Ð5Ð5Ð5­E°!©H¬HÐ5Ñ5Ô5ˆAàˆŒˆø�4ˆŒˆˆˆˆØˆ?˜ˆ?‰?Œ?Ðs   “AA' Á'	A0c                 ó¬   — |                       |¦  «        }|                      |¦  «        }|                      |¦  «        }|                      ||¦  «        S rB   )r¥   Ú_reÚ_imÚatan2)rH   rª   rÞ   rÝ   s       r>   r   r     sC   € à�Š�A‰Œ€AØ	�Š�‰Œ€BØ	�Š�‰Œ€BØ�9Š9�R˜ÑÔÐr@   c                 óF   — t          |                      |¦  «        ¦  «        S rB   )r¨   r¥   r©   s     r>   Úfabsró     s   € åˆs�{Š{˜1‰~Œ~ÑÔÐr@   c                 ó^   — |                       |¦  «        }t          |d¦  «        r|j        S |S )NÚreal)r¥   Úhasattrrõ   r©   s     r>   rÞ   rÞ     s/   € à�Š�A‰Œ€AÝˆq�&ÑÔð ØŒvˆØ€Hr@   c                 óh   — |                       |¦  «        }t          |d¦  «        r|j        S | j        S )NÚimag)r¥   rö   rø   r¿   r©   s     r>   rÝ   rÝ     s1   € à�Š�A‰Œ€AÝˆq�&ÑÔð ØŒvˆØŒ8€Or@   c                 óz   — |                       |¦  «        }	 |                     ¦   «         S # t          $ r |cY S w xY wrB   )r¥   r   ÚAttributeErrorr©   s     r>   r   r      sH   € à�Š�A‰Œ€AðØ�{Š{‰}Œ}ÐøÝð ð ð Øˆˆˆðøøøs   —+ «:¹:c                 óV   — |                       |¦  «        |                      |¦  «        fS rB   )ró   r   rM   s     r>   Úpolarrü   (  s!   € à�HŠH�Q‰KŒK˜Ÿš ™œÐ$Ð$r@   c                 óB   — | | j         |                      |¦  «        Ž z  S rB   )ÚmpcÚcos_sin)rH   ÚrÚphis      r>   Úrectr  ,  s"   € àˆwˆsŒw˜Ÿš CÑ(Ô(Ð)Ñ)Ð)r@   Nc                 ó¢   — |€|                       |¦  «        S | j        dz   }|                       ||¬¦  «        |                       ||¬¦  «        z  S )Né   rÅ   )rÍ   rÁ   )rH   rª   r°   Úwps       r>   rÆ   rÆ   0  sM   € à€yØ�vŠv�a‰yŒyÐØ	Œ�B‰€BØ�6Š6�!˜"ˆ6ÑÔ §¢ q¨r Ñ 2Ô 2Ñ2Ð2r@   c                 ó.   — |                       |d¦  «        S )NrÜ   )rÆ   r©   s     r>   Úlog10r  7  s   € à�7Š7�1�b‰>Œ>Ðr@   c                 óX   — |                       |¦  «        |                       |¦  «        z  S rB   )r¥   )rH   rª   rË   s      r>   Úfmodr	  ;  s!   € à�;Š;�q‰>Œ>˜CŸKšK¨™NœNÑ*Ð*r@   c                 ó   — || j         z  S rB   ©Údegreer©   s     r>   Údegreesr  ?  ó   € àˆsŒz‰>Ðr@   c                 ó   — || j         z  S rB   r  r©   s     r>   Úradiansr  C  r  r@   c                 óð   — |s|s|S | j         |z   S || j        k    r |dk    r|S |d|z  | j        z  | j        z  z   S || j         k    r| d|z  dz   | j        z  | j        z  z   S |                      |¦  «        S )Nr	   r   r   )ÚninfÚinfr�   rÖ   rÍ   )rH   rJ   rÙ   s      r>   Ú_lambertw_specialr  G  s•   € àð Øð 	ØˆHØŒx˜!‰|ÐØˆCŒG‚|€|Ø�Š6ˆ6ØˆHà�q˜‘s˜3œ6‘z #¤%Ñ'Ñ'Ð'ØˆCŒH‚}€}Ø��q˜‘s˜1‘u˜cœf‘n S¤UÑ*Ñ*Ð*à�6Š6�!‰9Œ9Ðr@   c                 ó  — d}t          | d¦  «        r6t          | j        ¦  «        }| j        }|r	d|dk     z  }t          |¦  «        }nt          | ¦  «        }d}d}|sd}t	          ||¦  «        } |dk    �rd|cxk     rdk     r´n n±d|cxk     rdk     r¤n n¡|rD|d	k    rd
d| dz
  z  z   S |dk    rdd| dz
  z  z   S |dk     rdd| dz
  z  z   S |dk     rdd| dz
  z  z   S |dk     r|dk    rdd| dz   z  z   S dd| dz   z  z   S d}|s||k    r|} |dk     rdd | |z
  d!z  z  z   d"| |z
  z  z
  S |d!k     r| S d#d$| z  z   S |s0|dk    r*t          j        |¦  «        }t          j        |¦  «        }�nt          j        | ¦  «        }t          j        |¦  «        }nß|dk    rÙd}|s||cxk     rdk     rn n|} |dk    r-|d%k     r'd&|cxk     rdk     rn ndd | |z
  d!z  z  z
  d"| |z
  z  z
  S |s=d|cxk    rdk     r0n n-t          j        | ¦  «        }|t          j        | ¦  «        z
  S |dk    r |s|dk     rt          j        | ¦  «        d'z
  }nt          j        | ¦  «        d(z
  }t          j        |¦  «        }||z
  ||z  z   ||d)z
  z  d)|d)z  z  z  z   S )*Nr	   rø   r»   g        g      Àg      @g      ð¿g      @ç      ð?yÕxé&1ì?¤p=
×£ä?yh‘í|?5¾?ƒÀÊ¡EÆ¿y      è?      @g      Ð?y)\�Âõ(à?é&1¬Ê?y      Ø?L7‰A`åÀ¿y      è?      à?yÕxé&1ì?¤p=
×£ä¿yh‘í|?5¾?ƒÀÊ¡EÆ?y      è?      Àg      Ð¿y)\�Âõ(à?é&1¬Ê¿y      Ø?L7‰A`åÀ?y      è?      à¿g      à¿y'1¬ZÔ¿q=
×£põ?yçû©ñÒMæ¿`åÐ"Ûùâ¿r   y'1¬ZÔ¿q=
×£põ¿yçû©ñÒMæ¿`åÐ"Ûùâ?g2ï,6V‹×¿gš™™™™™É¿gµÿ¶õ4§@r�   g}tp¹¸þü?gš™™™™™É?g333333Ó?gš™™™™™¹?g333333ã¿y        -DTû!	@y        -DTû!@r   )rö   Úfloatrõ   rø   ÚcomplexÚmathrÆ   Úcmath)rJ   rÙ   Ú	imag_signrª   rË   r   ÚL1ÚL2s           r>   Ú_lambertw_approx_hybridr  Z  sU  € Ø€IÝˆq�&ÑÔð 	Ý�!”&‰MŒMˆØŒFˆØð 	(Ø  Q¢™ˆIÝ�!‰HŒHˆˆå�!‰HŒHˆØˆØˆ	àð ØˆÝ��!‰Œ€AØˆA‚v�vØ�!ˆ>ˆ>Š>ˆ>�cŠ>ˆ>ˆ>ˆ>ˆ>˜d Q˜n˜nšn˜n¨šn˜n˜n˜n˜nØð Uà�t’8�8 \°lÀQÈ	Á]Ñ5SÑ$SÐSØ�t’8�8 \°lÀQÈ	Á]Ñ5SÑ$SÐSØ�u’9�9 l°|ÀaÈÁmÑ6TÑ%TÐTØ�u’9�9 l°|ÀaÈÁmÑ6TÑ%TÐTà�4ŠxˆxØ ’>�>Ø(¨]¸Q¸q¹SÑ,AÑAÐAà(¨]¸Q¸q¹SÑ,AÑAÐAà"ˆAØð  1 q¢5 5Ø�à�4ŠxˆxØÐ,¨a°©c°C©ZÑ7Ñ7Ð:JÈAÈaÉCÑ:PÑPÐPà�3Šwˆw˜q˜à˜˜Q™‘;ÐØð 	2˜q 3šw˜wÝ”˜!‘”ˆB¥4¤8¨B¡<¤<˜b™bå”˜1‘”ˆB¥E¤I¨b¡M¤M˜r˜rØ	
ˆbŠˆàˆØð 	˜q 1˜{˜{š{˜{ sš{˜{˜{˜{˜{ØˆAØ˜ŠNˆN  C¢ ¨D°1¨O¨OªO¨O°tªO¨O¨O¨O¨OØÐ(¨!¨A©#°©Ñ3Ñ3Ð6FÈÈ!ÉÑ6LÑLÐLØð 	˜t q˜˜š˜¨3š˜˜˜˜Ý”˜1˜"‘”ˆBØ�œ " ™œÑ%Ð%à˜BŠˆ¨ˆ¨q°3ªw¨wÝ”Y˜q‘\”\Ð$7Ñ7��å”Y˜q‘\”\Ð$7Ñ7�Ý”˜2‘”ˆBØ�‰7�R˜‘U‰?˜R  A¡™Y¨¨"¨a©%©Ñ0Ñ0Ð0r@   c                 ó  ‡ ‡‡‡— ‰                       ‰¦  «        }d|cxk     rdk     �r`n �n\d|cxk     rdk     �rNn �nJ|dk     �r%t          ‰dz   ¦  «        dk     �r|dk    s@|d	k    r‰                      ‰¦  «        dk    s!|dk    �râ‰                      ‰¦  «        dk     �rÈ‰                      ˆ ˆfd
„¦  «        }‰                       |¦  «         }‰ xj        |z  c_        ‰                      d‰ j        ‰z  dz   z  ¦  «        }‰ xj        |z  c_        ‰                      d	¦  «        ‰                      d¦  «        dœŠ‰                      d¦  «        ‰                      d	¦  «        dœ}|dk    r| }‰ j        }	t          t          d|¦  «        ¦  «        D ]»Š‰‰vr}‰                      ˆˆfd„t          d‰¦  «        D ¦   «         ¦  «        |‰<   ‰dz
  ‰‰dz
           dz  |‰dz
           dz  z   z  ‰dz   z  |‰         dz  z
  ‰‰dz
           ‰dz   z  z
  ‰‰<   ‰‰         |‰z  z  }
|	|
z  }	‰                       |
¦  «        | k     r|	dfc S ‰dz  ŠŒ¼‰ xj        |dz  z  c_        |	dfS |dk    s|d	k    rt          ‰|¦  «        dfS |dk    r;|d	k     r
‰d‰z
  z  dfS ‰                      ‰¦  «        }‰                      |¦  «        }n§|d	k    ri‰                      ‰¦  «        sTd‰                      ‰¦  «        cxk     rdk     r4n n1‰                      ‰ ¦  «        }|‰                      | ¦  «        z
  dfS ‰                      ‰¦  «        d‰ j        z  |z  z   }‰                      |¦  «        }||z
  ||z  z   ||dz
  z  d|dz  z  z  z   dfS )z£
    Return rough approximation for W_k(z) from an asymptotic series,
    sufficiently accurate for the Halley iteration to converge to
    the correct value.
    iöÿÿÿi„  iüÿÿiè  r   gï,6V‹×?gš™™™™™©?r	   r»   c                  ó2   •— ‰‰                       d¦  «        gS rº   )r½   rM   s   €€r>   r¾   z"_lambertw_series.<locals>.<lambda>¥  s   ø€ °A°s·w²w¸r±{´{Ð3C€ r@   r   r   c              3   óF   •K  — | ]}‰|         ‰‰d z   |z
           z  V — ŒdS )r   Nrp   )rå   rÖ   ÚlÚus     €€r>   ú	<genexpr>z#_lambertw_series.<locals>.<genexpr>µ  s7   øè è € Ð'KÐ'K¸!¨¨!¬¨Q¨q°©s°1©u¬X©Ð'KÐ'KÐ'KÐ'KÐ'KÐ'Kr@   r   TFgï,6V‹×¿y               @)rÀ   r¨   rð   rÂ   rÁ   ÚsqrtÚerØ   r¿   r   ÚmaxÚfsumr  rÍ   rï   r�   )rH   rJ   rÙ   ÚtolÚmagzÚdeltaÚcancellationÚprS   rY   Útermr  r  r"  r#  s   ``           @@r>   Ú_lambertw_seriesr/  ™  sÞ  øøøø€ ð �7Š7�1‰:Œ:€DØˆdÐÐÒÐ�SÒÑÐÐÑ˜u qÐ/Ð/Ò/Ð/¨4Ò/Ñ/Ð/Ð/Ñ/à�!Š8‰8�˜AÐ.Ñ.Ñ/Ô/°$Ò6Ñ6Ø�AŠvˆv˜!˜rš'˜' c§g¢g¨a¡j¤j°A¢o oØ˜qš&™& c§g¢g¨a¡j¤j°1¢n¡nØ×*Ò*Ð+CÐ+CÐ+CÐ+CÐ+CÑDÔD�Ø #§¢¨¡¤˜�Ø�”˜LÑ(�”à—H’H˜Q ¤ a¡¨¡	™]Ñ+Ô+�Ø�”˜LÑ(�”Ø—w’w˜r‘{”{ c§g¢g¨a¡j¤jÐ1Ð1�Ø—w’w˜q‘z”z S§W¢W¨R¡[¤[Ð1Ð1�Ø˜’6�6Ø˜�AØ”H�õ  ¥ A lÑ 3Ô 3Ñ4Ô4ð ð �AØ �z�zØ"ŸxšxÐ'KÐ'KÐ'KÐ'KÐ'K½vÀaÈ¹{¼{Ð'KÑ'KÔ'KÑKÔK˜˜!™Ø ! !¡ a¨¨!©¤f¨Q¡h¨q°°1±¬v°a©xÑ&7Ñ8¸!¸A¹#Ñ>¸qÀ¼tÀA¹vÑEÀaÈÈ!ÉÄfÈaÐPQÉcÁlÑR˜˜!™Ø˜Qœ4 ! Q¡$™;�DØ˜‘I�AØ—w’w˜t‘}”}¨ tÒ+Ð+Ø  $˜w˜˜˜Ø˜‘F�A�AØ�”˜L¨!™OÑ+�”Ø˜%�x�Ø�Š6ˆ6�Q˜"’W�WÝ*¨1¨aÑ0Ô0°%Ð7Ð7ØˆA‚v€vØ�"Š9ˆ9Ø�a˜‘c‘7˜E�>Ð!Ø�VŠV�A‰YŒYˆØ�VŠV�B‰ZŒZˆˆØ	
ˆbŠˆ˜#Ÿ'š' !™*œ*ˆÐ+<¸s¿wºwÀq¹z¼zÐ+MÐ+MÒ+MÐ+MÈAÒ+MÐ+MÐ+MÐ+MÐ+MØ�VŠV�Q�B‰ZŒZˆØ�C—F’F˜B˜3‘K”KÑ Ð&Ð&ð �VŠV�A‰YŒY˜˜CœF™ 1™Ñ$ˆØ�VŠV�B‰ZŒZˆØ�‰7�R˜‘U‰?˜R  A¡™Y¨¨"¨a©%©Ñ0Ñ0°%Ð7Ð7r@   c                 óÀ  — |                       |¦  «        }t          |¦  «        }|                      |¦  «        st          | ||¦  «        S | j        }| xj        d|                      |pd¦  «        z   z  c_        | j        }|dz
  }t          | |||¦  «        \  }}|s¹|                      d¦  «        }t          d¦  «        D ]v}	|  	                    |¦  «        }
||
z  }||z
  }||||
z   ||z   |z  ||z  |z   z  z
  z  z
  }|                      ||z
  ¦  «        |                      |¦  «        |z
  k    r|} n|}Œw|	dk    r|  
                    d|z  ¦  «         || _        |
 S )Nr  r   r   r   éd   z1Lambert W iteration failed to converge for z = %s)r¥   rÕ   Úisnormalr  rÁ   rÀ   r/  rØ   r   r½   Úwarn)rH   rJ   rÙ   rÁ   r  r)  rÎ   ÚdoneÚtwoÚiÚewÚwewÚwewzÚwns                 r>   Úlambertwr;  Ï  st  € à�Š�A‰Œ€AÝˆA‰Œ€AØ�<Š<˜‰?Œ?ð ,Ý   a¨Ñ+Ô+Ð+ØŒ8€DØ€H„H��S—W’W˜Q˜V !‘_”_Ñ$Ñ$€H„HØ	Œ€BØ
ˆq‰&€CÝ˜s A q¨#Ñ.Ô.�G€A€tØð Nà�gŠg�a‰jŒjˆÝ˜‘”ð 		ð 		ˆAØ—’˜‘”ˆBØ�B‘$ˆCØ�q‘5ˆDØ�T˜3˜r™6 1 S¡5¨$¡,°°A±°c±	Ñ":Ñ:Ñ;Ñ;ˆBØ�wŠw�r˜!‘t‰}Œ} §¢¨¡¤¨cÑ 1Ò1Ð1Ø�Ø�à��Ø�Š8ˆ8Ø�HŠHÐHÈ1ÑLÑMÔMÐMØ€C„HØˆ2€Ir@   c                 óò  — |                       |¦  «        }|s/|                      |¦  «        r|S  t          |¦  «        d¦  «        S |                      |¦  «        s?|                      |¦  «        s*|                      |¦  «        s|                      |¦  «        r||z  S |dk    r|S |dk    r||dz   z  S |dk    r|                      |¦  «        S t          | ||d¦  «        |                      |¦  «        z  S )Nr   r   r	   T)r¥   r¦   Útyper³   r·   Ú_polyexpr½   )rH   rI   rª   s      r>   Úbellr?  ì  sï   € à�Š�A‰Œ€AØð Ø�9Š9�Q‰<Œ<ð 	ØˆHØ�t�A‰wŒw�q‰zŒzÐØ
‡y‚y��|„|ð �s—y’y ‘|”|ð  s§y¢y°¡|¤|ð °s·y²yÀ±|´|ð Ø�!‰tˆØˆA‚v€v�aˆxØˆA‚v€v�a˜˜1™‘gˆ~ØˆA‚v€v�c—j’j ‘m”mÐ#Ý�C˜˜A˜tÑ$Ô$ s§w¢w¨q¡z¤zÑ1Ð1r@   c                 óH   ‡ ‡‡‡— ˆ ˆˆˆfd„}‰                       |d¬¦  «        S )Nc               3   ót   •K  — ‰r‰                      ‰¦  «        V — ‰} d}	 |‰z  | z  V — |dz  }| ‰z  |z  } Œr­   )r·   )ÚtrÙ   rH   ÚextrarI   rª   s     €€€€r>   Ú_termsz_polyexp.<locals>._termsû  s`   øè è € Øð 	 Ø—*’*˜Q‘-”-ÐÐÐØˆØˆð	Ø�Q‘$˜‘(ˆNˆNˆNØ�‰FˆAØ�!‘�A‘ˆAð	r@   r   )Ú
check_step)rÂ   )rH   rI   rª   rC  rD  s   ```` r>   r>  r>  ú  sI   øøøø€ ðð ð ð ð ð ð ð ð ×Ò˜f°ÐÑ3Ô3Ð3r@   c                 ó¦  — |                       |¦  «        s?|                       |¦  «        s*|                      |¦  «        s|                      |¦  «        r||z  S |dk    r||z  S |dk    r|                      |¦  «        S |dk    r|                      |¦  «        |z  S |dk    r|                      |¦  «        |z  |dz   z  S t	          | ||¦  «        S )Nr	   r   r   )r³   r¦   rÃ   r½   r>  )rH   rY   rJ   s      r>   ÚpolyexprG    sÌ   € à
‡y‚y��|„|ð �s—y’y ‘|”|ð  s§y¢y°¡|¤|ð °s·y²yÀ±|´|ð Ø�!‰tˆØˆA‚v€v�a˜‘cˆzØˆA‚v€v�c—i’i ‘l”lÐ"ØˆA‚v€v�c—g’g˜a‘j”j ‘lÐ"ØˆA‚v€v�c—g’g˜a‘j”j ‘l A a¡CÑ(Ð(Ý�C˜˜AÑÔÐr@   c                 óÄ  — t          |¦  «        }|dk     rt          d¦  «        ‚| j        }|dk    r|S |dk    r||z
  S |dk    r||z   S d}d}d}d}t          d|dz   ¦  «        D ]b}||z  s[|                      ||z  ¦  «        }	|                      ||¦  «         }
|
r	||
|	z  z  }ŒA|	dk    r||z  }|dz  }ŒR|	dk    r
||z  }|dz  }Œc|r||k    r|dz  }n
||z  }||z  }|S )Nr	   zn cannot be negativer   r   r»   )rÕ   Ú
ValueErrorrz   rë   ÚmoebiusrÓ   )rH   rI   rJ   r-  Úa_prodÚb_prodÚ	num_zerosÚ	num_polesÚdrÎ   r°   s              r>   Ú
cyclotomicrP    sK  € åˆA‰Œ€AØˆ1‚u€uÝÐ/Ñ0Ô0Ð0ØŒ€AØˆA‚v€vØˆØˆA‚v€vØ�1‰uˆØˆA‚v€vØ�1‰uˆð €FØ€FØ€IØ€IÝ�1�Q�q‘S‰\Œ\ð #ð #ˆØ�1‰uð 	#Ø—’˜A˜q™DÑ!Ô!ˆAð —’˜1˜a‘”Ð ˆAØð #Ø�Q˜‘T‘	��à˜’6�6Ø˜a‘K�FØ ‘N�I�IØ˜"’W�WØ˜a‘K�FØ ‘N�Iøàð Ø�yÒ Ð Ø�‰FˆAˆAà�‰KˆAØ�‰KˆAØ€Hr@   c                 óV  — t          |¦  «        }|dk     r| j        S |dz  dk    r||dz
  z  dk    r| j        
 S | j        S dD ]O}||z  sH||z  d}}|dk    r$t          ||¦  «        \  }}|r	| j        c S |dk    °$|                      |¦  «        c S ŒP|                      |¦  «        r|                      |¦  «        S |dk    rt          ‚d}	 t          |d|z  z  dz   ¦  «        }|dk     r| j        S ||z  |k    r*|                      |¦  «        r|                      |¦  «        S |dz  }Œ^)a—  
    Evaluates the von Mangoldt function `\Lambda(n) = \log p`
    if `n = p^k` a power of a prime, and `\Lambda(n) = 0` otherwise.

    **Examples**

        >>> from mpmath import *
        >>> mp.dps = 25; mp.pretty = True
        >>> [mangoldt(n) for n in range(-2,3)]
        [0.0, 0.0, 0.0, 0.0, 0.6931471805599453094172321]
        >>> mangoldt(6)
        0.0
        >>> mangoldt(7)
        1.945910149055313305105353
        >>> mangoldt(8)
        0.6931471805599453094172321
        >>> fsum(mangoldt(n) for n in range(101))
        94.04531122935739224600493
        >>> fsum(mangoldt(n) for n in range(10001))
        10013.39669326311478372032

    r   r	   r   )
r
   r   r   é   é   é   é   é   é   é   l       ©7§3M“e'r  r�   )rÕ   r¿   Úln2ÚdivmodrÍ   ÚisprimerF   )rH   rI   r-  Úqr   rÙ   s         r>   Úmangoldtr]  ;  so  € õ0 	ˆA‰Œ€AØˆ1‚u€uØŒxˆØˆ1�u�‚z€zà��!‘‰9˜Š>ˆ>Ø”G�8ˆOà”8ˆOð
 *ð ð ˆØ�1‰uð 	Ø˜‘6˜1ˆqˆAØ�a’%�%Ý˜a ‘|”|‘��1Øð $Øœ8�O�O�Oð �a’%�%ð —6’6˜!‘9”9ÐÐÐð	ð ‡{‚{�1�~„~ð Ø�vŠv�a‰yŒyÐàˆ6‚z€zÝ!Ð!Ø	€AðÝ��B�q‘D‘	˜C‘Ñ Ô ˆØˆqŠ5ˆ5Ø”8ˆOØ�‰6�QŠ;ˆ;Ø�{Š{˜1‰~Œ~ð !Ø—v’v˜a‘y”yÐ Ø	ˆQ‰ˆðr@   c                 ó®   — |                       t          |¦  «        t          |¦  «        ¦  «        }|rt          |¦  «        S |                      |¦  «        S rB   )Ú
_stirling1rÕ   rØ   ©rH   rI   rÙ   Úexactrà   s        r>   Ú	stirling1rb  w  óD   € à�Š•s˜1‘v”v�s 1™vœvÑ&Ô&€AØð Ý�1‰vŒvˆà�wŠw�q‰zŒzÐr@   c                 ó®   — |                       t          |¦  «        t          |¦  «        ¦  «        }|rt          |¦  «        S |                      |¦  «        S rB   )Ú
_stirling2rÕ   rØ   r`  s        r>   Ú	stirling2rf    rc  r@   rã   )r	   )FrB   )6Úlibmp.backendr   Úobjectr   rt   rv   rx   r|   r€   rƒ   r†   rŠ   r�   r’   r•   r™   rœ   rŸ   r£   r«   r±   r´   r·   rÃ   rÈ   rÓ   rÚ   r   rí   r   ró   rÞ   rÝ   r   rü   r  rÆ   r  r	  r  r  r  r  r  r  r/  r;  r?  r>  rG  rP  r]  rb  rf  rp   r@   r>   ú<module>ri     s  ðØ "Ð "Ð "Ð "Ð "Ð "ðL4ð L4ð L4ð L4ð L4�vñ L4ô L4ð L4ð\ð ð ðð ð ðð ð ð Ø ,Ð ,ñ „Ø ,àØ ,Ð ,ñ „Ø ,àØ ,Ð ,ñ „Ø ,àØ .Ð .ñ „Ø .àØ .Ð .ñ „Ø .àØ .Ð .ñ „Ø .àð%ð %ñ „ð%ð Ø .Ð .ñ „Ø .àØ .Ð .ñ „Ø .àð&ð &ñ „ð&ð Ø 0Ð 0ñ „Ø 0àØ 0Ð 0ñ „Ø 0àð	ð 	ñ „ð	ð ðð ð ñ „ðð ðð ñ „ðð ð#ð #ñ „ð#ð ð?ð ?ñ „ð?ð ð4ð 4ñ „ð4ð ð;ð ;ñ „ð;ð* ð&ð &ñ „ð&ð ðð ð ñ „ðð" ðð ð ñ „ðð ðð ñ „ðð ðð ñ „ðð ðð ñ „ðð ðð ñ „ðð ðð ñ „ðð ð%ð %ñ „ð%ð ð*ð *ñ „ð*ð ð3ð 3ð 3ñ „ð3ð ðð ñ „ðð ð+ð +ñ „ð+ð ðð ñ „ðð ðð ñ „ððð ð ð  €€€Ø €€€ð=1ð =1ð =1ð~48ð 48ð 48ðl ðð ð ñ „ðð8 ð2ð 2ð 2ñ „ð2ð
4ð 
4ð 
4ð 
4ð ðð ñ „ðð ð(ð (ñ „ð(ðT ð9ð 9ñ „ð9ðv ðð ð ñ „ðð ðð ð ñ „ðð ð r@   