
    "`H                        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 Zd Zd Z	  ej&                  d       d Zd Z eej2                  d       Z eeej&                        Z eeej0                        Z eej4                  ej4                        Z eej6                  ej6                        Z eej8                  ej8                        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jB                  ejB                        Z! eejD                  ejD                        Z" eejF                  ejF                        Z# eejH                  d       Z$ eejJ                  d       Z% ed d       Z& ed d       Z'd Z(d Z)d Z*d Z+d  Z, ee*e,      Z- ee)e+      Z.d! Z/d" Z0d#Z1e1 Z2e1e1z
  Z3d$Z4e1d%d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8fZ5 e6e5      d9z
  Z7d:Z8d;Z9d< Z:d= Z; ee:e;      Z<d> Z=d? Z>d@ Z?dA Z@g dBZAdC ZBdD ZC eeBeC      ZDg dEdddF   ZEg dGdddF   ZFdH ZGdI ZHdJ ZIdK ZJdL ZKdM ZLg dNZMdOZNdZdPZOdZdQZPdZdRZQdS ZRg dTZSg dUdddF   ZTg dVdddF   ZUg dWZVg dXZWdY ZXy# eef$ r ej&                  Zej0                  ZY w xY w)[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{@!;?gHP?c                 8      fd} j                   |_         |S )Nc                     t        |       t        u r |       S t        |       t        u r |       S 	 t        |       }  |       S # t        t        f$ r t        |       }  |       cY S w xY wN)typefloatcomplex	TypeError
ValueErrorxkwargs	f_complexf_reals     ./usr/lib/python3/dist-packages/mpmath/math2.pyfz_mathfun_real.<locals>.f   sn    7e!97gQ<	 aA!9:& 	 
AQ<	 s   A "A-,A-__name__r   r   r   s   `` r   _mathfun_realr      s    
  AJH    c                 8      fd} j                   |_         |S )Nc                     t        |       t        u r |       S 	  t        |             S # t        t        f$ r  t        |             cY S w xY wr   )r   r	   r   r
   r   r   s     r   r   z_mathfun.<locals>.f+   sP    7gQ<	)%(##:& 	)WQZ((	)s   -  AAr   r   s   `` r   _mathfunr   *   s    ) AJHr   c                 8      fd} j                   |_         |S )Nc                  `    	  d | D         S # t         t        f$ r  d | D         cY S w xY w)Nc              3   2   K   | ]  }t        |        y wr   )r   .0r   s     r   	<genexpr>z(_mathfun_n.<locals>.f.<locals>.<genexpr>8   s     3E!H3   c              3   2   K   | ]  }t        |        y wr   r	   r   s     r   r    z(_mathfun_n.<locals>.f.<locals>.<genexpr>:   s     8awqz8r!   )r
   r   )argsr   r   r   s     r   r   z_mathfun_n.<locals>.f6   s>    	:3d344:& 	:84899	:s    --r   r   s   `` r   
_mathfun_nr%   5   s    :
 AJHr   g       c                 L    | dk  rt        d      t        j                  |       S N        zmath domain error)r   mathlogr   s    r   math_logr,   B   s#    8011xx{r   c                 L    | dk  rt        d      t        j                  |       S r'   )r   r)   sqrtr+   s    r   	math_sqrtr/   F   s#    s7011yy|r   c                     t        |       |z  S r   r#   )r   ys     r   <lambda>r2   N   s    GAJM r   c                     t        t        j                  | j                        t        j                  | j                              S r   )r	   r)   floorrealimagzs    r   r2   r2   `   s'    gdjj($**QVV*<= r   c                     t        t        j                  | j                        t        j                  | j                              S r   )r	   r)   ceilr5   r6   r7   s    r   r2   r2   b   s'    gdii'166):; r   c                 V    t        j                  |       t        j                  |       fS r   )r)   cossinr+   s    r   r2   r2   e   s    488A;"< r   c                 V    t        j                  |       t        j                  |       fS r   )cmathr<   r=   r7   s    r   r2   r2   f   s    599Q<1"> r   c                     | dz  S NgUUUUUU? r+   s    r   r2   r2   h   s
    !d) r   c                     | dz  S rA   rB   r7   s    r   r2   r2   h   s
    q4y r   c                 p    d|z  }	 t        |       |z  S # t        t        f$ r t        |       |z  cY S w xY wN      ?)r   r   r
   r	   r   nrs      r   nthrootrJ   j   s@    
1AQx1}	" qzQs    55c                 6   | dk  rt        |         S t        | d      \  }}|t        z  }|dz  }|dk(  rt        j                  |      S |dk(  rt        j
                  |      S |dk(  rt        j                  |       S |dk(  rt        j
                  |       S y Nr         ?            )_sinpi_realdivmodpir)   r=   r<   rG   s      r   rR   rR   q   s    1uQB!S>DAqGAFAAvdhhqk!Avdhhqk!Avtxx{l"Avtxx{l"vr   c                 "   | dk  r|  } t        | d      \  }}|t        z  }|dz  }|dk(  rt        j                  |      S |dk(  rt        j                  |       S |dk(  rt        j                  |       S |dk(  rt        j                  |      S y rL   )rS   rT   r)   r<   r=   rG   s      r   _cospi_realrV   |   s    1uB!S>DAqGAFAAvdhhqk!Avtxx{l"Avtxx{l"Avdhhqk!vr   c                    | j                   dk  rt        |         S t        | j                   d      \  }}t        t	        || j
                        z  } |dz  }|dk(  rt        j                  |       S |dk(  rt        j                  |       S |dk(  rt        j                  |        S |dk(  rt        j                  |        S y rL   )	r5   _sinpi_complexrS   rT   r	   r6   r?   r=   r<   r8   rH   rI   s      r   rX   rX      s    vvzr"""!&&#DAq
71affAFAAveiil"Aveiil"Avuyy|m#Avuyy|m#vr   c                 r   | j                   dk  r|  } t        | j                   d      \  }}t        t        || j                        z  } |dz  }|dk(  rt        j                  |       S |dk(  rt        j                  |        S |dk(  rt        j                  |        S |dk(  rt        j                  |       S y rL   )r5   rS   rT   r	   r6   r?   r<   r=   rY   s      r   _cospi_complexr[      s    vvzB!&&#DAq
71affAFAAveiil"Avuyy|m#Avuyy|m#Aveiil"vr   c                     	 t        |       t        |       z  S # t        $ r6 t        |       j                  dkD  rY yt        |       j                  dk  rY y w xY w)N
                 ?             )sinpicospiOverflowErrorr	   r6   r+   s    r   tanpirc      sR    Qx%("" 1:??R1:??R    !AAAc                     	 t        |       t        |       z  S # t        $ r6 t        |       j                  dkD  rY yt        |       j                  dk  rY y w xY w)Nr]   r_   r^   )ra   r`   rb   r	   r6   r+   s    r   cotpirf      sR    Qx%("" 1:??R1:??Rrd   g      g      <rF          @      @g      8@g      ^@g     @g     @g     @g     &Ag    KAg    Ag    Ag   2Ag   (;L4Bg  uwsBg  uwBg  7Bg  s6Cg h0{Cg ZACrO      )	gP?gö)$@gԎgشa@g]/Qfg)@gU(+gO2NNQ>g?P5>c                    t        |       }|| k(  r"|dk  rt        d      |t        k  r	t        |   S | dk  r!t        t        |       t        d| z
        z  z  S | dz  } t        d   }t        dt        dz         D ]  }|t        |   | |z   z  z  } | t        z   dz   }d|| dz   z  z  t        j                  |       z  |z  S )Nr   zgamma function polerM   rO   rF   rP   '@)intZeroDivisionError_max_exact_gamma_exact_gammarT   rR   _gamma_real
_lanczos_prange
_lanczos_gr)   exp)r   _intxrI   its        r   rp   rp      s    FEzA:#$9::$$&&3w[^K!$4455	SqMq*Q,' 	%AA!$$A	%
NS &QsU3dhhrlBQFFr   c                    | j                   st        t        | j                              S | j                  dk  r!t        t        |       t        d| z
        z  z  S | dz  } t        d   }t        dt        dz         D ]  }|t        |   | |z   z  z  } | t        z   dz   }d|| dz   z  z  t        j                  |       z  |z  S )NrM   rO   rF   r   rP   rk   )r6   r	   rp   r5   rT   rX   _gamma_complexrq   rr   rs   r?   rt   )r   rI   rv   rw   s       r   ry   ry      s    66{166*++vv|^A&~ac'::;;	SqMq*Q,' 	%AA!$$A	%
NS &QsU3eiimCaGGr   c                 H    	 dt        |       z  S # t        $ r | dz  cY S w xY w)NrF   r(   )gammarm   r+   s    r   rgammar|      s-    %({ us    !!c                     t        | dz         S rE   )r{   r+   s    r   	factorialr~      s    3<r   c                     t        |       t        u rt        j                  d|       S t        j                  | j                  | j
                        S )Nr(   )r   r   r)   atan2r6   r5   r+   s    r   argr      s8    Aw%zz#a  ::affQVV$$r   c                 R   t        |       t        t        fvr	 t        |       } 	 | j
                  }| j                  }|dk  rt        |       dk  r+t        t        |             }|dk(  r|j                         }|S d| z
  }	 |j
                  }|j                  }t        |      }|dk(  rd}n
|dk  rd}nd}t         dz  t        |      z  dt        |      z
  z  t        z   t        t        ||z
              z
  t!        |      z
  dt        z  |z  |z  z   S | dk(  s| dk(  r| dz  S d}	t        |       d	k  r"|	t        |       z  }	| dz  } t        |       d	k  r"d
| dz
  t        |       z  z   | z
  }
d| z  }||z  }|
d|z  z  }
||z  }|
d|z  z  }
||z  }|
d|z  z  }
||z  }|
d|z  z  }
||z  }|
d|z  z  }
||z  }|
d|z  z  }
||z  }|
d|z  z  }
||z  }|
d|z  z  }
|
|	z   S # t        t        f$ r t        |       } Y w xY w# t        $ r | }d}Y w xY w# t        $ r |}d}Y w xY w)Nr(   rM   r   rO   r^   rF   rg      gdg?UUUUUU?gllfgJ?g88Cg#+K?g}<ٰj_gAAz?gSˆB)r   r   r	   r   r
   r5   r6   AttributeErrorabsr*   r{   	conjugater4   rT   logpir`   loggamma)r   xrealximagvr8   reimrefloorimsignpsrI   r2s                r   r   r      s   Awug&&	aA s{q6C<E!HAzKKMHaC	BB )9F#XFFBG$aFm4u<ai !"$,QK024R%-2FG 	GCx18s

A
a&2+	SV	S a&2+ 	#s1v~-1A
1A	
1B	 	""AAGA	"1	$$Aa2ga	"1	$$Aa2ga	"1	$$Aa2ga	"1	$$Aa2ga	"1	$$Aa2ga	!!	##AQ"WQ	 	""Aq5Lc I& 	
A	
    	BB	s4   G  H H  G>=G>HHH&%H&)
r   ggAAp?gqg|?gYYr   g^^^^^^ܿg柛n@gLQt:c                 $   t        |       }|| k(  r|dk  rt        d      | dk  rd| z
  } t        t        |       z  }nd}| dk  r|d| z  z  }| dz  } | dk  r| dz  }|}t        D ]  }|||z  z  }|dk  r n||z  } |t        |       z   d| z  z
  S )	Nr   zpolygamma polerM   rF   r(         $@#B;)rl   rm   rT   rf   
_psi_coeffr,   )r   ru   r   x2rw   cs         r   _digamma_realr   ;  s    FEzA:#$4553wEuQxK
d(	SU
	S d( 
BB
A 	QqSu9	R	
 x{?SU""r   c                    | j                   st        t        | j                              S | j                  dk  rd| z
  } t        t        |       z  }nd}t        |       dk  r|d| z  z  }| dz  } t        |       dk  r| dz  }|}t        D ]  }|||z  z  }t        |      dk  r n||z  }! |t        j                  |       z   d| z  z
  S )NrM   rF   r(   r   r   r   )
r6   r	   r   r5   rT   rf   r   r   r?   r*   )r   r   r   rw   r   s        r   _digamma_complexr   Q  s    66}QVV,--vv|EuQxK
a&4-	SU
	S a&4- 
BB
A 	QqSq6E>	R	
 uyy|c!e##r   )	gS  ?g}^.@gCGb@g߸G?g1R5?gߵy?gLy~F?goO$y?gŕX3=?r   )
rF   ga	o
@ghr@g-@gF@gv#o?g,?gE㦰u?g󟿑?gan$hI?c                 4    | d   }| dd  D ]
  }|||z  z   } |S )Nr   rO   rB   )coeffsr   r   r   s       r   _polyvalr     s2    q	AABZ !GHr   c                     | | z  }| x}}d}t        |      dkD  rE|||z  z  }||||z   dz   z  z  }|dz  }|||z  z  }||||z   dz   z  z  }|dz  }t        |      dkD  rEd|z  S )NrO   FFg<gmBP?)r   )r   r   r   rw   rH   s        r   _erf_taylorr     s    	
1BIA	A
a&5.	RT		Q!AY	Q	RT		Q!AY	Q a&5. !""r   c                 d    t        |  | z        t        t        |       z  t        t        |       z  S r   )rt   r   _erfc_coeff_P_erfc_coeff_Qr+   s    r   	_erfc_midr     s*    r!t9XmA..xa/HHHr   c                     | | z  }t        |       | z  dz  }d|z  x}}d}t        ddd      D ]6  }||z  }|||dz   z  z  }||z  }|||dz   z  z  }t        |      dk  s2 ||z  S  ||z  S )	NgmBP?rM   rF   rO      rN   rP   r   )rt   rr   r   )r   r   r   rI   rw   r   rH   s          r   _erfc_asympr     s    	
1BRC
))A"HAA1R] 	Q	Q!A#Y	Q	Q!A#Yq6E>q5L q5Lr   c                     t        |       } | | k7  r| S | dk  rt        |         S | dk\  r| dk\  rydt        |       z
  S t        |       S )z
    erf of a real number.
    r(   rF   rh   )r   erfr   r   r+   s    r   r   r     sW     	aAAv3wQBxCx8Yq\!!q>r   c                     t        |       } | | k7  r| S | dk  r| dk  rydt        |        z
  S | dkD  rt        |       S | dk\  rt        |       S dt	        |       z
  S )z 
    erfc of a real number.
    r(   g      rg   g      "@rF   )r   erfcr   r   r   r+   s    r   r   r     sk     	aAAv3wt848|3w1~Cx|Q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@c                    d| z  }dx}}d}	 |||z  z  }||z  }t        |      dk  rn|dz  }"|t        |       z  | z  }|rFt        |       t        u r| j                  }| j
                  }n| }d}|dk(  r|dkD  r|t        dz  z  }|S t        |       t        u r6| j
                  dkD  r|t        dz  z  }| j
                  dk  r|t        dz  z  }|S )NrF   rO   gؗҜ<r(   r^   r   )r   rt   r   r	   r5   r6   rT   )	r8   _e1rI   r   rw   kr   zrealzimags	            r   ei_asympr     s    
1AKA	A
	QqS	Qq6E>	Q  	
#a&
A
7gFFEFFEEEC<ECKBJA H 7gvvzRU
vvzRU
Hr   c                 <   | x}}d}	 || z  |z  }||z  }t        |      dk  rn||z  }|dz  }'|t        z  }|r|t        |        z  }|S t        |       t        u s| j
                  dk(  r|t        t        |             z  }|S |t        j                  |       z  }|S )NrP   rO   r   r(   )r   eulerr*   r   r   r6   r,   r?   )r8   r   r   rw   r   terms         r   	ei_taylorr     s    IA	A
aCEst9u	T		Q  JA
	S!W H	 7eqvv}#a&!!A H 1AHr   c                    t        |       }|t        t        fvr	 t        |       } t        }| st
         S t        |       }|t        kD  rt        | |      S |dk  s|t        u r| dkD  rt        | |      S |t        u r!| j                  dkD  r| |z  }t        ||      }nt        | z  |z  }t        ||      }|| z
  dz  }|| z   dz  }d}t        |       t        u rt        j                  }	nt        j                  }	t        D ]  \  }
}||
z  |z   }|| |	|      z  |z  z  }  |||z  z  }|S # t        t        f$ r t        |       } t        }Y  w xY w)Nrg   r(   rM   )r   r   r	   r
   r   INFr   EI_ASYMP_CONVERGENCE_RADIUSr   r   r5   r?   rt   r)   gauss42)r8   r   typezabszzrefrefCDr   _expr   wrw   s                r   eir   '  se   GEUG$$	aAE tq6D))3	%AGC   AFFSL4xc"*Q.5tS!	aA	aAAAw'yyxx !aCE	QtAwYq[ 1Q3JCJ; :& 	
AE	s   D) ) EEc                 (   t        |       }t        |       t        t        fvr	 t        |       } t        }|t        u r"| j
                  st        | j                  d      } t        |  d       S # t        t        f$ r t        |       } t        }Y [w xY w)Nr(   T)r   )r   r   r	   r
   r   r6   r5   r   )r8   r   s     r   e1r   L  s     GEAwug&&	aAE AFFC rt :& 	
AE	s   A. . BB)g      r(   gSbQ?r   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])	rF   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|ɐ?rM   c                    t        | t        t        f      s	 t        |       } | dk(  rt        d      | dk\  rdd|  z  z   d|  z  z   S t        |       }|| k(  r|dk\  r	t        |   S |dz  sy	| d	k  r?d| z  t        | dz
  z  z  t        d
| z        z  t        d| z
        z  t        d| z
        z  S | dk  r1| dk  rt        t        |       | dz
  z  S t        t         |       | dz
  z  S t        t"        |       t        t$        |       z  }dd|  z  z   d|  z  z   d|  z  |z  z   S # t        t        f$ rZ 	 t        |       } | j                  s t        t        | j                              cY S 	 t        # t        t        f$ r Y t        w xY ww xY w)z.
    Riemann zeta function, real argument
    rO   zzeta(1) pole   rF   rg   g      @r   rP   r(   rM   g      @)
isinstancer   rl   r   r
   r	   r6   zetar5   NotImplementedError	_zeta_intrT   rR   rp   r   _zeta_0_zeta_1_zeta_P_zeta_Q)r   rH   r8   s      r   r   r     s    a%&		&aA 	Av((BwSA2Yr**AAAv6Q<ACx1uR!A#Y{3q511+ac2BB4!9LLCx8GA&!,,"AaC((hwq11Ar?SA2Y&r1443 I& 	&AJvv"4<00  &% 	* %%	&s5   D! !F
14E/%F
)F
/F>F
FF
)F)Y__doc__operatorr)   r?   rT   esqrt2sqrt5philn2ln10r   catalankhinchinaperyr   r   r   r%   r*   r,   r/   r   r
   r.   powrt   r<   r=   tanacosasinatancoshsinhtanhr4   r:   cos_sincbrtrJ   rR   rV   rX   r[   ra   r`   rc   rf   r   NINFNANEPSro   lenrn   rs   rq   rp   ry   r{   r|   r~   r   r   r   r   r   digammar   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rB   r   r   <module>r     s      
  	DHHTN 9:599%	5::&DHHeii(DHHeii(DHHeii(DHHeii(		5::&		5::&TYY

+TYY

+TYY

+TYY

+djj=	?TYY;= <>@ #%89	#	"	$	# 	k>2k>2 t	#gS#sCueVW
Iz;m#%68J-/
 |$Q&  
I
G&H 	k>2%5n

#,$( '7
8	  $t	%
  $t
%#I "*/X # 8(#J 	 B$	  B$	 BC
 5m 	I xxH		Is   K
 
K-,K-