U
    9%eH                  *   @   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 ZLddddddddddddddddddddddddddddddddddddddddddg*ZMdZNdddZOdddZPdddZQdd ZRdddddddddddddddddddddddddddgZSdddddddddg	dddk ZTd2ddddddddg	dddk ZUdddddddddddgZVdddddddddddgZWdd 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?gw@gw?g9B.?gUk@gox?g]O?gm<B{@g!;?gHP?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/Darija-Ai-API/env/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rt|  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rt| 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   2Ag   (;L4Bg  uwsBg  uwBg  7Bg  s6Cg h0{Cg ZACr:      )	gP?gö)$@gԎgشa@g]/Qfg)@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 rt	t
| }|dkr| }|S d|  }z|j}|j}W n tk
r   |}d}Y nX t|}|dkrd}n|dk rd}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      gdg?UUUUUU?gllfgJ?g88Cg#+K?g}<ٰj_gAAz?gSˆ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qg|?gYYg^^^^^^ܿg柛n@gLQt: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   gS  ?g}^.@gCGb@g߸G?g1R5?gߵy?gLy~F?goO$y?gŕX3=?rb   ga	o
@ghr@g-@gF@gv#o?g,?gE㦰u?g󟿑?gan$hI?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<gmBP?)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 )	NgmBP?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sp?)gtr   )g+K ?rҹ?)g+K r   )gvV?5@}?)gvVr   )gL?=Y?)gLr   )gj?{y?)gjr   )gM&?u85?)gM&r   )g?N?)gr   )gұ,n?T!~?)gұ,nr   )gqE?
sjΦ?)gqEr   )gu=8|
?r?)gu=8|
r   )gY֮sj?ʴ?)gY֮sjr   )gc#?1?)gc#r   )g,?N@?)g,r   )gԦV;?K?)gԦV;r   )gW99?)ǰ?)gW99ݿr   )gN%؟N?ۿ78a?)gN%؟Nٿr   )gׄ??)gׄԿr   )gQ'p_?,J?)gQ'p_пr   )g^>?KX?)g^>ǿr   )g\S;S?QSβ?)g\S;Sr   )g|?M_6?)g|ꢿr   g      D@Fc           	      C   s   d|  }d }}d}||| 9 }||7 }t |dk r6q@|d7 }q|t|  |  }|rt| 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rt	| |S |tkr| j
dkr| | }t	||}nt|  | }t||}||  d }||  d }d}t | tkrt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SbQ?gH*2Q?g|ʎA?gE	G?g92"?gcj?g9?g[:?gH1?g,[
?g ?g+9@ ?g  ?gL ?g9 ?gNe  ?ga;  ?g  ?g֕  ?g1@  ?g    ?gZ>   ?g   ?g   ?gA   gpgp 6g| Upg %gE3+Ӿgf{g'(
gѲG]g/"=g{%gh{srg9D"glXxkվg%ygծ*geuy-g]u:=g h#%.Jg`5'>>g^ҹgU3 gPF; ?g2Mg=Ƨ_ΚcgviT{?g\?gH$  ?ggI;g.k^>gPNg/wogS' ?g7z2Mg)cg?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rtd| dkrdd|    d|    S t| }|| kr|dkrt
| S |d sd	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
	
,


%                                 