U
    ZÊ¹j�H  ã                *   @   s`  d Z ddlZddlZddl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d„ Zdd„ Zdd„ Zze d¡ dd„ Zdd„ ZW n$ eefk
r¦   ejZejZY nX eejdd„ ƒZeeejƒZeeejƒZeejejƒZeejejƒZeejejƒZeejejƒZeejejƒZeejejƒZeej ej ƒZ eej!ej!ƒZ!eej"ej"ƒZ"eej#ej#ƒZ#eej$dd„ ƒZ$eej%dd„ ƒZ%edd„ dd„ ƒZ&ed d„ d!d„ ƒZ'd"d#„ Z(d$d%„ Z)d&d'„ Z*d(d)„ Z+d*d+„ Z,ee*e,ƒZ-ee)e+ƒZ.d,d-„ Z/d.d/„ Z0d0Z1e1 Z2e1e1 Z3d1Z4e1d2d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEfZ5e6e5ƒdF Z7dGZ8dHZ9dIdJ„ Z:dKdL„ Z;ee:e;ƒZ<dMdN„ Z=dOdP„ Z>dQdR„ Z?dSdT„ Z@dUdVdWdXdYdZdUd[d\d]g
ZAd^d_„ ZBd`da„ ZCeeBeCƒZDdbdcdddedfdgdhdidjg	dddk… ZEd2dldmdndodpdqdrdsdtg
dddk… ZFdudv„ ZGdwdx„ ZHdydz„ ZId{d|„ ZJd}d~„ ZKdd€„ ZLd�d‚dƒd„d…d†d‡dˆd‰dŠd‹dŒd�dŽd�d�d‘d’d“d”d•d–d—d˜d™dšd›dœd�dždŸd d¡d¢d£d¤d¥d¦d§d¨d©dªg*ZMd«ZNdød­d®„ZOdùd¯d°„ZPdúd±d²„ZQd³d´„ ZRdµd¶d·dd¸d¹dºd»d¼d½d¾d¿dÀdÁdÂdÃdÄdÅdÆdÇdÈdÉdÊdËdÌdÍdÎgZSdÏdÐdÑdÒdÓdÔdÕdÖd×g	dddk… ZTd2dØdÙdÚdÛdÜdÝdÞdßg	dddk… ZUdàdádâdãdädådædçdèdédêgZVdëdìdídîdïdðdñdòdódôdõgZWdöd÷„ ZXdS )ûz÷
This module complements the math and cmath builtin modules by providing
fast machine precision versions of some additional functions (gamma, ...)
and wrapping math/cmath functions so that they can be called with either
real or complex arguments.
é    Ng-DTû!	@giW‹
¿@gÍ;fž ö?g¨ô—›wã@g¨ô—›wãù?gï9úþB.æ?gUµ»±k@g¶oüŒxâ?g]è—Oí?gm<BÎ{@g!ð ;ó?g½¡çHÐPò?c                    s   ‡ ‡fdd„}ˆj |_ |S )Nc              	      sh   t | ƒtkrˆ| ƒS t | ƒtkr(ˆ | ƒS zt| ƒ} ˆ| ƒW S  ttfk
rb   t| ƒ} ˆ | ƒ Y S X d S ©N)ÚtypeÚfloatÚcomplexÚ	TypeErrorÚ
ValueError©ÚxÚkwargs©Ú	f_complexÚf_real© úK/var/www/html/bwave/python/venv/lib/python3.8/site-packages/mpmath/math2.pyÚf   s    
z_mathfun_real.<locals>.f©Ú__name__©r   r   r   r   r   r   Ú_mathfun_real   s    r   c                    s   ‡ ‡fdd„}ˆj |_ |S )Nc              	      sL   t | ƒtkrˆ | ƒS zˆt| ƒƒW S  ttfk
rF   ˆ t| ƒƒ Y S X d S r   )r   r   r   r   r   r   r   r   r   r   +   s    z_mathfun.<locals>.fr   r   r   r   r   Ú_mathfun*   s    r   c                    s   ‡ ‡fdd„}ˆj |_ |S )Nc               	      sD   zˆdd„ | D ƒŽ W S  t tfk
r>   ˆ dd„ | D ƒŽ  Y S X d S )Nc                 s   s   | ]}t |ƒV  qd S r   )r   ©Ú.0r	   r   r   r   Ú	<genexpr>8   s     z(_mathfun_n.<locals>.f.<locals>.<genexpr>c                 s   s   | ]}t |ƒV  qd S r   ©r   r   r   r   r   r   :   s     )r   r   )Úargsr
   r   r   r   r   6   s    z_mathfun_n.<locals>.fr   r   r   r   r   Ú
_mathfun_n5   s    r   g       Àc                 C   s   | dkrt dƒ‚t | ¡S ©Nç        zmath domain error)r   ÚmathÚlog©r	   r   r   r   Úmath_logB   s    r!   c                 C   s   | dk rt dƒ‚t | ¡S r   )r   r   Úsqrtr    r   r   r   Ú	math_sqrtF   s    r#   c                 C   s   t | ƒ| S r   r   )r	   Úyr   r   r   Ú<lambda>N   ó    r%   c                 C   s   t t | j¡t | j¡ƒS r   )r   r   ÚfloorÚrealÚimag©Úzr   r   r   r%   `   r&   c                 C   s   t t | j¡t | j¡ƒS r   )r   r   Úceilr(   r)   r*   r   r   r   r%   b   r&   c                 C   s   t  | ¡t  | ¡fS r   )r   ÚcosÚsinr    r   r   r   r%   e   r&   c                 C   s   t  | ¡t  | ¡fS r   )Úcmathr-   r.   r*   r   r   r   r%   f   r&   c                 C   s   | d S ©NgUUUUUUÕ?r   r    r   r   r   r%   h   r&   c                 C   s   | d S r0   r   r*   r   r   r   r%   h   r&   c              	   C   s@   d| }zt | ƒ| W S  ttfk
r:   t| ƒ|  Y S X d S ©Nç      ð?)r   r   r   r   ©r	   ÚnÚrr   r   r   Únthrootj   s
    r6   c                 C   s‚   | dk rt |  ƒ S t| dƒ\}}|t9 }|d; }|dkrDt |¡S |dkrVt |¡S |dkrjt |¡ S |dkr~t |¡ S d S ©Nr   ç      à?é   é   é   é   )Ú_sinpi_realÚdivmodÚpir   r.   r-   r3   r   r   r   r=   q   s     
 
  r=   c                 C   s|   | dk r|  } t | dƒ\}}|t9 }|d; }|dkr>t |¡S |dkrRt |¡ S |dkrft |¡ S |dkrxt |¡S d S r7   )r>   r?   r   r-   r.   r3   r   r   r   Ú_cospi_real|   s     
   r@   c                 C   sŽ   | j dk rt|  ƒ S t| j dƒ\}}tt|| jƒ } |d; }|dkrPt | ¡S |dkrbt | ¡S |dkrvt | ¡ S |dkrŠt | ¡ S d S r7   )	r(   Ú_sinpi_complexr>   r?   r   r)   r/   r.   r-   ©r+   r4   r5   r   r   r   rA   ‡   s    
 
 
  rA   c                 C   sˆ   | j dk r|  } t| j dƒ\}}tt|| jƒ } |d; }|dkrJt | ¡S |dkr^t | ¡ S |dkrrt | ¡ S |dkr„t | ¡S d S r7   )r(   r>   r?   r   r)   r/   r-   r.   rB   r   r   r   Ú_cospi_complex’   s    
 
   rC   c                 C   sV   zt | ƒt| ƒ W S  tk
rP   t| ƒjdkr6Y dS t| ƒjdk rJY dS ‚ Y nX d S )Né
   ù              ð?ù       €      ð¿)ÚsinpiÚcospiÚOverflowErrorr   r)   r    r   r   r   Útanpi    s    rJ   c                 C   sV   zt | ƒt| ƒ W S  tk
rP   t| ƒjdkr6Y dS t| ƒjdk rJY dS ‚ Y nX d S )NrD   rF   rE   )rH   rG   rI   r   r)   r    r   r   r   Úcotpiª   s    rK   g      ðg      °<r2   ç       @ç      @g      8@g      ^@g     €†@g     °³@g     °ã@g     &Ag    €¯KAg    ¨ƒAg    üŒ¼Ag   ÀŒ2÷Ag   (;L4Bg  €uwsBg  €uw³Bg  Øìî7ôBg  sÊì¾6Cg �h0¹{Cg ZA¾³áÀCr:   é   )	gPùÿÿÿÿï?gÃ¶)$…@gÔŽŽ¬“ÀgØ´Óa–ˆ@g]/£Q®fÀg�œ‹Â)@gU(+™²¼Á¿gO2NNQðä>gï®?�P5„>c                 C   s¸   t | ƒ}|| kr0|dkr tdƒ‚|tkr0t| S | dk rPtt| ƒtd|  ƒ  S | d8 } td }tdt	d ƒD ]}|t| | |  7 }qn| t	 d }d|| d   t
 | ¡ | S d S )Nr   zgamma function poler8   r:   r2   r;   ç'ö“@)ÚintÚZeroDivisionErrorÚ_max_exact_gammaÚ_exact_gammar?   r=   Ú_gamma_realÚ
_lanczos_pÚrangeÚ
_lanczos_gr   Úexp)r	   Ú_intxr5   ÚiÚtr   r   r   rT   Æ   s    rT   c                 C   sž   | j stt| jƒƒS | jdk r6tt| ƒtd|  ƒ  S | d8 } td }tdt	d ƒD ]}|t| | |  7 }qT| t	 d }d|| d   t
 | ¡ | S d S )Nr8   r:   r2   r   r;   rO   )r)   r   rT   r(   r?   rA   Ú_gamma_complexrU   rV   rW   r/   rX   )r	   r5   rZ   r[   r   r   r   r\   Ù   s    
r\   c                 C   s0   zdt | ƒ W S  tk
r*   | d  Y S X d S )Nr2   r   )ÚgammarQ   r    r   r   r   Úrgammaé   s    r^   c                 C   s   t | d ƒS r1   )r]   r    r   r   r   Ú	factorialï   s    r_   c                 C   s(   t | ƒtkrt d| ¡S t | j| j¡S )Nr   )r   r   r   Úatan2r)   r(   r    r   r   r   Úargò   s    ra   c              	   C   sX  t | ƒttfkr>zt| ƒ} W n  ttfk
r<   t| ƒ} Y nX z| j}| j}W n tk
rj   | }d}Y nX |dk �rJt| ƒdk r¢t	t
| ƒƒ}|dkrž| ¡ }|S d|  }z|j}|j}W n tk
rÖ   |}d}Y nX t|ƒ}|dkrîd}n|dk rüd}nd}t d t|ƒ dt|ƒ  t t	t|| ƒƒ t|ƒ dt | |  S | dk�s^| dk�rf| d S d}	t| ƒd	k �r�|	t	| ƒ8 }	| d7 } �qjd
| d t	| ƒ  |  }
d|  }|| }|
d| 7 }
||9 }|
d| 7 }
||9 }|
d| 7 }
||9 }|
d| 7 }
||9 }|
d| 7 }
||9 }|
d| 7 }
||9 }|
d| 7 }
||9 }|
d| 7 }
|
|	 S )Nr   r8   r   r:   éÿÿÿÿrE   r2   rL   é   gµ¾dÈñgí?çUUUUUUµ?glÁlÁf¿g  J?g8�8�C¿g#ÿ+•K?g}<™Ù°j_¿g¤A¤Az?g˜SË†Bž¿)r   r   r   r   r   r(   r)   ÚAttributeErrorÚabsr   r]   Ú	conjugater'   r?   ÚlogpirG   Úloggamma)r	   ZxrealZximagÚvr+   ÚreZimZrefloorZimsignÚpÚsr5   Úr2r   r   r   ri   ø   s|    




 ÿÿÿ       ri   rd   g�¿gAAp?gq¿g|ðÁ?g–Y™•Y™•¿g^^^^^^Ü¿gèæŸ›n@g¥LQÊt:Àc                 C   sª   t | ƒ}|| kr |dkr tdƒ‚| dk r>d|  } tt| ƒ }nd}| dk r`|d|  8 }| d7 } qB| d }|}tD ]$}||| 8 }|dk rŒ q–||9 }qp|t| ƒ d|   S )	Nr   zpolygamma poler8   r2   r   ç      $@éþÿÿÿç#B’¡œÇ;)rP   rQ   r?   rK   Ú
_psi_coeffr!   )r	   rY   rm   Úx2r[   Úcr   r   r   Ú_digamma_real;  s&    

ru   c                 C   sª   | j stt| jƒƒS | jdk r4d|  } tt| ƒ }nd}t| ƒdk rZ|d|  8 }| d7 } q8| d }|}tD ](}||| 8 }t|ƒdk rŠ q”||9 }qj|t 	| ¡ d|   S )Nr8   r2   r   ro   rp   rq   )
r)   r   ru   r(   r?   rK   rf   rr   r/   r   )r	   rm   rs   r[   rt   r   r   r   Ú_digamma_complexQ  s"    


rv   gðÈS  ð?g}^Ð.@gCG­bÓ@gß¸ÊÐGƒ÷?g1”›R5å?gßµÎy¡ÈÊ?gLy×ß~F§?goO$ÀñÔy?gÅ•X”ø3=?rb   ga	oŽ
@ghrÃ—›@g‚íÕ-ý@g¯¡…ÉF@gvª˜#oó?g›Œþ,Ø?gEã¦°uº´?góŸ¿‘ä†?gaôn$háI?c                 C   s*   | d }| dd … D ]}|||  }q|S )Nr   r:   r   )Zcoeffsr	   rl   rt   r   r   r   Ú_polyval‚  s    rw   c                 C   sz   | |  }|  }}d}t |ƒdkrr||| 9 }|||| d  8 }|d7 }||| 9 }|||| d  7 }|d7 }qd| S )Nr:   ç—ÔFFõg<gm›BP×ò?)rf   )r	   rs   rm   r[   r4   r   r   r   Ú_erf_taylorˆ  s    
ry   c                 C   s"   t |  |  ƒtt| ƒ tt| ƒ S r   )rX   rw   Ú_erfc_coeff_PÚ_erfc_coeff_Qr    r   r   r   Ú	_erfc_mid–  s    r|   c                 C   s„   | |  }t | ƒ|  d }d|  }}d}tdddƒD ]D}||8 }|||d  9 }||7 }|||d  9 }t|ƒdk r6 q|q6|| S )	Ngm›BP×â?r8   r2   r:   é   r9   r;   rx   )rX   rV   rf   )r	   rs   rj   r5   r[   rm   r4   r   r   r   Ú_erfc_asympš  s    r~   c                 C   sP   t | ƒ} | | kr| S | dk r(t|  ƒ S | dkrH| dkr<dS dt| ƒ S t| ƒS )z
    erf of a real number.
    r   r2   rM   )r   Úerfr|   ry   r    r   r   r   r   ©  s    r   c                 C   sb   t | ƒ} | | kr| S | dk r6| dk r(dS dt|  ƒ S | dkrFt| ƒS | dkrVt| ƒS dt| ƒ S )z 
    erfc of a real number.
    r   g      ÀrL   g      "@r2   )r   Úerfcr~   r|   ry   r    r   r   r   r€   ¸  s    r€   )gtÖüÁãòï?çd—›sÑp?)gtÖüÁãòï¿r�   )gè+K »ï?çÁr–Ò¹‡ƒ?)gè+K »ï¿r‚   )gÞìvÆVï?ç5ž@}¨�Ž?)gÞìvÆVï¿rƒ   )gLú—“»Æî?ç=Y�¶”?)gLú—“»Æî¿r„   )g²‰j©î?ç{Âíîyš?)g²‰j©î¿r…   )gÛöM•&í?çuý8ó5Ÿ?)gÛöM•&í¿r†   )gÇß˜¾ì?ç�àNå¢?)gÇß˜¾ì¿r‡   )gÒ±,nŸãê?çT!•ü~ƒ¤?)gÒ±,nŸãê¿rˆ   )gqÍE·çˆé?çÇ
ŽsjÎ¦?)gqÍE·çˆé¿r‰   )gu¬=8|
è?çÉöíÎrù¨?)gu¬=8|
è¿rŠ   )gYÖ®¡sjæ?çÊ´þ�«?)gYÖ®¡sjæ¿r‹   )gc#¤«ä?ç1¦Æêã¬?)gc#¤«ä¿rŒ   )gá,ÂÍÎâ?çN@¹à�®?)gá,ÂÍÎâ¿r�   )gÔ¦Væ;Øà?çÛK‘òƒ°?)gÔ¦Væ;Øà¿rŽ   )gW9Þ9”Ý?ç)™Ç°?)gW9Þ9”Ý¿r�   )g’N%ØŸNÙ?çÛ¿¼78a±?)g’N%ØŸNÙ¿r�   )g×„ã£åÔ?ç­ÕôƒŠâ±?)g×„ã£åÔ¿r‘   )g§�Q'p_Ð?ç”÷é,ÛJ²?)g§�Q'p_Ð¿r’   )g^>¢°„Ç?çK†X˜™²?)g^>¢°„Ç¿r“   )g\S…;S¼?çžøQïSÎ²?)g\S…;S¼¿r”   )g|­Íøê¢?çM_6Äè²?)g|­Íøê¢¿r•   g      D@Fc           	      C   sÐ   d|  }d }}d}||| 9 }||7 }t |ƒdk r6q@|d7 }q|t| ƒ |  }|r”t| ƒtkrn| j}| j}n| }d}|dkrÌ|dkrÌ|td 7 }n8t| ƒtkrÌ| jdkr¶|td 7 }| jdk rÌ|td 8 }|S )Nr2   r:   g¼‰Ø—²Òœ<r   rE   r   )rf   rX   r   r   r(   r)   r?   )	r+   Ú_e1r5   rm   r[   Úkrj   ZzrealZzimagr   r   r   Úei_asymp÷  s.    


r˜   c                 C   s–   |  }}d}||  | }|| }t |ƒdk r.q@||7 }|d7 }q|t7 }|r\|t|  ƒ7 }n6t| ƒtksr| jdkr„|tt | ƒƒ7 }n|t | ¡7 }|S )Nr;   rx   r:   r   )rf   Úeulerr   r   r   r)   r!   r/   )r+   r–   rm   r[   r—   Útermr   r   r   Ú	ei_taylor  s    
r›   c              	   C   sB  t | ƒ}|ttfkrJzt| ƒ} t}W n$ ttfk
rH   t| ƒ} t}Y nX | sTt S t| ƒ}|tkrnt| |ƒS |dks†|tkr�| dkr�t	| |ƒS |tkr¶| j
dkr¶| | }t	||ƒ}nt|  | }t||ƒ}||  d }||  d }d}t | ƒtkrütj}	ntj}	tD ]*\}
}||
 | }|||	|ƒ | 7 }�q||| 8 }|S )NrL   r   r8   )r   r   r   r   r   ÚINFrf   ÚEI_ASYMP_CONVERGENCE_RADIUSr˜   r›   r(   r/   rX   r   Úgauss42)r+   r–   ÚtypezZabszZzrefÚrefÚCÚDrm   Ú_expr	   Úwr[   r   r   r   Úei'  s>    



r¥   c              	   C   sx   t | ƒ}t | ƒttfkrNzt| ƒ} t}W n$ ttfk
rL   t| ƒ} t}Y nX |tkrh| jsht| jdƒ} t|  dd� S )Nr   T)r–   )r   r   r   r   r   r)   r(   r¥   )r+   rŸ   r   r   r   Úe1L  s    
r¦   g      à¿r   gÓSb¦Qú?gHØÇ*2Qñ?gÎ|ÊŽA—ð?gE’À„	Gð?g9ÏÚ2"ð?g—cøj³ð?gµØó9ð?g¹[:ãð?g³H¾1ð?gÓ,[
ð?g¼�¬€ ð?gÔÊ+9@ ð?gâ—÷  ð?g²ÞL ð?g´9 ð?gNe²  ð?ga;  ð?g”Å  ð?gÖ•€  ð?g›1@  ð?g»    ð?gZ>   ð?gÇ   ð?gí   ð?gA   ÀgîáêÖpæ¿gp »Ï6±¿gçì|› Up¿gµïÞ ‹%¿gE3†Ô+�Ó¾g’«Áf{¾g'(ø
Þ¾gÑ²GÐ]´½g/"®=øí¿g{õ‰Èû%®¿gh{sr¿g’å9’DÌ"¿glXx‹‚kÕ¾gê%ñÂé¼y¾g†Õ®*·¾geuyÚ-´½g]u:õßô=g h#%ß.J¾g`5'>‹>gø^õ±Ò¹¾gU3 ßì¡¾gPFÓ; ?g„á2¾­M¿g=Æ§_Îšc¿gviT{¼�µ?g†ž\€ãÏÚ?gH$  à?g��ü…È÷½gI„™’™;¾gÑ.kš^­‡>g�P�N«¯¸¾g„/†wðo¥¾gSŒ' ?gº7zƒ2¯M¿g)ÐŽšc¿gËú�»�µ?gˆ|É�ãÏÚ?r8   c                 C   sˆ  t | ttfƒsxzt| ƒ} W n\ ttfk
rv   z&t| ƒ} | jsRtt| jƒƒW  Y S W n ttfk
rl   Y nX t	‚Y nX | dkrˆtdƒ‚| dkr¨dd|    d|    S t| ƒ}|| krÔ|dkrÈt
| S |d sÔd	S | d	k�rd|  t| d   td
|  ƒ td|  ƒ td|  ƒ S | dk�rN| dk�r<tt| ƒ| d  S tt| ƒ| d  S tt| ƒtt| ƒ }dd|    d|    d|   |  S )z.
    Riemann zeta function, real argument
    r:   zzeta(1) poleé   r2   rL   g      @r   r;   r   r8   g      @)Ú
isinstancer   rP   r   r   r   r)   Úzetar(   ÚNotImplementedErrorÚ	_zeta_intr?   r=   rT   rw   Ú_zeta_0Ú_zeta_1Ú_zeta_PÚ_zeta_Q)rm   r4   r+   r   r   r   r©   €  s:    

8

r©   )F)F)F)YÚ__doc__Úoperatorr   r/   r?   ÚeZsqrt2Zsqrt5ÚphiZln2Zln10r™   ÚcatalanZkhinchinZaperyrh   r   r   r   r   r!   r#   r   r   r"   ÚpowrX   r-   r.   ÚtanÚacosÚasinÚatanÚcoshÚsinhÚtanhr'   r,   Zcos_sinZcbrtr6   r=   r@   rA   rC   rH   rG   rJ   rK   rœ   ZNINFZNANZEPSrS   ÚlenrR   rW   rU   rT   r\   r]   r^   r_   ra   ri   rr   ru   rv   Zdigammarz   r{   rw   ry   r|   r~   r   r€   rž   r�   r˜   r›   r¥   r¦   r«   r®   r¯   r­   r¬   r©   r   r   r   r   Ú<module>   sö  
ÿÿÿ



         ý
8ö
÷	÷ö
öÖ,


%                õ   üü   üü     ü      ý