
    g:                        d dl mZ ddlmZ ddlmZmZmZ ed-d            Zed.d            Z	ed             Z
ed	             Zg d
Zd Zed/d            Zed             Zed             Zed             Zed             Zed             Zed             Zed0d            Zd Zd Zd Zd Zed             Zed0d            Zed0d            Zed             Zed             Zed1d             Zed2d!            Z d" Z!d# Z"ed gdfd$            Z#edgd fd%            Z$d& Z%d' Z&d( Z'd) Z(ed3d+            Z)ed,             Z*dS )4    )print_function   )xrange   )defundefun_wrappeddefun_staticc                 @   	                                                                 dk     r                     d          S t           d          r j        }n	i x} _        dk    r+dk    r j        
 S |v r|         \  }}| j        k    r|
 S d	 	fd} j        }	 dk    r&d _                             |d j        gd	          	|d
z   t          dz            z    _                             |d j        gd	          } 	                              z  dz  z   	                              dz   z  dz   z  z
  d|z  z  	z  z   }| _        n# | _        w xY wdk    r! 
                              r j        |f|<   |
 S )Nr   z&Stieltjes constants defined for n >= 0stieltjes_cacher   c                     | z  }|j         z
                      j         | z  z
            z  z  d|dz  z   z                      dj        z  | z            dz
  z  }                    |          z  S Nr   r   )jlnexppi_re)xxavactxmagns      Q/var/www/html/ai-engine/env/lib/python3.11/site-packages/mpmath/functions/zeta.pyfzstieltjes.<locals>.f   sy    qSXsvvaai((!++Qr1uW5swwqxz7J7J17LMwwqzzC    2         )	maxdegree
         ?r   )convert
bad_domainhasattrr   eulerprecquadinfintr   isint)
r   r   r   r   r'   sr   origr   r   s
   ```      @r   	stieltjesr.      s   AAAA1uu~~FGGGs%&& 3-022#-Avv66I:%a(GD!sxr	
C                8D
 r66CH((1qkQ(77C"9s1c6{{*HHQ37rH22FF1IIqL!A#QqS!11Q3!77!A#a%)C4Avv#))A,,v!h]2Is   .B4E* *	E3c                 \   t          |          }|| j        k    s|| j        k    r,|dk     r|| j        k    r|dk    r| j        S | j        S | j        S |dk    r|                     |          r`|                     dd|z  z             }|                     dd|z  z
            }|                     | j                   dz  |z  d||z
  z  z
  S |                     |          r|S |                     |                     dd|z  z                       |                     | j                  dz  |z  z
  S |dk    rd|dz
  z  | 	                    |dz
  dd|z  z
            z  }d|dz
  z  | 	                    |dz
  dd|z  z             z  }|                     |          r4|dk    r&d| 
                    | j                  z  d||z   z  z   S d||z   z  S |dk    r9|                     d| 
                    | j                  z  d||z   z  z             S |                     d||z   z            S d S )Nr   r         ?y              ?             r         )r*   r)   ninfzero_imloggammar   r   isinf	polygammalogr   )r   t
derivativedr   bs         r   siegelthetar>   ,   s,   JA	
cgchq55CH}}ax7N8OAvv771:: 	KT$q&[))AT$q&[))AFF36NN?1$Q&qs33yy|| 773<<T!V4455svq8H8JJJ1uuacN3==1d46k:::QqSM#--!T$q&[999771:: 		+AvvCGGCFOO+D!A#J66QqSz!AvvwwtCGGCFOO3D!A#J>???wwtQqSz*** ur   c           	           d j         z                       d                     dz  dz   d j        z  z            z             z  }                      fd|          S )Nr   r      c                 D                         |           j        z  z
  S N)r>   r   )r:   r   r   s    r   <lambda>zgrampoint.<locals>.<lambda>S   s    #//!"4"4SVAX"= r   )r   r   lambertwefindroot)r   r   gs   `` r   	grampointrH   N   sg     	
#&3<<1Q35(9:::;;;A<<=====qAAAr   c           
          t          |                    dd                    }                     |          }                     |          }                     |          } j        }	 t          |          d|z  k    rK|dz  |k     rB                     ||          }                     |          r                     |          S |S n# t          $ r Y nw xY w xj        dz  c_         
                                         |                    }                     d j        |z  z             |dk    r9|z  }| _                             |          r                     |          S |
 S                      d j        |z  z   d                               |d          |dk    rG j        |z  z  z   z  }| _                             |          r                     |          S |
 S                      d j        |z  z   d                               |d          dz   j        z  z
  |dk    rYfd	}	                     |	d          }| |z  }| _                             |          r                     |          S |
 S  xj        d
z  c_                             d j        |z  z   d                               |d          dz  d j        z  z  z  z
  z
  |dk    rcfd}	                     |	d          } j         |z  |z  }| _                             |          r                     |          S |
 S                      d j        |z  z   d                               |d           fd}	                     |	d          |dk    r] f
d}	                     |	d          }||z  }| _                             |          r                     |          S |
 S |dk    r  fd}
                     |
||dz
            S d S )Nr;   r     r      r"   r   r;   c                       dz  z   z  gS Nr    )comb1theta1zz1z2s   r   termszsiegelz.<locals>.termsz   s    bDKQuW--r   r!   r   c                  2    dz  z  dz   z  z  z   gS )Nr   rO   )rP   comb2rQ   rR   rS   rT   z3s   r   rU   zsiegelz.<locals>.terms   s(    vXb[!B$u*b5j99r      c                  b    dz  d j         z  dz  z  z  ddz  z  dz  z   j         z  gS )NrY   r   r   )r   rQ   theta2theta3theta4s   r   rU   zsiegelz.<locals>.terms   sH    	2ce8FAI-f4blvIfceFl, 	,r   c                  `   
 ddz  z  z  dj         z  z  z  dz  z  dz   z  	z  gS )N   r   r[   rY   r^   )
rW   comb3r   rQ   r_   rR   rS   rT   rX   z4s
   r   rU   zsiegelz.<locals>.terms   sJ    vqy[^RXb[%76"2eR5* *r   c                 2                         | d          S )NrY   rL   )siegelz)r   r   s    r   rC   zsiegelz.<locals>.<lambda>   s    ckk!k22 r   )r   )r*   getr#   r   r5   r'   absrs_z_is_real_typeNotImplementedErrorexpjr>   zetar   sum_accuratelydiff)r   r:   kwargsr<   t1t2r'   r   e1rU   hrP   rW   rd   rQ   r_   r`   ra   rR   rS   rT   rX   re   s   `          @@@@@@@@@@@@r   rg   rg   V   s   FJJ|Q''((AAA	B	B8Dr77SX"a%"**AA  ## "wwqzz!H   HHNHH	#//!$$	%	%BSU1WAAvvqDQ 	771::r		#ceAg+!	,	,B__Q1_--FAvvU2Xr!F({#Q 	771::r		#ceAg+!	,	,B__Q1_--FAIceFl"EAvv	. 	. 	. 	. 	. 	. 	. 	. 	.ua((SUQ 	771::r	HHNHH	#ceAg+!	,	,B__Q1_--FAIagfnV++F2EAvv	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:ua((eVBYq[Q 	771::r		#ceAg+!	,	,B__Q1_--F, , , , , , , , , ua((EAvv	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* ua((TQ 	771::r	1uu2222xx1!x$$$ us   8AC C 
C'&C')dgD,@g|c5@g9@gll>@gYw@@gjDB@gp`uD@g,ݩE@geȨ H@gPH@gN~3|J@gC 9L@g7kM@g1wjN@g?a3GP@gP@gM>bQ@gY`OLR@gR@gXGEIS@gXeS@giCT@gH&Q/U@gܩ7U@gK`z3V@gwG{W@gꞯW@grxW@g˻;I2X@gSWTY@gts7oY@g~x\Z@gEAZ@gK[@g|j[@gZ~\@gU-]@gB/]@gg W^@g'٘^@go_@gCY_@gڡ2`@g#-Xb`@ggv`@gS5`@gӝCa@g{wa@g:ia@g=a@gl@b@g'B/Kmb@g;upb@gHٵb@gլJ c@gc@gZUxc@gҍd3c@gu&d@g`d@gĸ/d@g2d@g1E#e@g L.=e@gOТN+e@gBV"e@g': f@gxLf@gKS}f@gcf@gg@goLc<)3g@gstUSgg@g.+Qg@g6p^ h@g"h@g%-!~hh@g@T#h@goj}h@g
x(i@g㸆Oi@gxۙi@g5\i@gk i@g늁r2j@gqߋvj@g'"j@g֍dj@ghlk@gѿ)bk@gyk@gWȭk@g=IX9 l@g `Lewl@gx|ml@g+P̪l@gl@gbnl@g]06m@gJ}Ɛm@c                     dd l }|                    |           }d |                                D             }t          |d                   dk    sJ |t          d d <   d S )Nr   c                 ,    g | ]}t          |          S rO   )float).0r   s     r   
<listcomp>z$_load_zeta_zeros.<locals>.<listcomp>   s    )))aq)))r      )urlliburlopen	readlinesround_zeta_zeros)urlr|   r<   Ls       r   _load_zeta_zerosr      sc    MMMsA))1;;==)))A1;;"KNNNr   2http://www.dtc.umn.edu/~odlyzko/zeta_tables/zeros1c           	         t          |          }|dk     r(|                     |                                           S |dk    rt          d          |t	          t
                    k    r|dk    rt          |           |t	          t
                    k    rt          d          |                     d| 	                    | j
        t
          |dz
                               S )Nr   zn must be nonzeroi zn too large for zetazerosr"   r   )r*   zetazero	conjugate
ValueErrorlenr   r   rl   mpcrF   rg   )r   r   r   s      r   oldzetazeror      s    AA1uu||QB))+++Avv,---3{V3{!"=>>>773S[+ac2BCCDDDr   c           	         |dk    r| j         S t          |          dk    rj|                     |          }d|                     |                     |                    z  }t          |          t          |          | j        z  k     r|S t          |          dk     r?| xj        t          |                     t          |          d                     z  c_        | j        x}}| 	                    |          }d}t          |          t          |          | j        z  k    rV||z  |z  }|||| 
                    |dz             z  z  z  }|dz  }t          |          t          |          | j        z  k    V|S )Nr     r"   g{Gz?r   r   )r4   ri   lisqrtepsr'   r*   r9   oner   	_zeta_int)r   r   r   r=   r,   r:   uks           r   riemannrr      sL   Avvx
1vv}}FF1IIsxx{{###q66CFF37N""H
1vv}}CQ***+++GOAq		A	A
a&&3q66#'>
!
!EAI	Q!cmmAaC((())	Q a&&3q66#'>
!
! Hr   c                 t    t          |          }|dk     rdS t          |                     |                    S )Nr   r   )r*   r   list_primes)r   r   s     r   primepir      s5    AA1uuqsq!!"""r   c                 z   t          |          }|dk     r| j        j        S |dk     r-| j                            |                     |                    S |                     |          }|                     |d          |                     |d          z  dz  |                     d          z  }| 	                    | j                            |          |z
  j
        d          }|                     | j                            |          |z   j        d          }| j                            ||g          S )Nr   ia
  r   )roundingr@   r<   )r*   _ivr4   mpfr   r   r   r   r   floorr   ceilr=   )r   r   miderrr   r=   s         r   primepi2r      s   AA1uuw|4xxw{{3;;q>>***
&&))C
((1c(
"
"366!S6#9#9
9!
;CFFCF<P<P
PC		37;;s##C'*S	99A#'++c""3&)C88A7;;!ur   c                                                     rS                                dk    rt          d          dk    r j        S dk    r                       j         j                  S                                }| j        k    rdz  S  j        t          |          z    fd} 	                    |          S )Nr   z.prime zeta function defined only for re(s) > 0r   r"   c               3      K   j         } d}	 |dz  }                    |          }|s_         |                                        |z                      z  |z  }|sd S | _         |V  e)Nr   r   )r'   moebiusr   rn   )r-   r   r   r:   r   r,   wps       r   rU   zprimezeta.<locals>.terms  s      8D AQKKNN cffSXXac]]+++A- Fr   )
isnanrer   r)   r   r3   r   r'   r*   ro   )r   r,   rrU   r   s   ``  @r   	primezetar      s    
yy|| 
vvayyA~~IJJJAvvwCxxwwsx(((q		A38||AvXA	 	 	 	 	 	 	" e$$$r   c                     t                    dk     rt          d          dk    sdk    rdk    r                               S dk    r2                     ddz
            dz
                                 z  S dk    rAdk    rdz  S dk    rdz
  S dk    rdz  dz
  z  dz   dz  S dk    rdz
  z  dz   z  S                                rz  S                                rS t                    dk    r" fd	}                     |          z  z  S  fd
}                     |          S )Nr   z-Bernoulli polynomials only defined for n >= 0r   r"   r   r   rc   g      ?c               3      K   j         } | V  j         z  }d}|k    rC| dz   |z
  z  |z  |z  } |dk    r|dz  s|                     |          z  V  |dz  }|k    Ad S d S r   )r   	bernoulli)r:   r   r   r   r   rR   s      r   rU   zbernpoly.<locals>.terms6  s      AGGG	AAq&&qs1uIaKMA!a%CMM!,,,,,,Q	 q&&&&&&r   c               3      K                                  V  j        } d}|k    rH| dz   |z
  z  |z  z  } |z
  }|dk    r|dz  s|                      |          z  V  |dz  }|k    Fd S d S r   )r   r   )r:   r   mr   r   rR   s      r   rU   zbernpoly.<locals>.termsB  s      --"""""AAq&&qs1uIaK!OaCA!a%CMM!,,,,,,Q q&&&&&&r   )r*   r   r   ldexpr7   r   ri   ro   )r   r   rR   rU   s   ``` r   bernpolyr   !  s    	AA1uuHIIIAvv!q&&QUU}}QCxx		!AaC  "CMM!$4$444Avv66!q&=66!c'>661Q3!9Q;/)66!Q#Ys]++
yy|| Av
yy|| 
1vvzz		 		 		 		 		 		 		 !!%((1a4//		 		 		 		 		 		 		 !!%(((r   c                 $    t                    dk     rt          d          dk    r$dk    rdz  S dk    rdz
  S dk    rdz
  z  S                                rz  S                                rS dz   }dk    r;d                     d|          dz
  z                       |          z  |z  dz  z  S dk    r;d                     d|          dz
  z                       |          z  |z  dz  z  S dk    rcdz  r j        S dk     s'                     dz            z   j        d	z  k     r*                      	                                         S  fd
} 
                    |          |z  S )Nr   z)Euler polynomials only defined for n >= 0r   r   r"   d   g.eT>?r0   c               3      K   j         } d}                    ddz             }	 |z
  dz   }|dk    r|dz  s d|z
                      |          z  | z  V  |dz  }|k    rd S | z  |z
  dz   z  |z  } |dz  }W)Nr   r   r   r"   )r   r   r   )r:   r   wr   r   r   rR   s       r   rU   zeulerpoly.<locals>.termsg  s      GIIa!	!AAEEa!eEsCMM!,,,Q....FA1uu!QqSUAAHA	r   )r*   r   r7   r   r   r   r4   r   r'   	_eulernumro   )r   r   rR   r   rU   s   ```  r   	eulerpolyr   N  s   AA1uuDEEEAvv66!q&=66!c'>66!QqS'>
yy|| !t
yy|| 	!AAvv399Qq>>!#$S]]1%5%55a7!Q$>>Avv#))Aa.."#CMM!$4$44Q6A==Cxxq5 	8Os77a
1---==99S]]1--r222       e$$q((r   Fc                 0   t          |          }|r"t          |                     |                    S |dk     r(|                     |                     |                    S |dz  r| j        S |                     |                     |d          |          S )Nr   r   r"   )r*   r   r   r4   r   r   )r   r   exacts      r   eulernumr   v  s    AA %3==##$$$3wwwws}}Q''(((1u x99S]]1S))1---r   c                     | j         
 }| j        }d}|}	 |||z  z  }||z  }t          |          |k     rn||z  }|dz  },|S )Nr   )r   r4   ri   )r   r,   rR   tollr   zkterms           r   polylog_seriesr     sg    7(CA	A	
BAqDy	T	t99s??
a	Q Hr   c                 ,   |dk     r|dz  S d| j         z  }||z   |                     |          z  |                     ||                     |          |z            z  }|                     |          r|dk     r|                     |          }|                     |          dk     s2|                     |          dk    rS|                     |          dk    r:|||                     |          |dz
  z  z  |                     |dz
            z  z  }|S )Nr   y               @r   )r   facr   r   rk   r   r5   )r   r   rR   twopijr   s        r   polylog_continuationr     s    1uus
#&[F	
3771::Qq		&0@ A AAA
 AGGAJJ
wwqzzA~~#''!**//cggajjAoo	VCFF1II!$$SWWQqS\\11Hr   c                    | j         
 }|dk    r| j        }|                     |          }| j        }d}	 ||z
  dk    rL|                     ||z
            |z  |                     |          z  }|rt          |          |k     rn||z  }||z  }|dz  }`||                     |          |dz
  z  |                     |dz
            z  |                     |dz
            |                     |                     |                     z
  z  z  }n|dk     r|                     |           |                     |           |dz
  z  z  }|                     |          }| j        }	d}
	 |                     |
|z
  dz             }|r=||	z  |                     |
          |
|z
  dz   z  z  }t          |          |k     rn||z  }|	|z  }	|
dz  }
ent          | 
                    |          r|dk     r|                     |          }|S )Nr   r   )r   r4   r   r   rn   r   ri   harmonicr   r   rk   r   )r   r   rR   r   r   logzlogmzr   r   logkzr   r=   s               r   polylog_unitcircler     s   7(C1uuHvvayy	!zzxx!}}u,swwqzz9 CIIOOT	TMEFA	 	
SVVAYY1cggacll*CLL1,=,=cffcffQiiZ>P>P,PQQ	
QGGQBKK#&&))qs++vvayy	ac!e$$A w

AaCE 23t99s??T	TMEFA	
 
 
 AGGAJJHr   c                 n   | j         }|                     |          }t          |          dk     s| j        }d|z
  }|                     |           d| j        z  |z  z  }|                     |          ||z  |                     |d|z             z  || z  |                     |d|z
            z  z   z  d| j        z  |z  z  S d}d}	 |                     ||z
            |z  }	t          |	          | j        k     rn||	z  }|dz  }||z  }||z  }I|                     d|z
            | |dz
  z  z  |z   S )N   r   r   r"   r   )r4   r   ri   r   r   gammarn   r   )
r   r,   rR   r   r   r   yr:   r   r   s
             r   polylog_generalr     sM   Aq		Aq66A::EaCFFA2JJ#&
#yy||QT#((1SU"3"33a!eCHHQs1u<M<M6MMNPQRURXPX[\}\\	A	Axx!}}q t99sw	T		Q	Q	Q 99QqS>>A21+%))r   c           	      t   |                      |          }|                      |          }|dk    r|                     |          S |dk    r|                     |           S |dk    r|d|z
  z  S |dk    r|                     d|z
             S |dk    r|d|z
  dz  z  S t	          |          dk    s(|                     |          s$t	          |          dk     rt          | ||          S t	          |          dk    rd|                     |          rOd|dz   z  t          | |d|z            z  t          | t          | 	                    |                    |          z   S |                     |          r1t          | t          | 	                    |                    |          S t          | ||          S )Nr   r   r         ?g?gffffff?)r#   rn   altzetar   ri   r+   r   r   r*   r   r   r   )r   r,   rR   s      r   polylogr     s   AAAAAvvxx{{BwwAAvv!A#wAvvqs|Bww!A#z
1vv~~ciill~s1vv||c1a(((
1vv}}1}ac{>#q!A#6669McSVWZW]W]^_W`W`SaSacd9e9eee
yy|| :!#s366!99~~q99931%%%r   c                    |                      |          r!|dk     rt          |          dz  dk    r|dz  S |r|                     |          }n|                     |          }|                     |          r>|                     |          r)|                     |                     ||                    S d|z  }d|                     ||          |                     ||          z
  z  S )Nr   r   r   r1   )r+   r*   expjpirm   rk   imr   r   r,   rR   r   r   r=   s         r   clsinr     s    
yy|| A#a&&1*//s
	 JJqMMHHQKK
 ( 1 1! 4 4 (vvckk!A&&'''	!ACKK!$$s{{1Q'7'7788r   c                    |                      |          r!|dk     rt          |          dz  dk    r|dz  S |r|                     |          }n|                     |          }|                     |          r>|                     |          r)|                     |                     ||                    S d|z  }d|                     ||          |                     ||          z   z  S )Nr   r   r   r"   )r+   r*   r   rm   rk   r   r   r   s         r   clcosr     s    
yy|| A#a&&1*//s
	 JJqMMHHQKK
 ( 1 1! 4 4 (vvckk!A&&'''	!AAa  3;;q#3#3344r   c                 j    	  | j         |fi |S # t          $ r |                     |          cY S w xY wrB   )_altzetarl   _altzeta_generic)r   r,   rq   s      r   r   r     sV    's|A((((( ' ' '##A&&&&&'s    22c                     |dk    r| j         d|z  z   S |                     dd|z
             |                     |          z  S )Nr   r   r   )ln2powm1rn   )r   r,   s     r   r   r   
  sE    Avvw1}IIa1++r   Nc                    t          |          }|dk    r#|s!|s	  | j        |fi |S # t          $ r Y nw xY w|                     |          }| j        }|                    d          }|                    d          }|s3|s1|                     d          |                     |          d         z
  S |dk    r|dk    rt          | 	                    |                    }	t          | 
                    |                    }
t          |	          d|z  k    rd|
z  |k     r|d	k    s|d
k    r_	 	 |rt          d            | j        ||fi ||| _        S # t          $ r |rt          d           Y nw xY w	 || _        n# || _        w xY w|dk    r| j        S t          |          }|| j        k    r7|                     |          | j        k    r|dk    r| j        S | j        S |dz  S |                     |          rd|z  S |                     |          d| j        z  k    r'|dk    r!|s| j        |                     d|           z   S  | j        |||fi |
 S )Nr   methodverboser"   r   zeuler-maclaurinrJ   r!   rY   zriemann-siegelz4zeta: Attempting to use the Riemann-Siegel algorithmz0zeta: Could not use the Riemann-Siegel algorithmr   )r*   _zetarl   r#   r'   rh   r   _convert_paramri   r5   r   printrs_zetar)   r   r   r4   r   power_hurwitz)r   r,   r   r;   r   rq   r<   r'   r   r   r   absss               r   rn   rn     s   JAAvvqvFv	39Q))&)))" 	 	 	D	AA8DZZ!!Fjj##G 7
 7wws||c0033A666Avv&---____ r77SX"R%$,,:??&&&
  VTUUU&3;q*????   +    RPQQQD 4Avvwq66Dsw66!99Avvw8Os
	4 s

vvayy1SX:!q&&&w1qb))))CLAq++F++++s0   ) 
661E E63F 5E66F 	Fc                 z   | j         }|                    d          }	 d}| xj         |z  c_         |                     |          \  }}|                     |          dk     rM|rt	          d           	 t          | ||||          || _         S # t          $ r Y nw xY w|rt	          d           |rt	          d           	 ||z   | _         t          | ||||dz   |          \  }	}
|                     |	          |                     |	|
z             z
  }|r1t	          d|	           t	          d	|
           t	          d
|d           ||k     r|	|
z   || _         S t          d|z  t          |dz   d|z                      }||                    dd|z            k    r|                     d          # || _         w xY w)Nr   r!   r   z#zeta: Attempting reflection formulazzeta: Reflection formula failedz)zeta: Using the Euler-Maclaurin algorithmr   zTerm 1:zTerm 2:zCancellation:bitsr   r   r   maxpreczzeta: too much cancellation)r'   rh   r   r   r   _hurwitz_reflectionrl   _hurwitz_emr   maxminNoConvergence)r   r,   r   r<   rq   r'   r   	extraprecatypeT1T2cancellations               r   r   r   F  s   8Djj##G	I%%a((566!99q== =;<<<*31a??, + '    97888 	?=>>>	Ki'CH aAtBw@@FB772;;B7L =i$$$i$$$o|V<<<i''Bw 	  )S1A3t8-L-LMM	vzz)SX>>>>++,IJJJ	K s2   AF1 3B 
BF1 BB5F1 AF1 1	F:c                     |dk    rt                                |          }| }                     |          r4t          |          }|dk    r                     d|z
  |          |dz
  z  S |dk    s|dk    st           d|z
  d}d}	|                               dk    r+dz  ||z  z  }|	dz  }	                               dk    +                               dk    r+||z  z  }dz  |	dz  }	                               dk    +	 |j        \  }
n-#  |t          |          k    sJ t          |          }
dY nxY w|
|	z  z  }
d|
cxk    rk    sn J                       fdt          ddz             D                       }|d                               z  d j	        z  z  z  z  z  }||z  }|S )Nr   r   QZc              3      K   | ]>}                     d z  d |z  z  z
                                |f          z  V  ?dS )r   N)cospir   )ry   r   r=   r   qr:   s     r   	<genexpr>z&_hurwitz_reflection.<locals>.<genexpr>  sj         1Q3qs1u9%%cll1aU&;&;;      r   r   )
rl   r   isnpintr*   r   _mpq_fsumranger   r   )r   r,   r   r<   r   resnegsr   r   shiftprG   r=   r   r:   s   `           @@@r   r   r   k  s(   Avv!!
&&))C2D
{{1~~ 0HH66<<!Q''1Q3//SLLESLL!!	!A	AE	A
&&))a--	Q	QW
 &&))a-- &&))q..	QW	Q
 &&))q..
w11CFF{{{{FFqLA;;;;Q;;;;;;       q1   	 	A399Q<<36!a	''AFAHs   
D% %(Ec           
      J   |                      |          }| }d}|dz  }|}	d}
|                     |          r"t          |                     |                    }|dz
  }	 |                     |||z   ||z
  dz
  |g          d         d         }|
|z  }
||z   }|                     |          }||z  }|g}d|z  }d|z  }|| z  }|r&|                     |dz   ||z            ||dz   z  z  }nd|||z  z  z  }|d|z  |z  z  }dg}|}d}t          d|	dz             D ]1}d|z  }|dk    rdg}n
|dz
  |dz
  g}|D ]}t          ||dz             }||k    r|	                    |d         |z             dg|dz   z  }t          |          D ]}d|z
  |z
  ||         z  ||<   t          d|dz             D ]$}||xx         ||dz
  z
  ||dz
           z  z  cc<   %|}||z  }|                     ||          |z  |                     |          z  | z  }||z  }|                     |          |k     r|
d|z  |z  fc S ||dz   |dz   z  z  }3|r(t          d||d|                     |          d	|           ||dz  }}|                     |          dk     r|	|	dz  z  }	D)
Nr   r   r   r"   r   r   z
Sum range:zterm magnitude	tolerance)r#   r+   r*   r   _zetasumr   gammaincr  r   appendr   fdotr   r   r   r   ) r   r,   r   r<   r'   r   r   M1M2Nlsums1r   M2alogM2alogM2adlogslogrrM2aM2astailsumUr   factr   j2updsr   DUnir:   s                                    r   r   r     sE   AA%C	
B	B
AD
yy|| 

OO	
1B0LLBqD"R%'A3//215
 		d!)yxuaRy 	)ll1Q36	22R!A#Y>GG"sRi(G3=4''Cq!A# 	" 	"A1BAvvs1bd|  !A#JJ66KKR4000S!A#Y88AQqSUAaDLBqEE!A#AAA1!QqS'1QqS61A(AT	D!!A%b(9(99D5AAqLGwwqzzCb1Ww.....RTBqDM!DD 	X,B(8#''!**kSVWWWRTB66!99q==AIAa0r   c                 z    t                               |                    d j        z  k     r*	                      ||||          S # t          $ r Y nw xY w                     |d          |dgk    }t          |          dk    }|s|s5                     fdt          |dz             D                       gg fS |rG|d                               fdt          |dz             D                       }dz  |z  gg fS t          |          }	|st          |	dz             } fd	|D             }
|r fd
|D             }ng }t          |dz             D ]}|z   }|z  }|r                       j        ||z  z            }|r                     |           }|r.||	z  }|
dxx         ||z  z  cc<   |r|dxx         ||z  z  cc<   v j        }|D ]/|
xx         ||z  z  cc<   |r|xx         ||z  z  cc<   ||z  }0|
dxx         |z  cc<   |r|dxx         |z  cc<   |
|fS )a  
    Returns [xd0,xd1,...,xdr], [yd0,yd1,...ydr] where

    xdk = D^k     ( 1/a^s     +  1/(a+1)^s      +  ...  +  1/(a+n)^s     )
    ydk = D^k conj( 1/a^(1-s) +  1/(a+1)^(1-s)  +  ...  +  1/(a+n)^(1-s) )

    D^k = kth derivative with respect to s, k ranges over the given list of
    derivatives (which should consist of either a single element
    or a range 0,1,...r). If reflect=False, the ydks are not computed.
    r"   Tr   r   r   c              3   (   K   | ]}|z   z  V  d S rB   rO   )ry   r   r   r  s     r   r   z_zetasum.<locals>.<genexpr>  s+      >>QacD[>>>>>>r   c              3   `   K   | ](}                     |z             z  |z   z  z  V  )d S rB   )r   )ry   r   r   r   r<   r  s     r   r   z_zetasum.<locals>.<genexpr>  sB      KK!!a1Q3+5KKKKKKr   r   c                     g | ]	}j         
S rO   r4   ry   r<   r   s     r   rz   z_zetasum.<locals>.<listcomp>  s    	(	(	(q#(	(	(	(r   c                     g | ]	}j         
S rO   r'  r(  s     r   rz   z_zetasum.<locals>.<listcomp>  s    ,,,1ch,,,r   )ri   r   r'   _zetasum_fastrl   fnegr   r  r   r   r  conjr   r   )r   r,   r   r   derivativesreflecthave_derivativeshave_one_derivativer   maxdxsysr   r   xtermytermlogwr:   r<   r  s   ` `               @@r   r
  r
    s    366!99~~ch&&	$$Q1k7CCC" 	 	 	D	88AT8""D"qc)k**a/ % 	DHH>>>>>&1++>>>>>?CC 	%AAKKKKKKKvac{{KKKKKA!GaK="$${D $DFmm	(	(	(	(K	(	(	(B ,,,,,,,AaC[[  ET	 	4HHSWE	233E 	FF1II:D" t|1% *qEEEUT\)EEEG$  AqEEEUQY&EEE +1*IAA	 qEEEUNEEE 1r6Ms   A 
AAc           	         |                      |          }t          |          }t          |          }|dk    rt          d          | j        }	 | xj        dz  c_        |dk    rEd}|D ]/}|r+|dk    r%d}| j        
 }	| xj        d|dz   z  z  c_        ||	z  }0|r| j        
 || _        S | j        }
t          d|dz             D ]}|||z           r|dk    rX|
|||z           | 	                    |||fd          | 	                    |||f          | 
                    |          z  z
  z  z  }
k|
|||z           | 	                    |||f          z  z  }
|
||z  z  }
|| _        n# || _        w xY w|

 S )Nr   zarbitrary order derivativesr!   r   TF)r#   r   r*   rl   r'   r   r)   r4   r  rn   r9   )r   r,   chir;   r   r<   r'   	have_poler   ru   rR   r  s               r   	dirichletr:    s   AACAJA1uu!"?@@@8DB66I   a %IAHH1Q3'HHFA  x  Hq1 	7 	7A1Q3x 766QqSSXXa!A%:%:QqE**3771::5&6 7 7AA QqSCHHQ1$6$666A	QT	42Is   AE) ,B5E) )	E2c                      j         } fd} j        x}} j        }d}	||k    rR||z  }|	dz  }	                                          |	                     ||	          }t          |          }||k    Rd}
|                    d          r                               }d j        dz  z  t          d|          z  |dz
  z  z   
                    d j        z  z            z                       ddz  z            z  t                               dz                      z  }
t          |
          }
|
 |
|	fS )	Nc                 T                         dz  dz  z  d           z  z  S )Nr"   r   T)regularized)r  )r   r   r   gammr,   s    r   rC   z&secondzeta_main_term.<locals>.<lambda>7  s0    #,,s1uaaiT,BB41":M r   r   r   errorr"   r   r   r2   )r   r4   r)   r   zetazero_memoizedri   rh   r   r   r   r9   r  r   )r   r,   r   rq   r   r   totsumr   mgr   r   sgr>  s   ```         @r   secondzeta_main_termrD  5  s]   
'CMMMMMMMAHFT	B	A
s(($	Qvvc++A..//qttYY s(( Czz' VVAYY#&2,s1Ryy(RV4SWWT1SV8_5M5MM\\$$'	**++.syy1~~+>+>?#hh7C?r   c                      j         } fd} j        x}} j        }d}	||k    s|	dk     r>||z  }|	dz  }	 ||	          }|dk    r j        }nt          |          }||k    8|	dk     >|                    d          r|}
|
 |
|	fS )Nc                 ~                        ddz
  z  d                    |           dz  z  dz  z            d                    |           z  dz
  z  z                      |           z                      |           z  d                    dz            z                      j                  z  z  S )Nr"   r   r0   r   r   )r  r9   mangoldtr   r   r   r   r   r   r,   s    r   rC   z'secondzeta_prime_term.<locals>.<lambda>K  s    #,,sAaCycggajj!m);a"g)EFF
cggajj.AaC	 ""%,,q//225((1++>	
399SU	CHHSV,,	,. r   r   	   r   r?  )r   r4   r)   ri   rh   )r   r,   r   rq   r   r   rA  r   rB  r   r   s   ```        r   secondzeta_prime_termrJ  I  s    
'C	. 	. 	. 	. 	. 	.A HFT	B	A
s((a!ee$	Qqtt199BBTB s((a!ee zz' 7C?r   c                                                     ri                               dk    rPt          t                                                             }|dz  s                     d          | dz  z  S  j        } fd} j        } |d          } j        }d}	||k    r*||z  }|	dz  }	 ||	          }t          |          }||k    *dz  z  |z   	                    dz            z  }
|
S )Nr   r   z-0.25r   c                 R    dz  | z  | dz  z                        |           z  z  S )Nr0   r"   )r   rH  s    r   rC   z%secondzeta_exp_term.<locals>.<lambda>c  s+    46A+#a%34 r   r"   )
r+   r   r*   r   r   r   r4   r)   ri   r   )r   r,   r   r   r   r   rA  r   rB  r   r   s   ```        r   secondzeta_exp_termrM  ]  s   
yy|| -q		QcffQii  !!1u 	-777##qb!e,,
'C444444AXF1Q44D	B	A
s(($	QqttYY	 s((
 	
CE
6#))CE***AHr   c           	          ddz
  z  z  d                       j                  z                       dz            z  z  }                     |          } xj        |z  c_        ddz
  z  z  d                       j                  z                       dz            z  z  } j        } fd} j        } j        }	d}
 ||
          }t          |          }||k    rM||	k    rG||z  }|
dz  }
 ||
          }||z  }|
dz  }
 ||
          }|}	t          |          }||k    r||	k    G||z  }ddz
  dz  z   j	         
                    d j        dz  z  z            z   dz
  dz  z  z   }|||z   z  }d	}|                    d
          r||k    r||	k    s||k    rI                     d          t           
                    t          ||z            d                    z  }||	k    rI                     d          t           
                    t          ||	z            d                    z  }t          | j        dz            } xj        |z  c_        |
 |fS )Nr"   r   rY   c                                          | d          d                              z  | z  z                      d| z            z  | z   dz
                      |           z  z  S )Nr   rY   r"   r   )r   r   r   r   rH  s    r   rC   z*secondzeta_singular_term.<locals>.<lambda>v  sd    #,,q&&#((1++'99
yyQA#a%+- r   r      r   r   r   r?  r!         ?)r   r   r   r   r'   r   r4   r)   ri   r&   r9   rh   r   r*   r   )r   r,   r   rq   factorr   r   r   rA  mg1r   r   mg2polestr   s   ```             r   secondzeta_singular_termrW  p  s   ac^Qsxx///		#a%0@0@@AFIHH	HHac^Qsxx///		#a%0@0@@AF
'C	- 	- 	- 	- 	- 	-AXF
'C	A1Q44D
d))C
))s

$	Qqtt$	Aqtt$ii ))s

 dNFqsbk>39SWWR	\!^%<%<<qsbkIID	f	B
Czz' #sczzggbkk3swws6#:r'B'B#C#CCSyyggbkk3swws6#:r'B'B#C#CC#swrz""HH	HH38Or   Q?c                 `   |                      |          }|                      |          }| j        }|                     |          r|                     |          dk    rt	          |dz
            |dz  k     r| j        S t          t          |                     |                              }|dz  r| j        S d| dz  z  |                     d| 	                    | d          z
  d| dz   z            z  S | j
        }	 t          | ||          }t          |                     |          d	          }| xj
        |dz   z  c_
        t          | ||d
d
          \  }	}
}t          | ||d
d
          \  }}}t!          | ||d
          \  }}t          | ||          }|
|z   |z   }|	|z
  |z   |z
  }|                    d          rbt%          d|	           t%          d|d           t%          d|           t%          d|d           t%          d|           t%          d|           || _
        n# || _
        w xY w|                    d          rYt          |                     t	          |                    d	          }t          |d|z  z  | j        dz  d|z  z            }|
 |fS |
 S )a  
    Evaluates the secondary zeta function `Z(s)`, defined for
    `\mathrm{Re}(s)>1` by

    .. math ::

        Z(s) = \sum_{n=1}^{\infty} \frac{1}{\tau_n^s}

    where `\frac12+i\tau_n` runs through the zeros of `\zeta(s)` with
    imaginary part positive.

    `Z(s)` extends to a meromorphic function on `\mathbb{C}`  with a
    double pole at `s=1` and  simple poles at the points `-2n` for
    `n=0`,  1, 2, ...

    **Examples**

        >>> from mpmath import *
        >>> mp.pretty = True; mp.dps = 15
        >>> secondzeta(2)
        0.023104993115419
        >>> xi = lambda s: 0.5*s*(s-1)*pi**(-0.5*s)*gamma(0.5*s)*zeta(s)
        >>> Xi = lambda t: xi(0.5+t*j)
        >>> chop(-0.5*diff(Xi,0,n=2)/Xi(0))
        0.023104993115419

    We may ask for an approximate error value::

        >>> secondzeta(0.5+100j, error=True)
        ((-0.216272011276718 - 0.844952708937228j), 2.22044604925031e-16)

    The function has poles at the negative odd integers,
    and dyadic rational values at the negative even integers::

        >>> mp.dps = 30
        >>> secondzeta(-8)
        -0.67236328125
        >>> secondzeta(-7)
        +inf

    **Implementation notes**

    The function is computed as sum of four terms `Z(s)=A(s)-P(s)+E(s)-S(s)`
    respectively main, prime, exponential and singular terms.
    The main term `A(s)` is computed from the zeros of zeta.
    The prime term depends on the von Mangoldt function.
    The singular term is responsible for the poles of the function.

    The four terms depends on a small parameter `a`. We may change the
    value of `a`. Theoretically this has no effect on the sum of the four
    terms, but in practice may be important.

    A smaller value of the parameter `a` makes `A(s)` depend on
    a smaller number of zeros of zeta, but `P(s)`  uses more values of
    von Mangoldt function.

    We may also add a verbose option to obtain data about the
    values of the four terms.

        >>> mp.dps = 10
        >>> secondzeta(0.5 + 40j, error=True, verbose=True)
        main term = (-30190318549.138656312556 - 13964804384.624622876523j)
            computed using 19 zeros of zeta
        prime term = (132717176.89212754625045 + 188980555.17563978290601j)
            computed using 9 values of the von Mangoldt function
        exponential term = (542447428666.07179812536 + 362434922978.80192435203j)
        singular term = (512124392939.98154322355 + 348281138038.65531023921j)
        ((0.059471043 + 0.3463514534j), 1.455191523e-11)

        >>> secondzeta(0.5 + 40j, a=0.04, error=True, verbose=True)
        main term = (-151962888.19606243907725 - 217930683.90210294051982j)
            computed using 9 zeros of zeta
        prime term = (2476659342.3038722372461 + 28711581821.921627163136j)
            computed using 37 values of the von Mangoldt function
        exponential term = (178506047114.7838188264 + 819674143244.45677330576j)
        singular term = (175877424884.22441310708 + 790744630738.28669174871j)
        ((0.059471043 + 0.3463514534j), 1.455191523e-11)

    Notice the great cancellation between the four terms. Changing `a`, the
    four terms are very different numbers but the cancellation gives
    the good value of Z(s).

    **References**

    A. Voros, Zeta functions for the Riemann zeros, Ann. Institute Fourier,
    53, (2003) 665--699.

    A. Voros, Zeta functions over Zeros of Zeta Functions, Lecture Notes
    of the Unione Matematica Italiana, Springer, 2009.
    r   r   r   r   r@   Tr#  r   r   True)r?  r   )r?  r   zmain term =z    computed usingzzeros of zetazprime term =z#values of the von Mangoldt functionzexponential term =zsingular term =r?  rQ  )r#   r   r+   r   ri   r)   r*   r   fractionr   r'   rM  r   r   rD  rJ  rW  rh   r   )r   r,   r   rq   r   r   r'   t3r   rr   r1gtrs   r2ptt4r4r   r:   r   s                       r   
secondzetarc    s   x 	AAAA
'C
yy|| Jq		Qqs88c$h7NcffQii  !!q5 	J7NA2q5M<<#,,r,"="= =a1"Q$iHHI J8D a++A&&	IM!)#aOOO
B*3qPPP
B)#a???B a++eBhrE"HRK::i   	)-$$$&O<<<."%%%&,QRRR&+++#R(((4zz' A""#ad(CGBJq!tO,,r3w2Is   D(H3 3	H<c                    	
 |dk    r z  S |dk    r                                S dk    r                     |          |z  S                                dk     r                               rt	          d          t                               d                               z
                      } j        } j        }t          |          D ]}|||z   z  z  z  }||z  }| 
                    ||z             z  |z   S                      |          	ddz  z  z                       dz
   	z            	 dz
  z  z  |z  z  z   }dz  
d j        z   	
fd}|d                     |d j        g          z  z  }                     |          sX                               sC                               s.                     |          dk     r                     |          }|S )a
  
    Gives the Lerch transcendent, defined for `|z| < 1` and
    `\Re{a} > 0` by

    .. math ::

        \Phi(z,s,a) = \sum_{k=0}^{\infty} \frac{z^k}{(a+k)^s}

    and generally by the recurrence `\Phi(z,s,a) = z \Phi(z,s,a+1) + a^{-s}`
    along with the integral representation valid for `\Re{a} > 0`

    .. math ::

        \Phi(z,s,a) = \frac{1}{2 a^s} +
                \int_0^{\infty} \frac{z^t}{(a+t)^s} dt -
                2 \int_0^{\infty} \frac{\sin(t \log z - s
                    \operatorname{arctan}(t/a)}{(a^2 + t^2)^{s/2}
                    (e^{2 \pi t}-1)} dt.

    The Lerch transcendent generalizes the Hurwitz zeta function :func:`zeta`
    (`z = 1`) and the polylogarithm :func:`polylog` (`a = 1`).

    **Examples**

    Several evaluations in terms of simpler functions::

        >>> from mpmath import *
        >>> mp.dps = 25; mp.pretty = True
        >>> lerchphi(-1,2,0.5); 4*catalan
        3.663862376708876060218414
        3.663862376708876060218414
        >>> diff(lerchphi, (-1,-2,1), (0,1,0)); 7*zeta(3)/(4*pi**2)
        0.2131391994087528954617607
        0.2131391994087528954617607
        >>> lerchphi(-4,1,1); log(5)/4
        0.4023594781085250936501898
        0.4023594781085250936501898
        >>> lerchphi(-3+2j,1,0.5); 2*atanh(sqrt(-3+2j))/sqrt(-3+2j)
        (1.142423447120257137774002 + 0.2118232380980201350495795j)
        (1.142423447120257137774002 + 0.2118232380980201350495795j)

    Evaluation works for complex arguments and `|z| \ge 1`::

        >>> lerchphi(1+2j, 3-j, 4+2j)
        (0.002025009957009908600539469 + 0.003327897536813558807438089j)
        >>> lerchphi(-2,2,-2.5)
        -12.28676272353094275265944
        >>> lerchphi(10,10,10)
        (-4.462130727102185701817349e-11 - 1.575172198981096218823481e-12j)
        >>> lerchphi(10,10,-10.5)
        (112658784011940.5605789002 - 498113185.5756221777743631j)

    Some degenerate cases::

        >>> lerchphi(0,1,2)
        0.5
        >>> lerchphi(0,1,-2)
        -0.5

    Reduction to simpler functions::

        >>> lerchphi(1, 4.25+1j, 1)
        (1.044674457556746668033975 - 0.04674508654012658932271226j)
        >>> zeta(4.25+1j)
        (1.044674457556746668033975 - 0.04674508654012658932271226j)
        >>> lerchphi(1 - 0.5**10, 4.25+1j, 1)
        (1.044629338021507546737197 - 0.04667768813963388181708101j)
        >>> lerchphi(3, 4, 1)
        (1.249503297023366545192592 - 0.2314252413375664776474462j)
        >>> polylog(4, 3) / 3
        (1.249503297023366545192592 - 0.2314252413375664776474462j)
        >>> lerchphi(3, 4, 1 - 0.5**10)
        (1.253978063946663945672674 - 0.2316736622836535468765376j)

    **References**

    1. [DLMF]_ section 25.14

    r   r   z#Lerch transcendent complex infinityr   c                                                              | z            z  | z  z
            dz  | dz  z   z                      | z            z  z  S rN   )sinatanexpm1)r:   r   r   rG   ru   r   r,   s    r   rC   zlerchphi.<locals>.<lambda>}  sY    #''!CHHQqSMM/!A#-..
Q$q!t)a#))AaC..	(* r   )rn   r   r   r   r   r*   r   r4   r   r   lerchphir   r  r   r(   r)   r   chop)r   rR   r,   r   r   r   zpowr   r   rG   ru   r   s   ` ``     @@@r   ri  ri    s6   b 	AvvaRyAvvxx1~~Avv{{1a  1$$
vvayy1}};;q>> 	DBCCC366!99%%&&Hw 	 	A1q AAIDDcll1Q!,,,q00q		A	1QT6
S\\!A#r!t,,ac{:QTAAA	AA	#&A	* 	* 	* 	* 	* 	* 	* 	* 	*A388A37|$$	$$A66!99 SVVAYY svvayy SVVAYY]]HHQKKHr   )r   )r   )r   )F)r   r   N)r   r   )rX  )+
__future__r   libmp.backendr   	functionsr   r   r	   r.   r>   rH   rg   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rn   r   r   r   r
  r:  rD  rJ  rM  rW  rc  ri  rO   r   r   <module>ro     s   % % % % % % " " " " " " 9 9 9 9 9 9 9 9 9 9# # # #J + + + +B B B B J% J% J%Z  .   
E 
E 
E 
E   , # # #    % % %F *) *) *)X %) %) %)N . . . .  	 	 	" " "H* * *( & & &* 
9 
9 
9 
9 
5 
5 
5 
5 ' ' ' , , ,
 3, 3, 3, 3,j " " " "H' ' 'R= = =B ()sE ; ; ; ;z #!    B  (  (  &" " "H    D j j j j jr   