
    [h:                     "   S SK Jr  SSKJr  SSKJrJrJr  \S+S j5       r\S,S j5       r	\S 5       r
\S	 5       r/ S
QrS r\S-S j5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S.S j5       rS rS rS rS r\S 5       r\S.S j5       r\S.S j5       r\S 5       r\S 5       r\S/S j5       r\S0S  j5       r S! r!S" r"\S /S4S# j5       r#\S/S 4S$ j5       r$S% r%S& r&S' r'S( r(\S1S) j5       r)\S* 5       r*g)2    )print_function   )xrange   )defundefun_wrappeddefun_staticc                 :  ^ ^^^	 T R                  T5      mT R                  T5      mTS:  a  T R                  S5      $ [        T S5      (       a  T R                  nO	0 =nT l        TS:X  a3  TS:X  a  T R                  7$ TU;   a  UT   u  pEUT R
                  :  a  U7$ Sm	UU U	U4S jnT R
                  n TS:  a$  ST l        T R                  UST R                  /SS	9m	US
-   [        TS-  5      -   T l        T R                  UST R                  /SS	9nT R                  T5      T-  ST-  -  T R                  T5      TS-   -  TS-   -  -
  SU-  T-  T	-  -   nUT l        TS:X  a'  T R                  T5      (       a  T R
                  U4UT'   U7$ ! UT l        f = f)Nr   z&Stieltjes constants defined for n >= 0stieltjes_cacher   c                    > U T-  nUTR                   -
  TR                  TTR                   U -  -
  5      T-  -  SUS-  -   -  TR                  STR                  -  U -  5      S-
  -  nTR	                  U5      T-  $ Nr   r   )jlnexppi_re)xxavactxmagns      M/var/www/auris/envauris/lib/python3.13/site-packages/mpmath/functions/zeta.pyfstieltjes.<locals>.f   sw    qSXsvvaai(!++Qr1uW5swwqxz7J17LMwwqzC    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1u~~FGGs%&&--022#-Av6II:%a(GDsxxr	
C    88D
 r6CH((1qkQ(7C"9s1c6{*HHQ377rH2FF1IqL!A#QqS!11Q3!77!A#a%)CAv#))A,,!hh]2I s   6B$F 	Fc                 L   [        U5      nXR                  :X  d  XR                  :X  a?  US:  a-  XR                  :X  a  US:X  a  U R                  $ U R                  $ U R                  $ US:X  a  U R	                  U5      (       aX  U R                  SSU-  -   5      nU R                  SSU-  -
  5      nU R                  U R                  5      * S-  U-  SXE-
  -  -
  $ U R                  U5      (       a  U$ U R	                  U R                  SSU-  -   5      5      U R                  U R                  5      S-  U-  -
  $ US:  a  SUS-
  -  U R                  US-
  SSU-  -
  5      -  nSUS-
  -  U R                  US-
  SSU-  -   5      -  nU R	                  U5      (       a3  US:X  a&  SU R                  U R                  5      -  SXE-   -  -   $ SXE-   -  $ US:X  a5  U R                  SU R                  U R                  5      -  SXE-   -  -   5      $ U R                  SXE-   -  5      $ g )Nr   r         ?y              ?             r         )r+   r*   ninfzero_imloggammar   r   isinf	polygammalogr   )r   t
derivativedr   bs         r   siegelthetar?   ,   s   JA	
gghhq5HH}axx77N88OAv771::T$q&[)AT$q&[)AFF366N?1$Q&qs33yy||773<<T!V45svvq8H8JJJ1uacN3==1d46k::QqSM#--!T$q&[99771::AvCGGCFFO+D!#J66QSz!AvwwtCGGCFFO3D!#J>??wwtQSz** r   c           	         ^ ^ ST R                   -  T R                  ST R                  ST-  S-   ST R                  -  -  5      -   5      -  nT R	                  U U4S jU5      $ )Nr   r      c                 F   > TR                  U 5      TR                  T-  -
  $ N)r?   r   )r;   r   r   s    r   <lambda>grampoint.<locals>.<lambda>S   s    #//!"4SVVAX"=r   )r   r   lambertwefindroot)r   r   gs   `` r   	grampointrJ   N   sU     	
#&&3<<1Q355(9::;;A<<=qAAr   c           
      "  ^ ^^^^^^^^^^^^ [        UR                  SS5      5      nT R                  U5      nT R                  U5      nT R	                  U5      nT R
                  n [        U5      SU-  :  aC  US-  U:  a:  T R                  X5      nT R                  U5      (       a  T R                  U5      $ U$ T =R
                  S-  sl        T R                  T R                  U5      5      nT R                  ST R                  U-  -   5      mUS:X  a6  UT-  nUT l        T R                  U5      (       a  T R                  U5      $ U7$ T R                  ST R                  U-  -   SS9mT R                  USS9mUS:X  aI  T R                  U-  TTT-  -   -  nUT l        T R                  U5      (       a  T R                  U5      $ U7$ T R                  ST R                  U-  -   SS9mT R                  USS9mTS-  T R                  T-  -
  mUS:X  aS  UUUUU4S	 jn	T R                  U	S5      nU* U-  nUT l        T R                  U5      (       a  T R                  U5      $ U7$ T =R
                  S
-  sl        T R                  ST R                  U-  -   SS9mT R                  USS9mTS-  ST R                  -  T-  T-  -
  T-
  mUS:X  ab  UUUUUUU4S jn	T R                  U	S5      nT R                  * U-  U-  nUT l        T R                  U5      (       a  T R                  U5      $ U7$ T R                  ST R                  U-  -   SS9mT R                  USS9mU UUUU4S jn	T R                  U	S5      mUS:X  aV  UUU UUUUUUU4
S jn	T R                  U	S5      nX-  nUT l        T R                  U5      (       a  T R                  U5      $ U7$ US:  a  U 4S jn
T R                  XUS-
  S9$ g ! [         a     GNOf = f)Nr<   r     r      r#   r   r<   c                      > ST-  T-  TTT -  /$ Nr    )comb1theta1zz1z2s   r   termssiegelz.<locals>.termsz   s    bDKQuW--r   r"   r    c                  2   > ST-  T-  ST-  T -  TTT-  -   /$ )Nr    rQ   )rR   comb2rS   rT   rU   rV   z3s   r   rW   rX      s(    vXb[!B$u*b5j99r      c                  v   > TS-  ST R                   -  TS-  -  T-  STS-  -  ST-  T-  T R                   T-  /$ )Nr\   r   r   )r   rS   theta2theta3theta4s   r   rW   rX      sL    	2cee8FAI-f4blvIfceeFl, 	,r   c                  j   >
 STS-  -  T-  STR                   -  T-  T-  ST-  T-  ST-  T -  T	TT-  /$ )N   r   r^   r\   ra   )
rZ   comb3r   rS   rb   rT   rU   rV   r[   z4s
   r   rW   rX      sL    vqy[^RXb[%76"2eR5* *r   c                 $   > TR                  U SS9$ )Nr\   rN   )siegelz)r   r   s    r   rD   siegelz.<locals>.<lambda>   s    ckk!k2r   )r   )r+   getr$   r   r6   r(   absrs_z_is_real_typeNotImplementedErrorexpjr?   zetar   sum_accuratelydiff)r   r;   kwargsr=   t1t2r(   r   e1rW   hrR   rZ   rg   rS   rb   rc   rd   rT   rU   rV   r[   rh   s   `          @@@@@@@@@@@@r   rj   rj   V   s   FJJ|Q'(AAA	B	B88Dr7SX"a%"*A  ##wwqz!H HHNH	#//!$	%BSUU1WAAvqDQ771:r		#ceeAg+!	,B__Q1_-FAvUU2Xr!F({#Q771:r		#ceeAg+!	,B__Q1_-FAIceeFl"EAv	. 	.ua(SUQ771:r	HHNH	#ceeAg+!	,B__Q1_-FAIagfnV++F2EAv	: 	:ua(eeVBYq[Q771:r		#ceeAg+!	,B__Q1_-F, , ua(EAv	* 	* ua(TQ771:r	1u2xx!x$$ y  s   )AP  <P   
PP)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                     SS K nUR                  U 5      nUR                  5        Vs/ s H  n[        U5      PM     nn[	        US   5      S:X  d   eU[
        S S & g s  snf )Nr      )urlliburlopen	readlinesfloatround_zeta_zeros)urlr|   r=   r   Ls        r   _load_zeta_zerosr      sU    sA;;=)=aq=A)1;"KN 	*s   Ac           	      v   [        U5      nUS:  a   U R                  U* 5      R                  5       $ US:X  a  [        S5      eU[	        [
        5      :  a  US::  a  [        U5        U[	        [
        5      :  a  [        S5      eU R                  SU R                  U R                  [
        US-
     5      5      $ )Nr   zn must be nonzeroi zn too large for zetazerosr#   r   )r+   zetazero	conjugate
ValueErrorlenr   r   rp   mpcrH   rj   )r   r   r   s      r   oldzetazeror      s    AA1u||QB))++Av,--3{V3{!"=>>773S[[+ac2BCDDr   c           	         US:X  a  U R                   $ [        U5      S:  a[  U R                  U5      nSU R                  U R                  U5      5      -  n[        U5      [        U5      U R                  -  :  a  U$ [        U5      S:  a8  U =R
                  [        U R                  [        U5      S5      * 5      -  sl        U R                  =pEU R                  U5      nSn[        U5      [        U5      U R                  -  :  aN  XV-  U-  nXEXpR                  US-   5      -  -  -  nUS-  n[        U5      [        U5      U R                  -  :  a  MN  U$ )Nr     r#   g{Gz?r   r   )r5   rm   lisqrtepsr(   r+   r:   oner   	_zeta_int)r   r   r   r>   r-   r;   uks           r   riemannrr      s   Avxx
1v}FF1Isxx{##q6CF377N"H
1v}CQ**++GGOAq	A	A
a&3q6#''>
!EAI	!mmAaC(())	Q a&3q6#''>
! Hr   c                 Z    [        U5      nUS:  a  g[        U R                  U5      5      $ )Nr   r   )r+   r   list_primes)r   r   s     r   primepir      s)    AA1usq!""r   c                 J   [        U5      nUS:  a  U R                  R                  $ US:  a*  U R                  R                  U R	                  U5      5      $ U R                  U5      nU R                  USS9U R                  USS9-  S-  U R                  SS9-  nU R                  U R                  R                  U5      U-
  R                  SS9nU R                  U R                  R                  U5      U-   R                  SS9nU R                  R                  XE/5      $ )Nr   ia
  r   )roundingrA   r=   )r+   _ivr5   mpfr   r   r   r   r   floorr   ceilr>   )r   r   miderrr   r>   s         r   primepi2r      s    AA1uww||4xww{{3;;q>**
&&)C
((1c(
"366!S6#9
9!
;CFFCF<P
PC		377;;s#C'**S	9A#''++c"3&))C8A77;;ur   c                   ^ ^^ T R                  T5      (       a  T$ T R                  T5      S::  a  [        S5      eTS:X  a  T R                  $ TS:X  a&  T R	                  T R
                  T R                  5      $ T R                  T5      nUT R                  :  a  ST-  $ T R                  [        U5      -   mU UU4S jnT R                  U5      $ )Nr   z.prime zeta function defined only for re(s) > 0r   r#   c               3      >#    TR                   n Sn US-  nTR                  U5      nU(       d  M   TTl         UTR                  TR                  UT-  5      5      -  U-  nU(       d  g U Tl         Uv   Md  7f)Nr   r   )r(   moebiusr   rr   )r.   r   r   r;   r   r-   wps       r   rW   primezeta.<locals>.terms  sw     88D AQKKNcffSXXac]++A- s   A4A7)
isnanrer   r*   r   r4   r   r(   r+   rs   )r   r-   rrW   r   s   ``  @r   	primezetar      s    
yy||
vvayA~IJJAvwwCxwwsxx((q	A388|AvXXA	" e$$r   c                 h  ^ ^^ [        T5      mTS:  a  [        S5      eTS:X  d  TS:X  a  TS:  a  T R                  T5      $ TS:X  a*  T R                  SST-
  5      S-
  T R                  T5      -  $ TS::  aA  TS:X  a  TS-  $ TS:X  a  TS-
  $ TS:X  a  ST-  TS-
  -  S-   S-  $ TS:X  a  TTTS-
  -  S-   -  $ T R	                  T5      (       a  TT-  $ T R                  T5      (       a  T$ [        T5      S:  a  U UU4S	 jnT R                  U5      TT-  -  $ U UU4S
 jnT R                  U5      $ )Nr   z-Bernoulli polynomials only defined for n >= 0r   r#   r    r   rf   g      ?c               3      >#    TR                   n U v   TR                   T-  nSnUT::  aE  U TS-   U-
  -  U-  U-  n US:  a
  US-  (       d  U TR                  U5      -  v   US-  nUT::  a  MD  g g 7fr   )r   	bernoulli)r;   r   r   r   r   rT   s      r   rW   bernpoly.<locals>.terms6  sy     AG	AAq&qs1uIaKMA!a%CMM!,,,Q	 q&s   A*A1/A1c               3      >#    TR                  T5      v   TR                  n SnUT::  aJ  U TS-   U-
  -  U-  T-  n TU-
  nUS:  a
  US-  (       d  U TR                  U5      -  v   US-  nUT::  a  MI  g g 7fr   )r   r   )r;   r   mr   r   rT   s      r   rW   r   B  s     --""AAq&qs1uIaK!OaCA!a%CMM!,,,Q q&s   A/A64A6)r+   r   r   ldexpr8   r   rm   rs   )r   r   rT   rW   s   ``` r   bernpolyr   !  s@    	AA1uHIIAv!q&QU}}QCx		!AaC "CMM!$444Av6!q&=6!c'>61Q3!9Q;/)6!Q#Ys]++
yy||Av
yy||
1vz		 !!%(1a4//		 !!%((r   c                   ^ ^^ [        T5      mTS:  a  [        S5      eTS::  a$  TS:X  a  TS-  $ TS:X  a  TS-
  $ TS:X  a  TTS-
  -  $ T R                  T5      (       a  TT-  $ T R                  T5      (       a  T$ TS-   nTS:X  a3  ST R	                  SU5      S-
  -  T R                  U5      -  U-  TS-  -  $ TS:X  a3  ST R	                  SU5      S-
  -  T R                  U5      -  U-  TS-  -  $ TS:X  af  TS-  (       a  T R                  $ TS:  d(  TT R                  ST-  5      -  T R                  S	-  :  a"  T R	                  T R                  T5      T* 5      $ U UU4S
 jnT R                  U5      U-  $ )Nr   z)Euler polynomials only defined for n >= 0r   r   r#   d   g.eT>?r1   c               3     >#    TR                   n SnTR                  STS-   5      n TU-
  S-   nUS:  a
  US-  (       d  SU-
  TR                  U5      -  U -  v   US-  nUT:  a  g U T-  TU-
  S-   -  U-  n US-  nMX  7f)Nr   r   r   r#   )r   r   r   )r;   r   wr   r   r   rT   s       r   rW   eulerpoly.<locals>.termsg  s     GGIIa!!AAEa!esCMM!,,Q..FA1u!QqSUAAHA s   A=B )r+   r   r8   r   r   r   r5   r   r(   	_eulernumrs   )r   r   rT   r   rW   s   ```  r   	eulerpolyr   N  sz   AA1uDEEAv6!q&=6!c'>6!QqS'>
yy||!t
yy||	!AAv399Qq>!#$S]]1%55a7!Q$>>Av#))Aa."#CMM!$44Q6A==Cxq588Os7a
1--=99S]]1-r22 e$q((r   Fc                    [        U5      nU(       a  [        U R                  U5      5      $ US:  a   U R                  U R                  U5      5      $ US-  (       a  U R                  $ U R	                  U R                  US5      U5      $ )Nr   r   r#   )r+   r   r   r5   r   r   )r   r   exacts      r   eulernumr   v  sm    AA3==#$$3wwws}}Q'((1uxx99S]]1S)1--r   c                     U R                   7nU R                  nSnUn XeU-  -  nXG-  n[        U5      U:  a   U$ Xb-  nUS-  nM(  )Nr   )r   r5   rm   )r   r-   rT   tollr   zkterms           r   polylog_seriesr     sa    77(CA	A	
B
qDy		t9s? H 		Q r   c                    US:  a  US-  $ SU R                   -  nX1-  * U R                  U5      -  U R                  XR                  U5      U-  5      -  nU R	                  U5      (       a  US:  a  U R                  U5      nU R                  U5      S:  d*  U R                  U5      S:X  aF  U R                  U5      S:  a1  XCU R                  U5      US-
  -  -  U R                  US-
  5      -  -  nU$ )Nr   y               @r   )r   facr   r   ro   r   r6   )r   r   rT   twopijr   s        r   polylog_continuationr     s    1us
#&&[F	
3771:Qq	&0@ AAA
AGGAJ
wwqzA~#''!*/cggajAo	CFF1I!$$SWWQqS\11Hr   c                    U R                   7nUS:  a  U R                  nU R                  U5      nU R                  nSn X-
  S:w  aC  U R	                  X-
  5      U-  U R                  U5      -  nU(       a  [        U5      U:  a  OXH-  nXe-  nUS-  nMV  X@R                  U5      US-
  -  U R                  US-
  5      -  U R                  US-
  5      U R                  U R                  U5      * 5      -
  -  -  nOUS:  a  U R                  U* 5      U R                  U5      * US-
  -  -  nU R                  U5      nU R                  n	Sn
 U R                  X-
  S-   5      nU(       a2  X-  U R                  U
5      X-
  S-   -  -  n[        U5      U:  a  OXH-  nX-  n	U
S-  n
MZ  [        eU R                  U5      (       a  US:  a  U R                  U5      nU$ )Nr   r   )r   r5   r   r   rr   r   rm   harmonicr   r   ro   r   )r   r   rT   r   r   logzlogmzr   r   logkzr   r>   s               r   polylog_unitcircler     s   77(C1uHHvvayzxx}u,swwqz9CIO	MEFA  	
VVAY1cggacl*CLL1,=cffcffQiZ>P,PQQ	
QGGQBK#&&)qs++vvayac!e$Aw
ACE 23t9s?	MEFA  
AGGAJHr   c                 N   U R                   nU R                  U5      n[        U5      S:  d  U R                  nSU-
  nU R                  U* 5      SU R                  -  U-  -  nU R                  U5      XS-  U R                  USU-   5      -  XS* -  U R                  USU-
  5      -  -   -  SU R                  -  U-  -  $ SnSn U R                  X-
  5      U-  n	[        U	5      U R                  :  a  OX9-  nUS-  nXt-  nXx-  nMC  U R                  SU-
  5      U* US-
  -  -  U-   $ )N   r   r   r#   r   )r5   r   rm   r   r   gammarr   r   )
r   r-   rT   r   r   r   yr;   r   r   s
             r   polylog_generalr     s1   Aq	Aq6A:EEaCFFA2J#&&
#yy|QT#((1SU"33aeCHHQs1u<M6MMNPQRURXRXPX[\}\\	A	A
xx}q t9sww			Q		  99QqS>A21+%))r   c           	         U R                  U5      nU R                  U5      nUS:X  a  U R                  U5      $ US:X  a  U R                  U5      * $ US:X  a  USU-
  -  $ US:X  a  U R                  SU-
  5      * $ US:X  a  USU-
  S-  -  $ [	        U5      S::  d%  U R                  U5      (       d  [	        U5      S:  a  [        XU5      $ [	        U5      S:  aT  U R                  U5      (       a>  SUS-   -  [        XSU-  5      -  [        U [        U R                  U5      5      U5      -   $ U R                  U5      (       a%  [        U [        U R                  U5      5      U5      $ [        XU5      $ )Nr   r   r         ?g?gffffff?)r$   rr   altzetar   rm   r,   r   r   r+   r   r   r   )r   r-   rT   s      r   polylogr     sK   AAAAAvxx{BwAAv!A#wAvqs|Bw!A#z
1v~ciills1v|ca((
1v}1ac{>#!A#669McSVWZW]W]^_W`Sacd9eee
yy||!#s366!9~q9931%%r   c                    U R                  U5      (       a  US:  a  [        U5      S-  S:X  a  US-  $ U(       a  U R                  U5      nOU R                  U5      nU R	                  U5      (       a6  U R	                  U5      (       a   U R                  U R                  X5      5      $ SU-  nSU R                  X5      U R                  X5      -
  -  $ )Nr   r   r   r2   )r,   r+   expjpirq   ro   imr   r   r-   rT   r   r   r>   s         r   clsinr     s    
yy||A#a&1*/s
	JJqMHHQK
 1 1! 4 4vvckk!&''	!ACKK$s{{1'7788r   c                    U R                  U5      (       a  US:  a  [        U5      S-  S:X  a  US-  $ U(       a  U R                  U5      nOU R                  U5      nU R	                  U5      (       a6  U R	                  U5      (       a   U R                  U R                  X5      5      $ SU-  nSU R                  X5      U R                  X5      -   -  $ )Nr   r   r   r#   )r,   r+   r   rq   ro   r   r   r   s         r   clcosr     s    
yy||A#a&1*/s
	JJqMHHQK
 1 1! 4 4vvckk!&''	!AA 3;;q#3344r   c                 l     U R                   " U40 UD6$ ! [         a    U R                  U5      s $ f = frC   )_altzetarp   _altzeta_generic)r   r-   ru   s      r   r   r     s;    '||A((( '##A&&'s    33c                     US:X  a  U R                   SU-  -   $ U R                  SSU-
  5      * U R                  U5      -  $ )Nr   r   r   )ln2powm1rr   )r   r-   s     r   r   r   
  s@    Avww1}IIa1++r   Nc                    [        U5      nUS:X  a"  U(       d  U(       d   U R                  " U40 UD6$ U R                  U5      nU R                  nUR                  S5      nUR                  S5      nU(       d-  U(       d&  U R                  S5      U R                  U5      S   -
  $ US:X  a  US:w  a  [        U R                  U5      5      n	[        U R                  U5      5      n
[        U	5      SU-  :  a  SU
-  U:  a  US	::  d  US
:X  a-    U(       a  [        S5        U R                  " X40 UD6Xpl        $ US:X  a  U R                  $ [        U5      nXR                  :X  aB  U R                  U5      U R                  :X  a  US:X  a  U R                  $ U R                   $ US-  $ U R#                  U5      (       a  SU-  $ U R                  U5      SU R                  -  :  a-  US:X  a'  U(       d   U R                  U R%                  SU* 5      -   $ U R&                  " XU40 UD67$ ! [         a     GNf = f! [         a    U(       a  [        S5         Of = f Xpl        GN)! Xpl        f = f)Nr   methodverboser#   r   zeuler-maclaurinrL   r"   r\   zriemann-siegelz4zeta: Attempting to use the Riemann-Siegel algorithmz0zeta: Could not use the Riemann-Siegel algorithmr   )r+   _zetarp   r$   r(   rl   r   _convert_paramrm   r6   r   printrs_zetar*   r   r   r5   r   power_hurwitz)r   r-   r   r<   r   ru   r=   r(   r   r   r   absss               r   rr   rr     s   JAAvqF	99Q)&)) 	AA88DZZ!Fjj#G
wws|c003A666Av&--__ r7SX"R%$,:?&&
 TU;;q??  Avwwq6Dww66!9Avww88Os
	4s

vvay1SXX:!q&ww1qb)))LLq+F+++] # 		6 + PQ 4s5   H( $H9 (
H65H69II$ II$ $I,c                    U R                   nUR                  S5      n SnU =R                   U-  sl         U R                  U5      u  p(U R                  U5      S:  a&  U(       a  [	        S5         [        XX#U5      XPl         $ U(       a  [	        S5         XW-   U l         [        XX#US-   U5      u  pU R                  U	5      U R                  X-   5      -
  nU(       a%  [	        SU	5        [	        SU
5        [	        S	US
5        X:  a
  X-   XPl         $ [        SU-  [        US-   SU-  5      5      nXtR                  SSU-  5      :  a  U R                  S5      eM  ! [         a     Of = fU(       d  M  [	        S5        N! XPl         f = f)Nr   r"   r   z#zeta: Attempting reflection formulazzeta: Reflection formula failedz)zeta: Using the Euler-Maclaurin algorithmzTerm 1:zTerm 2:zCancellation:bitsr   r   r   maxpreczzeta: too much cancellation)r(   rl   r   r   r   _hurwitz_reflectionrp   _hurwitz_emr   maxminNoConvergence)r   r-   r   r=   ru   r(   r   	extraprecatypeT1T2cancellations               r   r   r   F  sq   88Djj#G	I%%a(66!9q=;<*31?, # =>'CH tBw@FB772;7Li$i$o|V<'w 	  )S1A3t8-LM	zz)SX>>++,IJJ  ' w78$ s>   AF 1E BF A
F 
E*'F )E**
F 6F F
c                 X  ^ ^^^ US:w  a  [         eT R                  U5      nU* nT R                  U5      (       a,  [        U5      nUS::  a  T R	                  SU-
  U5      US-
  -  $ US:X  d  US:X  d  [         eSU-
  mSnSn	UmT R                  T5      S:  a)  TS-  mUTU-  -  nU	S-  n	T R                  T5      S:  a  M)  T R                  T5      S::  a)  UTU-  -  nTS-  mU	S-  n	T R                  T5      S::  a  M)   UR
                  u  n
mXT-  -  n
SU
s=::  a  T::  d   e   eT R                  UU UU4S j[        STS-   5       5       5      nUST R                  T5      -  ST R                  -  T-  T-  -  -  nX-  nU$ !   U[        U5      :X  d   e[        U5      n
Sm N= f)Nr   r   QZc              3      >#    U  H7  nTR                  TS -  S U-  T-  -
  5      TR                  TUT45      -  v   M9     g7f)r   N)cospir   ).0r   r>   r   qr;   s     r   	<genexpr>&_hurwitz_reflection.<locals>.<genexpr>  sE      A 1Q3qs1u9%cll1aU&;;s   ?Ar   )
rp   r   isnpintr+   r   _mpq_fsumranger   r   )r   r-   r   r=   r   resnegsr   r   shiftprI   r>   r  r;   s   `           @@@r   r   r   k  s   Av!!
&&)C2D
{{1~~H6<<!Q'1Q3//SLESL!!	!A	AE	A
&&)a-	Q	QW
 &&)a- &&)q.	QW	Q
 &&)q.
ww1
 qLA;Q;;; q1 	A399Q<366!a	''AFAHCF{{Fs   F  F)c           
         U R                  U5      nU* nSnUS-  nUn	Sn
U R                  U5      (       a  [        U R                  U5      5      nUS-
  n U R	                  XU-   X-
  S-
  U/5      S   S   nX-  n
X-   nU R                  U5      nX-  nU/nSU-  nSU-  nX* -  nU(       a   U R                  US-   X-  5      XS-   -  -  nO
SXU-  -  -  nUSU-  U-  -  nS/nUnSn[        SU	S-   5       GH  nSU-  nUS:X  a  S/nO
US-
  US-
  /nU H  n[        UUS-   5      nUU::  a  UR                  US   U-  5        S/US-   -  n[        U5       H  nSU-
  U-
  UU   -  UU'   M     [        SUS-   5       H  nUU==   UUS-
  -
  UUS-
     -  -  ss'   M!     UnUU-  nM     U R                  UU5      U-  U R                  U5      -  U* -  nUU-  nU R                  U5      U:  a  U
SU-  U-  4s  $ UUS-   US-   -  -  nGM     U(       a  [        SXxSU R                  W5      S	U5        XS-  pU R                  U5      S:  a  XS-  -  n	GM  )
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     s   AA%C	
B	B
AD
yy||
O	
1B
LLqD"%'A3/215
 		d)yxuRyll1Q3	2RA#Y>G"Ri(G3=4''Cq!A#A1BAvs1bd|!A#J6KKR40S!A#YAQqSUAaDLBqE!A#A1!QqS'1QqS61A(AT	  D!A%b(99D5AAqLGwwqzCb1Ww...RTBqDM!D) * ,(8#''!*kSVWTB66!9q=AIAa r   c                   ^ ^^
^ [        T R                  U5      5      ST R                  -  :  a   T R                  UTX4U5      $ T R                  USS9mUS/:g  n[        U5      S:H  nU(       ds  U(       d+  T R                  UU4S j[        US-   5       5       5      // 4$ U(       a:  US   m
T R                  UU U
U4S j[        US-   5       5       5      nST
-  U-  // 4$ [        U5      n	U(       d  [        U	S-   5      nU V
s/ s H  n
T R                  PM     nn
U(       a  U V
s/ s H  n
T R                  PM     nn
O/ n[        US-   5       H  nTU-   nUT-  nU(       a   T R                  T R                  X-  -  5      nU(       a  T R                  U5      * nU(       a0  UU	-  nUS==   UU-  -  ss'   U(       a  US==   WU-  -  ss'   M  M  T R                  nU H/  m
UT
==   UU-  -  ss'   U(       a  UT
==   WU-  -  ss'   UU-  nM1     M  US==   U-  ss'   U(       d  M  US==   W-  ss'   M     X4$ ! [         a     GNf = fs  sn
f s  sn
f )	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   4   >#    U  H  nTU-   T-  v   M     g 7frC   rQ   )r  r   r   r
  s     r   r  _zetasum.<locals>.<genexpr>  s     >+QacD[+s   c              3   d   >#    U  H%  nTR                  TU-   5      T-  TU-   T-  -  v   M'     g 7frC   )r   )r  r   r   r   r=   r
  s     r   r  r*    s.     K{!!a1Q3+5{s   -0r   )rm   r   r(   _zetasum_fastrp   fnegr   r  r   r   r  r5   conjr   r   )r   r-   r   r   derivativesreflecthave_derivativeshave_one_derivativer   maxdr=   xsysr   r   xtermytermlogwr;   r
  s   ` `       `        @r   r  r    s?    366!9~chh&	$$Q17CC 88AT8"D"qc)k*a/HH>&1+>>?CCAAKvac{KKA!GaK="$${DDFm'	(Kq#((KB	( +,1chh,AaC[ET	HHSWW	23EFF1I:D"t|1%qEUT\)E  GG$AqEUQY&E1*IA	 % qEUNEw1- . 6MW # 		 
),s   I I*I
IIc           	         U R                  U5      n[        U5      n[        U5      nUS:  a  [        S5      eU R                  n U =R                  S-  sl        US:X  ad  SnU HB  nU(       d  M  US:w  d  M  SnU R
                  7n	U =R                  SUS-   -  -  sl        X-  nMD     U(       a  U R                  7X`l        $ U R                  n
[        SUS-   5       Hz  nX+U-     (       d  M  US:X  aF  XX-     U R                  XU4S5      U R                  XU45      U R                  U5      -  -
  -  -  n
M]  XX-     U R                  XU45      -  -  n
M|     XU-  -  n
X`l        U
7$ ! X`l        f = f)Nr   zarbitrary order derivativesr"   r   TF)r$   r   r+   rp   r(   r   r*   r5   r  rr   r:   )r   r-   chir<   r  r=   r(   	have_poler   ry   rT   r  s               r   	dirichletr<    so   AACAJA1u!"?@@88DB6I1a %IAHH1Q3'HFA  x  HHq1AQ3xx6QSSXXaA%:qE*3771:5&6 7 7A QSCHHQ1$666A  	
T	2I s&   'E. 1E. 9AE. (E. 1A4E. .E6c                 n  ^ ^^^ T R                   nUU UU4S jnT R                  =pgT R                  nSn	X:  aC  Xg-  nU	S-  n	T R                  T R	                  U	5      5      mU" U	5      n[        U5      nX:  a  MC  Sn
UR                  S5      (       a  T R                  T5      nST R                  S-  -  [        SU5      -  TUS-
  -  -  T R                  TST R                  -  -  5      -  T R                  STTS-  -  5      -  [        T R                  TS-  5      5      -  n
[        U
5      n
U7X4$ )	Nc                 F   > TR                  ST-  TTS-  -  SS9TT* -  -  $ )Nr#   r   T)regularized)r  )r   r   r   gammr-   s    r   rD   &secondzeta_main_term.<locals>.<lambda>7  s+    #,,s1uaaiT,B41":Mr   r   r   errorr#   r   r   r3   )r   r5   r*   r   zetazero_memoizedrm   rl   r   r   r   r:   r  r   )r   r-   r   ru   r   r   totsumr   mgr   r   sgr@  s   ```         @r   secondzeta_main_termrG  5  s"   
''CMAHHF	B	A
(	Qvvc++A./tY ( Czz'VVAY#&&2,s1Ry(RV4SWWT1SVV8_5MM\\$$'	*++.syy1~+>?#h7C?r   c                 4  ^ ^^ T R                   nUU U4S jnT R                  =pgT R                  nSn	X:  d  U	S:  a>  Xg-  nU	S-  n	U" U	5      nUS:X  a  T R                  nO[        U5      nX:  a  M6  U	S:  a  M>  UR	                  S5      (       a  Un
U7W
U	4$ )Nc                 P  > TR                  SST-
  -  STR                  U 5      S-  -  TS-  -  5      STR                  U 5      -  TS-
  -  -  TR                  U 5      -  TR                  U 5      -  STR	                  ST-  5      -  TR                  TR
                  5      -  -  $ )Nr#   r   r1   r   r   )r  r:   mangoldtr   r   r   r   r   r   r-   s    r   rD   'secondzeta_prime_term.<locals>.<lambda>K  s    #,,sAaCycggaj!m);a"g)EF
cggaj.AaC	 ""%,,q/225((1+>	
399SU	CHHSVV,	,.r   r   	   r   rB  )r   r5   r*   rm   rl   )r   r-   r   ru   r   r   rD  r   rE  r   r   s   ```        r   secondzeta_prime_termrN  I  s    
''C	.A HHF	B	A
(a!e	Qt19BTB (a!e zz'7C?r   c                   ^ ^^ T R                  T5      (       aZ  T R                  T5      S::  aE  [        [        T R                  T5      5      5      nUS-  (       d  T R	                  S5      U* S-  -  $ T R
                  nUU U4S jnT R                  nU" S5      nT R                  nSn	X:  a#  Xg-  nU	S-  n	U" U	5      n[        U5      nX:  a  M#  TST-  -  U-  T R                  ST-  5      -  n
U
$ )Nr   r   z-0.25r   c                 J   > ST-  U -  U ST-  -   TR                  U 5      -  -  $ )Nr1   r#   )r   rK  s    r   rD   %secondzeta_exp_term.<locals>.<lambda>c  s'    46A+#a%34r   r#   )
r,   r   r+   r   r   r   r5   r*   rm   r   )r   r-   r   r   r   r   rD  r   rE  r   r   s   ```        r   secondzeta_exp_termrR  ]  s    
yy||q	QcffQi !1u777#qb!e,,
''C4AXXFQ4D	B	A
(	QtY	 (
 	
CE
6#))CE**AHr   c           	        ^ ^^ TSTS-
  -  -  ST R                  T R                  5      -  T R                  ST-  5      -  -  nT R                  U5      nT =R                  U-  sl        TSTS-
  -  -  ST R                  T R                  5      -  T R                  ST-  5      -  -  nT R
                  nUU U4S jnT R                  nT R                  n	Sn
U" U
5      n[        U5      nX:  a@  X::  a;  X-  nU
S-  n
U" U
5      nX-  nU
S-  n
U" U
5      nUn	[        U5      nX:  a  X::  a  M;  X-  nSTS-
  S-  -  T R                  T R                  ST R                  S-  -  T-  5      -   TS-
  S-  -  -   nXMU-   -  nS	nUR                  S
5      (       a  X:  a  X::  dz  X::  a8  T R                  S5      [        T R                  [        XF-  5      S5      5      -  nX:  a8  T R                  S5      [        T R                  [        XI-  5      S5      5      -  n[        UT R
                  S-  5      nT =R                  U-  sl        U7U4$ )Nr#   r   r\   c                    > TR                  U S5      STR                  T5      -  U -  -  TR                  SU -  5      -  TU -   S-
  TR                  U 5      -  -  $ )Nr   r\   r#   r   )r   r   r   r   rK  s    r   rD   *secondzeta_singular_term.<locals>.<lambda>v  sX    #,,q&#((1+'99
yyQA#a%+-r   r      r   r   r   rB  r"         ?)r   r   r   r   r(   r   r5   r*   rm   r'   r:   rl   r   r+   r   )r   r-   r   ru   factorr   r   r   rD  mg1r   r   mg2polestr   s   ```             r   secondzeta_singular_termr]  p  s   ac^Qsxx//		#a%0@@AFIHH	Hac^Qsxx//		#a%0@@AF
''C	-AXXF
''C	AQ4D
d)C
)
	Qt	At$i )
 NFqsbk>399SWWR	\!^%<<qsbkIID	f	B
Czz'zggbk3swws6:r'B#CCyggbk3swws6:r'B#CC#swwrz"HH	H38Or   c           	         U R                  U5      nU R                  U5      nU R                  nU R                  U5      (       a  U R                  U5      S::  a  [	        US-
  5      US-  :  a  U R
                  $ [        [        U R                  U5      5      5      nUS-  (       a  U R
                  $ SU* S-  -  U R                  SU R                  U* SS9-
  SU* S-   -  5      -  $ U R                  n [        XU5      n[        U R                  U5      S	5      nU =R                  US-   -  sl
        [        XUS
S
S9u  pn[        XUS
S
S9u  pn[!        XUS
S9u  nn[        XU5      nX-   U-   nX-
  U-   U-
  nUR#                  S5      (       aJ  [%        SU	5        [%        SUS5        [%        SU5        [%        SUS5        [%        SU5        [%        SU5        X`l
        UR#                  S5      (       aN  [        U R                  [	        U5      5      S	5      n[        USU-  -  U R                  S-  SU-  -  5      nU7U4$ U7$ ! X`l
        f = f)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   rA   Tr(  r    r   True)rB  r   )rB  r   zmain term =z    computed usingzzeros of zetazprime term =z#values of the von Mangoldt functionzexponential term =zsingular term =rB  rW  )r$   r   r,   r   rm   r*   r+   r   fractionr   r(   rR  r   r   rG  rN  r]  rl   r   )r   r-   r   ru   r   r   r(   t3r   rv   r1gtrw   r2ptt4r4r   r;   r   s                       r   
secondzetarh    s+   x 	AAAA
''C
yy||q	Qqs8c$h77NcffQi !q577NA2q5M<<#,,r,"= =a1"Q$iHI J88D +A&	IM!)#O
*3P
)#?B +eBhE"HRK::i  -$&O<."%&,QR&+#R(zz'A"#ad(CGGBJq!tO,r3w2I s   6C(I Ic                   ^ ^^^	^
^ US:X  a  TT* -  $ US:X  a  T R                  TT5      $ TS:X  a  T R                  TU5      U-  $ T R                  T5      S:  a  T R                  T5      (       a  [	        S5      e[        T R                  ST R                  T5      -
  5      5      nT R                  nT R                  n[        U5       H  nXVTU-   T-  -  -  nXa-  nM     UT R                  UTTU-   5      -  U-   $ T R                  U5      m	SSTT-  -  -  T R                  ST-
  T* T	-  5      T	* TS-
  -  -  UT-  -  -   nTS-  m
ST R                  -  mUU U	U
UU4S jnUST R                  UST R                  /5      -  -  nT R!                  U5      (       dR  T R!                  T5      (       d<  T R!                  T5      (       d&  T R                  U5      S:  a  T R#                  U5      nU$ )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                    > TR                  TTR                  U T-  5      -  U T-  -
  5      TS-  U S-  -   T-  TR                  TU -  5      -  -  $ rP   )sinatanexpm1)r;   r   r   rI   ry   r   r-   s    r   rD   lerchphi.<locals>.<lambda>}  sP    #''!CHHQqSM/!A#-.
Q$q!t)a#))AaC.	(*r   )rr   r   r   r  r   r+   r   r5   r   r   lerchphir   r  r   r)   r*   r   chop)r   rT   r-   r   r   r   zpowr   r   rI   ry   r   s   ` ``     @@@r   ro  ro    s   b 	AvaRyAvxx1~Av{{1a 1$$
vvay1};;q>>BCC366!9%&HHwwA1q AID  cll1Q!,,q00q	A	1QT6
S\\!A#r!t,ac{:QTAAA	AA	#&&A	* 	*A388A377|$	$$A66!99SVVAYYsvvayySVVAY]HHQKHr   )r   )r   )z2http://www.dtc.umn.edu/~odlyzko/zeta_tables/zeros1)F)r   r   N)r   r   )gQ?)+
__future__r   libmp.backendr   	functionsr   r   r	   r/   r?   rJ   rj   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rr   r   r   r   r  r<  rG  rN  rR  r]  rh  ro  rQ   r   r   <module>ru     s@   % " 9 9# #J + +B B B J% J%Z. 
E 
E  , # #   % %F *) *)X %) %)N . .	"H*( & &* 
9 
9 
5 
5 ' ' , ,
 3, 3,j " "H'R=B ()sE ; ;z #!  B((&"H  D j jr   