
    [hh                         S r SSKr " S S\5      rSSKJr  S rS rS	 rS
 r	SS jr
S/4S jrSS jrSS jrSS jrSS jr\SS j5       r\SS j5       rg)aI  
---------------------------------------------------------------------
.. sectionauthor:: Juan Arias de Reyna <arias@us.es>

This module implements zeta-related functions using the Riemann-Siegel
expansion: zeta_offline(s,k=0)

* coef(J, eps): Need in the computation of Rzeta(s,k)

* Rzeta_simul(s, der=0) computes Rzeta^(k)(s) and Rzeta^(k)(1-s) simultaneously
  for  0 <= k <= der. Used by zeta_offline and z_offline

* Rzeta_set(s, derivatives) computes Rzeta^(k)(s) for given derivatives, used by
  z_half(t,k) and zeta_half

* z_offline(w,k): Z(w) and its derivatives of order k <= 4
* z_half(t,k): Z(t) (Riemann Siegel function) and its derivatives of order k <= 4
* zeta_offline(s): zeta(s) and its derivatives of order k<= 4
* zeta_half(1/2+it,k):  zeta(s)  and its derivatives of order k<= 4

* rs_zeta(s,k=0) Computes zeta^(k)(s)   Unifies zeta_half and zeta_offline
* rs_z(w,k=0)    Computes Z^(k)(w)      Unifies z_offline and z_half
----------------------------------------------------------------------

This program uses Riemann-Siegel expansion even to compute
zeta(s) on points s = sigma + i t  with sigma arbitrary not
necessarily equal to 1/2.

It is founded on a new deduction of the formula, with rigorous
and sharp bounds for the  terms and rest of this expansion.

More information on the papers:

 J. Arias de Reyna, High Precision Computation of Riemann's
 Zeta Function by the Riemann-Siegel Formula I, II

 We refer to them as I, II.

 In them we shall find detailed explanation of all the
 procedure.

The program uses Riemann-Siegel expansion.
This  is useful when t is big, ( say  t > 10000 ).
The precision is limited, roughly it can compute zeta(sigma+it)
with an error less than exp(-c t) for some constant c depending
on sigma.  The program gives an error when the Riemann-Siegel
formula can not compute to the wanted precision.

    Nc                       \ rS rSrS rSrg)RSCache5   c                     SS0 0 /U l         g )Nr   
   )	_rs_cache)ctxs    O/var/www/auris/envauris/lib/python3.13/site-packages/mpmath/functions/rszeta.py__init__RSCache.__init__6   s    BB     N)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r
   r   r   5   s    (r   r      )defunc                 f   US-   nUS-  n[        U R                  SUS-   -  5      SU-  S-   U R                  U5      -
  5      nU R                  SU-  5      n[        U R                  SU-  5      U R                  U5      S-   U-   5      nXpl        0 nU R                  US'   U R
                  US	'   [        SSU-  S	-   5       H  n	XS	-
     U R
                  -  X'   M     US-   U l        0 n
0 n[        SUS	-   5       HO  n	S
U	-  U R                  SU	-  5      -  nU R                  U5      U R                  SU	-  5      -  nXSU	-     -  X'   MQ     [        SSU-  S	-   5       H2  n	U R                  U R                  U	5      -  nUSU	-  -  nXU	   -  X'   M4     SU l        SU R                  U5      -
  n0 n[        SUS	-   5       H  n	SU l        [        U R                  SU	S-   -  5      SU	-  U-   5      nUU l        Sn[        SU	S	-   5       H   nUS
U-  U
U   -  USU	-  SU-  -
     -  -  nM"     S
U	S	-   -  U R                  -  U-  X'   M     0 n[        SUS	-   5       Hx  n	SU l        [        U R                  SU	S-   -  5      SU	-  U-   5      nUU l        Sn[        SU	S	-   5       H&  nUU R                  U	U-
  -  U
U   -  XU-
     -  -  nM(     UUU	'   Mz     SU l        SU R                  U5      -
  n[        SSU-  U-   5      nUU l        U R                  U R                  S5      5      S-  nU R                  S5      S-  n0 n[        SU5       H9  n	SU l        [        SSU	-  U-   5      nUU l        UX   -  UUU	   -  -   USU	-  '   M;     [        S	SU-  S5       H  n	SUU	'   M
     X4UU/$ )a  
Computes the coefficients  `c_n`  for `0\le n\le 2J` with error less than eps

**Definition**

The coefficients c_n are defined by

.. math ::

    \begin{equation}
    F(z)=\frac{e^{\pi i
    \bigl(\frac{z^2}{2}+\frac38\bigr)}-i\sqrt{2}\cos\frac{\pi}{2}z}{2\cos\pi
    z}=\sum_{n=0}^\infty c_{2n} z^{2n}
    \end{equation}

they are computed applying the relation

.. math ::

    \begin{multline}
    c_{2n}=-\frac{i}{\sqrt{2}}\Bigl(\frac{\pi}{2}\Bigr)^{2n}
    \sum_{k=0}^n\frac{(-1)^k}{(2k)!}
    2^{2n-2k}\frac{(-1)^{n-k}E_{2n-2k}}{(2n-2k)!}+\\
    +e^{3\pi i/8}\sum_{j=0}^n(-1)^j\frac{
    E_{2j}}{(2j)!}\frac{i^{n-j}\pi^{n+j}}{(n-j)!2^{n-j+1}}.
    \end{multline}
          @r            (   r   r      	      2g      ?)maxmag	_eulernumpreconepirangempffacjsqrtexpjpi)r	   JepsnewJneweps6wpvwEwppipipowernvwvawawpp1aP1wpp1sumpkP2wpp2wpc0wpcmunucs                             r
   _coefrG   N   s   : Q3D"fG swwr46{#QtVAXcggg.>%>?D 	afA" swwr$wq$!67DHGGAJGAJ1QtVAXqS\#&&(
 
 AvCHAA1T!V_1Ws}}QqS))WWR[1%!_  1QtVAXWWSWWQZq!t9
]  CH  E	B1T!V_3772qs8$QqSY/q1Ab1W!$Qqs1Q3wZ//D ac{CEE!$&  
B1T!V_3772qs8$QqSY/q1ASUUQqS\QqT)!aC&00D 1  CHswwwD
a$t
CCH	#''#,		!B	D	!	BA1T]!AaCHoBE"RU("!A#	 
 1QtVA! 1g&&r   c                   ^  T R                   nXS   ::  a  X#S   :  a
  US   US   4$ T R                  R                  n [        T R                  X5      nUT R                  l        T T R                  LaR  [	        U 4S jUS   R                  5        5       5      US'   [	        U 4S jUS   R                  5        5       5      US'   UT R                   S S & T R                   S   T R                   S   4$ ! UT R                  l        f = f)Nr   r   r   r   c              3   N   >#    U  H  u  pUTR                  U5      4v   M     g 7fNconvert.0r?   r7   r	   s      r
   	<genexpr>coef.<locals>.<genexpr>         Geq#++a.)   "%c              3   N   >#    U  H  u  pUTR                  U5      4v   M     g 7frJ   rK   rM   s      r
   rO   rP      rQ   rR   )r   _mpr%   rG   dictitems)r	   r.   r/   _cacheorigdatas   `     r
   coefrZ      s    ]]F1I~#*ay&)##77<<DSWWa%
#''GtAw}}GGQGtAw}}GGQCMM!==S]]1--- s   C4 4Dc                    SU-  U-  nU R                  U5      nSU R                  U R                  5      -  U R                  U5      -   U R                  U5      -   S-  U R                  SU R                  -  5      S-  -
  nSU-  S-
  nU R                  US-   5      U R                  US-  S-   5      -
  S-  U R                  US-   S-  5      -
  n	XhU-  U	-   :  ae  US:  a_  US-
  nU R                  US-   5      U R                  US-  S-   5      -
  S-  U R                  US-   S-  5      -
  n	XhU-  U	-   :  a  US:  a  M_  Un
U
$ )Ngbk5_@r   r   r         @r   )lnr'   loggamma)r	   xAxeps4axB1xLaux1aux2maux3xMs              r
   aux_M_Fpri      sA    r>%D66$<DcffSVVnSVVC[(2A5svvah7G7IID	"QA<<!S\\!C%'22A
5s||QqS"H7M
MDD&$,AaCEQqS!#,,quQw"77:CLL!A#r<RR D&$,AaC 
BIr   c                 ~    USU-  -  nXC-  S-  nX`R                  XuS-  -  US-
  S-  5      -  U-  n[        Xg5      nU$ )Nx  gJR_@r   r   r   )powermin)	r	   r_   r`   ra   rb   rh   h1h2h3s	            r
   aux_J_neededrq      sR    
 
BB	&	&B	iiEBqD!8,	,r	1B	RBIr   c                 7  ^  T R                   nT R                  U5      nT R                  U5      nSU-
  nST l         T R                  UST R                  -  -  5      nXu-  nXv-  n	T R                  ST R                  U5      S-
  5      n
T R                  ST R                  U	5      S-
  5      nT R                  SU* 5      nUS-  nX-  S-  nX-  S-  nST l         US:  a6  Sn[        R                  " SU5      S	-  n[        R                  " SU5      nSnO7S
n[        R                  " SU* 5      S	-  n[        R                  " SU* 5      nSnUS:  a6  Sn[        R                  " SU5      S	-  n[        R                  " SU5      nSnO7S
n[        R                  " SU* 5      S	-  n[        R                  " SU* 5      nSnST l         SnSU-  T R                  US-  5      -  T R                  UU-  U* 5      -  U:  a<  US-   nSU-  T R                  US-  5      -  T R                  UU-  U* 5      -  U:  a  M<  [        SU5      nSnSU-  T R                  US-  5      -  T R                  UU-  U* 5      -  U:  a<  US-   nSU-  T R                  US-  5      -  T R                  UU-  U* 5      -  U:  a  M<  [        SU5      nSU-  SU-  U-  S-  :  dT  SU-  S-   U-   S:  dE  [        U5      US-  :  d3  SU-  SU-  U-  S-  :  d!  SU-  S-   U-   S:  d  [        U5      US-  :  a  UT l         [        S5      e[        UU5      nUSU-  -  nUSU-  -  nUSU-  -  nUSU-  -  n[        T UUUUU5      n[        T UUUUU5      n [        UU 5      n![        T UUUUU5      n"[        T UUUUU 5      n#[        U"U#5      n"Sn$ST R                  -  U$-  T R                  U$S-   5      -  n%U%U":  a"  U$S-   n$ST R                  -  U%-  U$-  n%U%U":  a  M"  0 n&[        R                  [        R                  -  U-  U-  n'[        R                  [        R                  -  U-  U-  n([!        SS5       H  n)[        R                  " U'U)S-  5      SU-  -  n*[        R                  " U(U)S-  5      SU-  -  n+[        U*U+5      n,T R                  U)S-   5      T R                  U)S-  S-   5      -  n-[        R                  " U-5      n-U,U--  [        UU5      -  U&U)'   M     [        SU-  S-
  S5      S-   n.SU$-  n/T R                  SU$-  5      n0[!        SU.5       H9  n)[        U0T R                  U/T R                  U)S-   5      -  U&U)   -  5      5      n0M;     U0T R                  U5      -   S-   T l         T R                  UST R                  -  -  5      nT R#                  U5      n1SSUU1-
  -  -
  n2T R#                  U2T R%                  S5      U0-  -  5      n3U2T R%                  S5      U0-  -  U3-
  n4U4S:  a  U3n3OU3S-   n3T R'                  U3T R%                  S5      U0* -  -  5      n2T R                  T R'                  ST R                  -  5      U$5      T R                  U$S-   5      S-  U$-  -  n50 n60 n7[)        T U$U55      u  n7n8U7R+                  5       n60 n9[!        U!SU-  S-
  5       H  n:SU9U:'   M
     0 n9U0T l         [!        SU!S-   5       H_  n)Sn;[!        SU$-  U)-
  S-
  SS5       H  n<U;U2-  U6U<   -   n;M     U;U9U)'   [!        SSU$-  U)-
  S-
  5       H  n<U<S-   U6U<S-      -  U6U<'   M     Ma     0 n=[        ST R                  SU-  U-  5      5      n>ST R                  S[        U5      -   U-  5      -   T R                  U5      -
  S-
  n?T R-                  ST R                  T R                  -  U-  U-  U-  U-  -  5      S-  n@[!        SU5       H\  n:T R                  T R                  T R                  U:S-
  5      5      5      T R#                  U:W@-  5      -
  U?-   nA[        UAU>5      U=U:'   M^     U=S   S-   T l         SSU-  -
  nB0 nCSUCS'   SUCS '   SUCS!'   SUCS"'   SUCS#'   SUCS$'   SUCS%'   SUCS&'   [!        SU5       GH9  n:U=U:   S-   T l         [!        SSU:-  S-  S-   5       H  n<SU:-  SU<-  -
  n)U)S:w  a\  T R.                  U)-  nDUDS-  nEWBUD-  S-  nFU)S-   * nGUGWCSU:S-
  U<S-
  4   -  UEUCSU:S-
  U<4   -  -   UFUCSU:S-
  U<S-
  4   -  -   UCSU:U<4'   Mp  SWCSU:U<4'   [!        SU<5       Hf  nHWCSU:UH4   T R%                  S'5      T R1                  SU<-  SUH-  -
  5      -  T R1                  U<UH-
  5      -  -  nIUCSU:U<4==   SU<UH-
  -  UI-  -  ss'   Mh     M     SWCSU:S(4'   SUCSU:S4'   SUCSU:SU:-  S-  S-   4'   GM<     [!        S(US-   5       Hd  nJ[!        S(U5       HQ  n:[!        S)[        SSU:-  S-  S-   5      5       H+  n<WJS:  d  U:S:  d  U<S:  d  U<SU:-  S-  :  d  M#  SWCWJU:U<4'   M-     MS     Mf     [!        SUS-   5       H  nJ[!        SU5       H~  n:U=U:   S-   T l         [!        SSU:-  S-  S-   5       HU  n<SWJ-  S-
  WCUJS-
  U:S-
  U<S-
  4   -  SUU:-   S-
  -  UCUJS-
  U:S-
  U<S-
  4   -  -   n/U/UCUJS-
  U:S-
  U<S-
  4   -
  UCUJU:U<4'   MW     M     M     0 nK[        ST R                  SU-  U-  5      5      n>ST R                  S[        U5      -   U-  5      -   T R                  U5      -
  S-
  nLT R-                  ST R                  T R                  -  U-  U-  U-  U-  -  5      S-  nM[!        SU5       H\  n:T R                  T R                  T R                  U:S-
  5      5      5      T R#                  U:WM-  5      -
  WL-   nN[        UNU>5      WKU:'   M^     WKS   S-   T l         SSU-  -
  nO0 nPSUPS'   SUPS '   SUPS!'   SUPS"'   SUPS#'   SUPS$'   SUPS%'   SUPS&'   [!        SU5       GH9  n:WKU:   S-   T l         [!        SSU:-  S-  S-   5       H  n<SU:-  SU<-  -
  n)U)S:w  a\  T R.                  U)-  nDUDS-  nEWOUD-  S-  nFU)S-   * nGUGWPSU:S-
  U<S-
  4   -  UEUPSU:S-
  U<4   -  -   UFUPSU:S-
  U<S-
  4   -  -   UPSU:U<4'   Mp  SWPSU:U<4'   [!        SU<5       Hf  nHWPSU:UH4   T R%                  S'5      T R1                  SU<-  SUH-  -
  5      -  T R1                  U<UH-
  5      -  -  nIUPSU:U<4==   SU<UH-
  -  UI-  -  ss'   Mh     M     SWPSU:S(4'   SUPSU:S4'   SUPSU:SU:-  S-  S-   4'   GM<     [!        S(US-   5       Hd  nJ[!        S(U5       HQ  n:[!        S)[        SSU:-  S-  S-   5      5       H+  n<WJS:  d  U:S:  d  U<S:  d  U<SU:-  S-  :  d  M#  SWPWJU:U<4'   M-     MS     Mf     [!        SUS-   5       H  nJ[!        SU5       H~  n:WKU:   S-   T l         [!        SSU:-  S-  S-   5       HU  n<SWJ-  S-
  WPUJS-
  U:S-
  U<S-
  4   -  SUU:-   S-
  -  UPUJS-
  U:S-
  U<S-
  4   -  -   n/U/UPUJS-
  U:S-
  U<S-
  4   -
  UPUJU:U<4'   MW     M     M     0 nQ0 nRST l         T R                  SUS-   -  5      nET R                  S*US-   -  U-  5      nST R                  UU-  [        R                  " T R                  5      -  5      S-
  nT[!        SU5       H  n<WSU<WT-  -
  T R                  T R1                  U<S-   5      5      S-  -   nU[        WEUUT R                  U5      -
  S-   5      S-   S-   S+-  WQU<'   [        UET R                  US-   5      UU-   T R                  U5      -
  S-   5      S-   S-   WRU<'   M     0 nV0 nWST l         T R                  SUS-   -  5      nET R                  S*US-   -  U-  5      nXT R                  UU-  [        R                  " T R                  5      -  5      S-
  nY[!        SU5       H  n<WXU<WY-  -
  T R                  T R1                  U<S-   5      5      S-  -   nZ[        WEUZT R                  U5      -
  S-   5      S-   S+-  WVU<'   [        UET R                  US-   5      UZ-   T R                  U5      -
  S-   5      S-   S-   WWU<'   M     0 n[[!        SUS-   5       H:  nJ[!        SU5       H'  n<[!        S(SU<-  S-  S-   5       H  n\SW[WJU<U\4'   M     M)     M<     [!        SUS-   5       H  nJ[!        SU5       Hs  n<WQU<   T l         [!        SSU<-  S-  S-   5       HM  n\WCWJU<U\4   U9SU<-  SU\-  -
     -  U8SU<-  U\-
     -  W[UJU<U\4'   U[UJU<U\4   ST R2                  -  U\-  -  U[UJU<U\4'   MO     Mu     M     U 4S, jn]0 n^[!        SUS-   5       H:  nJ[!        SU5       H'  n<[!        S(SU<-  S-  S-   5       H  n\SW^WJU<U\4'   M     M)     M<     [        WQS   WVS   5      S-   T l         W]" U5      n_T R-                  U_5      * n`[!        SUS-   5       H  na[!        SU5       H  n<WQU<   T l         [!        SSU<-  S-  S-   5       Hb  n\SW^WaU<U\4'   [!        SUaS-   5       HD  nJT R5                  WaUJ5      T R                  W`UJ5      -  W[UaUJ-
  U<W\4   -  nbW^UaU<U\4==   Ub-  ss'   MF     Md     M     M     0 nc[!        SUS-   5       H:  nJ[!        SU5       H'  n<[!        S(SU<-  S-  S-   5       H  n\SWcWJU<U\4'   M     M)     M<     [!        SUS-   5       H  nJ[!        SU5       Hs  n<WVU<   T l         [!        SSU<-  S-  S-   5       HM  n\WPWJU<U\4   U9SU<-  SU\-  -
     -  U8SU<-  U\-
     -  WcUJU<U\4'   UcUJU<U\4   ST R2                  -  U\-  -  UcUJU<U\4'   MO     Mu     M     0 nd[!        SUS-   5       H:  na[!        SU5       H'  n<[!        S(SU<-  S-  S-   5       H  n\SWdWaU<U\4'   M     M)     M<     [!        SUS-   5       H  na[!        SU5       H  n<WVU<   T l         [!        SSU<-  S-  S-   5       Hb  n\SWdWaU<U\4'   [!        SUaS-   5       HD  nJT R5                  WaUJ5      T R                  W`UJ5      -  WcUaUJ-
  U<W\4   -  nbWdUaU<U\4==   Ub-  ss'   MF     Md     M     M     [        WQS   WVS   5      S-   T l         0 neSUeS'   UeS   U-  UeS'   [        UQS   UVS   5      T l         [!        SU5       H  n<WeU<S-
     UeS   -  UeU<'   M     0 nf[!        SUS-   5       HP  na[!        SU5       H=  n<WQU<   T l         [!        SSU<-  S-  S-   5       H  n\W^WaU<U\4   WeU<   -  WfUaU<U\4'   M     M?     MR     0 ng[!        SUS-   5       HP  na[!        SU5       H=  n<WVU<   T l         [!        SSU<-  S-  S-   5       H  n\WdWaU<U\4   WeU<   -  WgUaU<U\4'   M     M?     MR     0 nh[!        SUS-   5       HP  na[!        SU5       H=  n:WRU:   T l         Sni[!        SSU:-  S-  S-   5       H  n<WiWfWaU:U<4   -  niM     WiWhWaU:4'   M?     MR     0 nj[!        SUS-   5       HP  na[!        SU5       H=  n:WWU:   T l         Sni[!        SSU:-  S-  S-   5       H  n<WiWgWaU:U<4   -  niM     WiWjWaU:4'   M?     MR     0 nkST l         [        R                  " T R                  5      U-  UU-  -  nlST l         T R                  S-US-   S-  -  Ul-  U-  5      nm[        UmT R                  SUS-   -  5      5      nmUmT l         [!        SUS-   5       H3  naSWkUa'   [!        SUS-   5       H  n<WkWa==   WhUaUU<-
  4   -  ss'   M     M5     0 nnST l         [        R                  " T R                  5      U-  UU-  -  noST l         T R                  S-US-   S-  -  Uo-  U-  5      np[        UpT R                  SUS-   -  5      5      npUpT l         [!        SUS-   5       H3  naSWnUa'   [!        SUS-   5       H  n<WnWa==   WjUaUU<-
  4   -  ss'   M     M5     ST l         S[        T R                  [        WkS   5      5      T R                  [        WnS   5      5      5      -  nqUSUq-  -  nrUT R-                  UST R                  -  -  5      -  nsS.T R                  SSUr-  T R                  Xu* 5      -  -   Us-  5      -   ntS.T R                  SSUr-  T R                  Xv* 5      -  -   Us-  5      -   nu[        UtUu5      T l         UST R                  -  -  nvUS-  T R-                  Uv5      -  US-  -
  T R                  S-  -
  nwT R7                  Uw* 5      nxW]" U5      nT R                  Xu* 5      nT R                  Xv* 5      n	SU1S-
  -  U-  Ux-  nySU1S-
  -  U	-  Ux-  nzST l         ST R                  U1T R                  U1SU-
  5      -   T R-                  U15      -  U-  5      -   n{ST R                  U1T R                  U1SU-
  5      -   T R-                  U15      -  U-  5      -   n|[        U{U|5      n}U}S-   T l          T R9                  US[;        U15      S-
  [!        SUS-   5      S/5      u  n~nST l         [        U~U   5      n[        UkU   Uy-  5      n[        SUT R                  SSU-  S0U-  -   -  5      -   5      nUT l         0 n[!        SUS-   5       H  naW~Ua   WkUa   Wy-  -   WUa'   M     ST l         [        WU   5      n[        WnU   Wz-  5      n[        SUT R                  SSU-  S0U-  -   -  5      -   5      nUT l         0 n[!        SUS-   5       H+  naWUa   WnUa   Wz-  -   WUa'   T R=                  UUa   5      UUa'   M-     UT l         WW4$ )1Nr   r   r         @r\   r   r   r   5U@`<@Y?r         ?      9@2Riemann-Siegel can not compute with such precisionr              s@     ,      r!   r   r    r         r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   z1.0r   D         ?c                    > TR                   nUS-   Tl         TR                  U STR                  -  -  5      nUTl         U$ Nr   r%   r,   r'   twpaar	   s      r
   trunc_aRzeta_simul.<locals>.trunc_a0  =    XX6XXa366l#	r   皙@r   T   )r%   _im_rer,   r'   rl   r#   mathpowgammar"   absNotImplementedErrorri   rq   rm   r(   floorr)   rL   rZ   copyr]   r&   r*   r+   binomialexpj_zetasumintconj)r	   sder	wpinitialr   xsigmaysigmara   xasigmayasigmaxA1yA1r/   eps1xeps2yeps2xbxcr_   rb   ybycyAyB1rc   yLLxeps3yeps3r`   yeps4rh   yMMrp   h4r.   jvalueeps5xforeps5yforeps5rf   xaux1yaux1rd   re   twentyauxwpfpNpnum
differenceeps6cccontpipowersFpr6   sumPr?   xwpdd1xd2xconstxd3xpsigmaxdm1c1c2c3raddrD   ywpdyd2yconstyd3ypsigmaydxwptcoefxwptermxc2xc4xc3ywptcoefywptermyc2yc4yc3	xfortcoefellr   xtcoefr   lachitcoefter	yfortcoefytcoefavxtvytvxtermteytermxrssumxrsboundxwprssumyrssumyrsboundywprssumA2eps8Txwps3ywps3tpiargUxS3yS3xwpsumywpsumwpsumxS1yS1xabsS1xabsS2xwpendxrzyabsS1yabsS2ywpendyrzs   `                                                                                                                                       r
   Rzeta_simulr     s   I 	
AWWQZFZF CHAcffHAkGkG 			!SWWW%a'(C		!SWWW%a'(C ))A	z
"Cr6DIbLEIbLE CHzXXa'XXaXXa (XXa zXXa'XXaXXa (XXa 
 CH	
B
B$syyC 
 399RT2##6
6%
?T B$syyC 
 399RT2##6
6%
?	QrB	
B
B$syyC 
 399RT2##6
6%
?T B$syyC 
 399RT2##6
6%
?	QrB 
21Qs	"QvaS[1R45G	
21Qs	"QvaS[1R45G!"VWW 	BA AbD\EAbD\E
 1R4LE1R4LE 
#r5!S"	-B	#r5!S"	-BBA 
c2uab	1B	c2uab	1B	RB
Ah]SYYqs^+F
2+aCCFF(F"1$ 2+ 
Dwwtwws"1$Hwwtwws"1$H1R[1Q3'b11Q3'b15% yy1~cii#c	22yy9Su--Q  1Q^AF
q&C772a4=D1V_4SYYqs^!3DG!;<= 
 cggaj #CHAcffHA		!A	!QqS'	A
 			!SWWS\4'()CcggclD()#-JS!eC3773<4%012A 99S[[366*A.		!A#q0@0BCD 
BD#q$'ND(yy{B	B1ac!e_1 	BCH1QqS\qs1uQwr"%A1Hr!u$D &1q1Qq!AqS2ac7NBqE "  
D	Qswwr!tAv	B
SWWaFmR'(
(
7
9CVVAsvvcff}Qq(,S012A5F1QZggchhsyy3/01#))AfH2EEcICQ 
 AwrzCH6lG	BBvJQ"V*!5	qRYBwKq2g;Q"V*16
1QZ72:q1a"A!AaCA!tWWQYqDBJ>qS6R!A#ac	]*2b1Q3qk>9"R!A#ac	]:JJ1Qq5	1Qq5	qA1Qq5	3775>#''!A#ac'2B#B3771Q3<#OPCq1uI21+s!22I $ # 1Qr6
b1RjQBq1Q36!8|$4   Bs1uor!A2c!AaCF1Ho.Tacaca!Qh!"Br!AvJ /  
 Ac!enqAAwrzCH1QqS!VAX&rT!VR1QqS1--a!nR1QqS1=M.MM 2bd1Q3qsl#332a6
 '   
D	Qswwr!tAv	B
SWWaFmR'(
(
7
9CVVAsvvcff}Qq(,S012A5F1QZggchhsyy3/01#))AfH2EEcICQ 
 AwrzCH6lG	BBvJQ"V*!5	qRYBwKq2g;Q"V*16
1QZ72:q1a"A!AaCA!tWWQYqDBJ>qS6R!A#ac	]*2b1Q3qk>9"R!A#ac	]:JJ1Qq5	1Qq5	qA1Qq5	3775>#''!A#ac'2B#B3771Q3<#OPCq1uI21+s!22I $ # 1Qr6
b1RjQBq1Q36!8|$4 " Bs1uor!A2c!AaCF1Ho.Tacaca!Qh!"Br!AvJ /  
 Ac!enqAAwrzCH1QqS!VAX&rT!VR1QqS1--a!nR1QqS1=M.MM 2bd1Q3qsl#332a6
 '   HGCH	QqS	B
''"ac(2+
C
''#a%		#&&))
*1
,C1QZAcEk#''#''!C%.1"442c#''%.023A5r93>"SWWQqS\#-cggen<Q>?A2E
  HGCH	QqS	B
''"ac(2+
C
''#a%		#&&))
*1
,C1QZAcEk#''#''!C%.1"44Bs3775>1!34b8#="SWWQqS\#-cggen<Q>?A2E
  IAc!enqAR!Qq)$%	"Qs(# *   Ac!enqA{CHQqsAvax($&r!CxLAaC#I$>x!C?P$P	"Qs(#$-b3h$7!CEE'C$H	"Qs(# )   FAc!enqAR!Qq)!"r!Cx  *   8A;x{+A-CH
B
&&*BQs1u~qA{CHQqsAvax(#$s1Sy!3q5/B \\#b1#))Br2BB9SQSVTUVY\CZZH3q9%1% * )   IAc!enqAR!Qq)$%	"Qs(# *   Ac!enqA{CHQqsAvax($&r!CxLAaC#I$>x!C?P$P	"Qs(#$-b3h$7!CEE'C$H	"Qs(# )   FQs1u~qAR!Qq)"#s1Sy! *   Qs1u~qA{CHQqsAvax(#$s1Sy!3q5/B \\#b1#))Br2BB9SQSVTUVY\CZZH3q9%1% * )   8A;,Q.CH	BBqEqE!GBqE8A;x{+CH1QZ1Q3"Q%1  CQs1u~qA{CHQqsAvax(!'Ac	!2BqE!9C#I )   CQs1u~qA{CHQqsAvax(!'Ac	!2BqE!9C#I )   EQs1u~qAqzCHB1ac1fQh'c#a'l" (E#a%L   EQs1u~qAqzCHB1ac1fQh'c#a'l" (E#a%L   FCHyy 2%1-HCHwwsQqS1H~h.67H8SWWR1X./HCHQs1u~sq1A3K5QqS>)K   FCHyy 2%1-HCHwwsQqS1H~h.67H8SWWR1X./HCHQs1u~sq1A3K5QqS>)K   CH	
SVAY(#''#fQi.*AB	CB":D	366!QsvvX,A!QtVSYYq%9991<==E!QtVSYYq%9991<==E5% CH
QsvvX,CQ3s
QqS
!#&&(
*C#A
Aii7#Gii7#G!A#;'
!A
%C!A#;'
!A
%C CH!CIIa&11366!9<dBCCF!CIIa&11366!9<dBCCFEbyCH$ ||Aq#a&(E!CENDAHC CHS]Fs"#FIcgga6!F():&;==?FCH
CQs1u~s8F3KO+C  CHS]Fs"#FIcgga6!F():&;==?FCH
CQs1u~s8F3KO+C88CH%C  CH8Or   c                 V   ^  [        U5      nT R                  nT R                  U5      nT R                  U5      nST l        T R	                  UST R
                  -  -  5      nT R                  Xv5      nT R                  ST R                  U5      S-
  5      n	T R                  SU* 5      n
U
S-  nX-  S-  nST l        US:  a6  Sn[        R                  " SU5      S	-  n[        R                  " SU5      nSnO7S
n[        R                  " SU* 5      S	-  n[        R                  " SU* 5      nSnST l        SnSU-  T R                  US-  5      -  T R                  X-  U* 5      -  U:  a;  US-   nSU-  T R                  US-  5      -  T R                  X-  U* 5      -  U:  a  M;  [        SU5      nSU-  SU-  U-  S-  :  d!  SU-  S-   U-   S:  d  [        U5      US-  :  a  UT l        [        S5      eUSU-  -  nUSU-  -  n[        T UUUUU5      n0 n[        USU-  S-
  5       H  nSUU'   M
     USU-  -  nT R
                  T R
                  -  U-  U-  T R	                  S5      -  [        R                  -  [        R                  -  nUT R                  UUS-  -  US-
  S-  5      -  U-  n[!        UU5      nSnST R
                  -  U-  T R                  US-   5      -  nUU:  a"  US-   nST R
                  -  U-  U-  nUU:  a  M"  0 n[        R
                  [        R
                  -  U-  U-  n[        SS5       Hp  n[        R                  " UUS-  5      SU-  -  nT R                  US-   5      T R                  US-  S-   5      -  n [        R                  " U 5      n UU -  U-  UU'   Mr     [!        SU-  S-
  S5      S-   n!SU-  n"T R                  SU-  5      n#[        SU!5       H9  n[        U#T R                  U"T R                  US-   5      -  UU   -  5      5      n#M;     U#T R                  U5      -   S-   T l        T R	                  UST R
                  -  -  5      nT R#                  U5      n$SSUU$-
  -  -
  n%T R#                  U%T R%                  S5      U#-  -  5      n&U%T R%                  S5      U#-  -  U&-
  n'U'S:  a  U&n&OU&S-   n&T R'                  U&T R%                  S5      U#* -  -  5      n%T R                  ST R
                  -  U5      T R                  US-   5      S-  U-  -  n(0 n)0 n*[)        T UU(5      u  n*n+U*R+                  5       n)0 n[        USU-  S-
  5       H  nSUU'   M
     U#T l        [        SUS-   5       H_  nSn,[        SU-  U-
  S-
  SS5       H  n-U,U%-  U)U-   -   n,M     U,UU'   [        SSU-  U-
  S-
  5       H  n-U-S-   U)U-S-      -  U)U-'   M     Ma     0 n.[        ST R                  SU-  U-  5      5      n/ST R                  S[        U5      -   U-  5      -   T R                  U5      -
  S-
  n0T R-                  ST R
                  T R
                  -  U-  U-  U-  U-  -  5      S-  n1[        SU5       H\  nT R                  T R	                  T R                  US-
  5      5      5      T R#                  UU1-  5      -
  U0-   n2[        U2U/5      U.U'   M^     U.S   S-   T l        SSU-  -
  n30 n4SU4S'   SU4S '   SU4S!'   SU4S"'   SU4S#'   SU4S$'   SU4S%'   SU4S&'   [        SU5       GH4  nU.U   S-   T l        [        SSU-  S-  S-   5       H  n-SU-  SU--  -
  nUS:w  a\  T R.                  U-  n5U5S-  n6U3U5-  S-  n7US-   * n8U8U4SUS-
  U-S-
  4   -  U6U4SUS-
  U-4   -  -   U7U4SUS-
  U-S-
  4   -  -   U4SUU-4'   Mp  SU4SUU-4'   [        SU-5       Ha  n9U4SUU94   T R.                  T R1                  SU--  SU9-  -
  5      -  T R1                  U-U9-
  5      -  -  n:U4SUU-4==   SU-U9-
  -  U:-  -  ss'   Mc     M     SU4SUS'4'   SU4SUS4'   SU4SUSU-  S-  S-   4'   GM7     [        S'US-   5       Hd  n;[        S'U5       HQ  n[        S([        SSU-  S-  S-   5      5       H+  n-U;S:  d  US:  d  U-S:  d  U-SU-  S-  :  d  M#  SU4U;UU-4'   M-     MS     Mf     [        SUS-   5       H  n;[        SU5       H~  nU.U   S-   T l        [        SSU-  S-  S-   5       HU  n-SU;-  S-
  U4U;S-
  US-
  U-S-
  4   -  SUU-   S-
  -  U4U;S-
  US-
  U-S-
  4   -  -   n"U"U4U;S-
  US-
  U-S-
  4   -
  U4U;UU-4'   MW     M     M     0 n<0 n=ST l        T R                  SUS-   -  5      n6T R                  S)US-   -  U-  5      n7T R                  UU-  [        R                  " T R
                  5      -  5      S-
  n>[        SU5       H  n-U7U-U>-  -
  T R                  T R1                  U-S-   5      5      S-  -   n8[        U6U8T R                  U5      -
  S-   5      S-   S-   U<U-'   [        U6T R                  US-   5      U8-   T R                  U5      -
  S-   5      S-   S-   U=U-'   M     0 n?U H:  n;[        SU5       H'  n-[        S'SU--  S-  S-   5       H  n@SU?U;U-U@4'   M     M)     M<     U H  n;[        SU5       Hs  n-U<U-   T l        [        SSU--  S-  S-   5       HM  n@U4U;U-U@4   USU--  SU@-  -
     -  U+SU--  U@-
     -  U?U;U-U@4'   U?U;U-U@4   ST R2                  -  U@-  -  U?U;U-U@4'   MO     Mu     M     U 4S* jnA0 nBU H:  nC[        SU5       H'  n-[        S'SU--  S-  S-   5       H  n@SWBWCU-U@4'   M     M)     M<     U<S   S-   T l        WA" U5      nDT R-                  UD5      * nEU H  nC[        SU5       H{  n-U<U-   T l        [        SSU--  S-  S-   5       HU  n@SWBWCU-U@4'   [        SUCS-   5       H7  n;T R5                  WCU;5      WEU;-  -  U?UCU;-
  U-W@4   -  nFWBUCU-U@4==   UF-  ss'   M9     MW     M}     M     U<S   S-   T l        0 nGSUGS'   UGS   U-  UGS'   U<S   T l        [        SU5       H  n-WGU-S-
     UGS   -  UGU-'   M     0 nHU HP  nC[        SU5       H=  n-U<U-   T l        [        SSU--  S-  S-   5       H  n@WBWCU-U@4   WGU-   -  WHUCU-U@4'   M     M?     MR     0 nIU HP  nC[        SU5       H=  nU=U   T l        SnJ[        SSU-  S-  S-   5       H  n-WJWHWCUU-4   -  nJM     WJWIWCU4'   M?     MR     0 nKST l        [        R                  " T R
                  5      U-  X-  -  nLST l        T R                  S+US-   S-  -  UL-  U-  5      nM[        UMT R                  SUS-   -  5      5      nMUMT l        U H3  nCSWKUC'   [        SUS-   5       H  n-WKWC==   WIUCUU--
  4   -  ss'   M     M5     ST l        ST R                  WKS   5      -  nNU
SUN-  -  nOUT R-                  UST R
                  -  -  5      -  nPS,T R                  SSUO-  T R                  Xv* 5      -  -   UP-  5      -   nQUQT l        UST R
                  -  -  nRUS-  T R-                  UR5      -  US-  -
  T R
                  S-  -
  nST R7                  US* 5      nTWA" U5      nT R                  Xv* 5      nSU$S-
  -  U-  UT-  nUST l        ST R                  U$T R                  U$SU-
  5      -   T R-                  U$5      -  U-  5      -   nVUVS-   T l         T R9                  US[;        U$5      S-
  U5      S   nWST l        [        UWU   5      nX[        UKU   UU-  5      nY[        SUT R                  SSUX-  S-UY-  -   -  5      -   5      nZUZT l        0 n[U H  nCWWUC   WKUC   WU-  -   W[UC'   M     UT l        W[$ ).aa  
Computes several derivatives of the auxiliary function of Riemann `R(s)`.

**Definition**

The function is defined by

.. math ::

    \begin{equation}
    {\mathop{\mathcal R }\nolimits}(s)=
    \int_{0\swarrow1}\frac{x^{-s} e^{\pi i x^2}}{e^{\pi i x}-
    e^{-\pi i x}}\,dx
    \end{equation}

To this function we apply the Riemann-Siegel expansion.
r   r   r   rs   r\   r   r   r   rt   ru   rv   r   rw   rx   ry   r   rk   rz   r{   r|   r}   r~   r   r   r   r    r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c                    > TR                   nUS-   Tl         TR                  U STR                  -  -  5      nUTl         U$ r   r   r   s      r
   r   Rzeta_set.<locals>.trunc_a  r   r   r   r   r   )r"   r%   r   r   r,   r'   rl   r#   r   r   r   r   r   ri   r(   erm   r   r)   rL   rZ   r   r]   r&   r*   r+   r   r   r   r   )\r	   r   derivativesr   r   r   sigmara   asigmaA1r/   r   eps2brF   AB1r   eps3eps4r   r   r6   rn   ro   rp   r.   r   r   foreps5rf   rd   re   r   r   r   r   r   r   r   r   r   r   r   r   r?   wpdr   d2constd3psigmadr   r   r   r   r   r   rD   wptcoefwptermc4fortcoefr   r   tcoefr   r   r   r   r   tvtermr   rssumrsboundwprssumr  r  r	  wps3r  r  r  S3r  S1absS1absS2wpendrzs\   `                                                                                           r
   	Rzeta_setrE    sc   $ k
C I
AGGAJECHAcffHAYYq F	1cggfoa'	(B
))A	z
"Cr6D8B;D CHqyHHQug%HHQuHHQvw&HHQv CH	A
A#cii#
13r!2
2d
:aC A#cii#
13r!2
2d
:AaA 
1!Ac		qs1uU{1}#e*ad2B!"VWW !A#JD
 1:D 	aq"a(A	B1ac!e_1  
s1uB	r	!	SXXa[	(	/	6B	ciiAqD1Q3'*	*Q	.B	RBAh]SYYqs^+F
2+aCCFF(F"1$ 2+ 
Dggdggob "G1R[xx1%tAv.yy1~cii#c	22yyt)D.Q	  1Q^AF
q&C772a4=D1f4SYYqs^!3DG!;<=  cggaj 2%CHAcffHA		!A	!QqS'	A ))Aswwqz4'(
)Ccggaj$&'+JC!eC3771:./0A 99QsvvXq!399QqS>!#3A#56D 
B	D#q$'ND(	B	B1ac!e_1 CH1QqS\qs1uQwr"%A1H1%D &1q!A#a%'"AqSBqsGOBqE #  C	Q1Q	 B	CGGQs5z\1$%	%cggdm	3A	5BFF1cffSVVmAoa'*2-./2E1QZWWSXXcii#./01U71CCBFRA 
 1vbyCH%[F
AAfI16qah1!E(AgJQ!G*!&	qQvY1QZq6"9q1a"A!AaCA1WWQYTRi]sVa!A#ac	l?2a!A#aj=8Aa!AaCiLH!Aa%!Aa%qAAaE(CGGCGGAaC!G,<$<SWWQqS\$IJCa!eH"!c 11H $ # !Ab&	qQq2vY!!Aa!QqL/ " Bs1uor!A2c!AaCF1Ho.Tacaca!Qh !Ab1fI /   Ac!enqA1vbyCH1QqS!VAX&rT!VQr!tAaC!|_,Qa	]1RT!A#ac\?-JJ!BqD1QqSL/1"Qq&	 '   GFCH	QqS	B	QqS!	B	Adii''	(	*B1QZ!B$Yswwswwqu~.r11Bswwt},Q./125
3771Q3<?3774=8:;A=rAq	  HqAR!Qq)#$Ac" *  
 qAqzCHQqsAvax(#$R#X;r!A#ae)}#<Xac#g=N#NAc"#+BqH#5#%%#~#FAc" )   EqAR!Qq)!"c!Ci  *   qz!|CH	B
&&*BqAqzCHQqsAvax(#$c!Ci 3q5/B"||C3b"f< R#. /H#a)$0$ * )   qzA~CH 
BBqEqE!GBqEqzCH1QZ1Q3"Q%1  
BqAqzCHQqsAvax( %c!Ci 0"Q% 73q9 )   DqAayCHB1ac1fQh'bQqk! (DQK   ECHii!#ac*GCHggcAaC!8nW,t34G'3772qs8,-GCHc
q1A#J$s1Q3w-'J   CH	
SWWU1X	B2;D	CFF1ah<  Asww1T6399Qv#6669::DCH
QsvvX,CQ3s
QqS
!#&&(
*C#A
AYYq&!F1+	!	#B CH399Qqw//:4?@@ErzCH 
aCF1Hk	21	5B CH3LEc
R E9swwq!E'!E'/':;;<ECH	BS'%*R-'3 CHIr   c                    U R                  S5      U R                  U-  -   nU R                  nSU l        USU R                  -  -  nUS-   U R	                  SUS-  -  U R                  U5      -  5      -   nUS-   U R	                  SU-  U R                  U5      -  5      -   nX`l        U R                  U5      nXpl        [        X[        US-   5      5      n	US:  aF  U R                  U R                  SUS-  5      S-  U R                  U R                  5      S-  -
  5      n
US:  a4  U R                  U R                  U R                  SUS-  5      -  S	-  5      nUS:  a(  U R                  U R                  SUS-  5      * S
-  5      nUS:  a5  U R                  U R                  * U R                  SUS-  5      -  S-  5      nU R                  U5      nUS:X  a  SU-  U	S   -  nUS:X  a  SU-  nUW
U	S   -  U	S   -   -  nUS:X  a<  SU-  nU* SU	S   -  W
-  U	S   U
S-  -  -   U	S   -   U R                  U	S   -  W-  -
  -  nUS:X  aZ  SU-  nSU	S   -  W
S-  -  U	S   U
S-  -  -   SU
-  U	S   -  -   nUUSU	S   -  W-  -
  SU	S   -  U
-  U-  -
  U	S   -   U	S   W-  -
  -  nUS	:X  a  SU-  nS	U	S   -  W
S-  -  U	S   U
S	-  -  -   SU
S-  -  U	S   -  -   nUSU	S   -  U
-  W-  -
  SU	S   -  U
S-  -  U-  -
  SU	S   -  U-  -
  SU	S   -  U-  U-  -
  nUS	U
-  U	S   -  -   S	U	S   -  W-  -
  S	U	S   -  U
-  U-  -
  U	S	   -   U R                  U	S   -  W-  -   nUU-  nX@l        U R                  W5      $ )z%
z_half(t,der=0) Computes Z^(der)(t)
0.5r   r   r   r   r   rz   r   r   r                     @y                            @r                  (@              @)r)   r+   r%   r'   r#   r]   siegelthetarE  r(   r   psir   )r	   r   r   r   r   ttwpthetawpzthetarD  ps1ps2ps3ps4expthetazzfs                    r
   z_halfrZ  r  s    
ggenSUU1WAICH	
AcffHBlSWWQC[%;<<G
a-#''"R%r
"23
3CHOOAEH	3%A,	'B
Qwcggcgga!nQ.1AAB
QwcggceeCGGAacN2145
Qwcggswwq1~oa/0
QwcggsuufSWWQqs^3B67xxH
axhJr!u
ax[BqE	"Q% 
ax\C2a5RU36\)"Q%/beC?@
ax\beGCFN2a5a<'#be3"RU(3,r"Q%x|C//15beCi?@
axxZbeGCFN2a5a<'#q&A6c"Q%imC2a5a 33Br!uHSL@2a5SP#beOAbeGCK'"Q%C71=ceeBqEk#oMqDH771:r   c                 &	   U R                   nU R                  U5      nU R                  U5      nSU l         US:  a  U R                  [	        U5      5      nO*SU R
                  -  US-
  -  [	        SU-
  5      SU-
  -  -  nUS:  a%  SU R                  USU R
                  -  -  5      -  nOSU-  U-  n[	        SU-
  5      nSU-  [        R                  " U5      -  n	[        SSU R                  U5      -   5      n
SU R                  S	U-  S
U-  U-  -   SU-  U-  U	-  -   5      -   U-   S-   n[        X5      n
[        SSU R                  SU-  U-  5      -   U-   S-   5      nSU R                  SSU-  -   5      -   U-   S-   nXl         U R                  XPR                  X@R                  S5      -
  -  -
  5      nUS:  aF  U R                  U R                  SUS-  5      5      S-  U R                  U R
                  5      S-  -
  nUS:  a(  U R                  U R                  SUS-  5      5      * S-  nUS:  a(  U R                  U R                  SUS-  5      5      * S-  nUS:  a'  U R                  U R                  SUS-  5      5      S-  nXl         [        X[!        US-   5      5      n0 n[!        SUS-   5       H  nU R#                  UU   5      UU'   M     Xl         U R%                  SU-  5      nUS:X  a  US   UUS   -  -   nUS:X  a  US   * SUS   -  W-  -
  nUS   UU-  -   nUS:X  a7  SUS   -  W-  SUS   -  US-  -  -   US   -   SUS   -  W-  -   nUS   UU-  -   nUS:X  ac  SUS   -  WS-  -  SUS   -  US-  -  -
  SUS   -  U-  -
  SUS   -  W-  -
  nUSUS   -  U-  U-  -
  US   -
  SUS   -  W-  -   nUS   UU-  -   nUS:X  a  SUS   -  WS-  -  SUS   -  US-  -  -   SUS   -  US-  -  -   nUSUS   -  U-  W-  -   SUS   -  US-  -  U-  -   nUSUS   -  U-  -   SUS   -  US-  -  -
  SUS   -  U-  -   SUS   -  W-  -
  nUSUS   -  U-  U-  -
  US   -   SUS   -  W-  -
  nUS   UU-  -   nX0l         W$ )z7
zeta_half(s,k=0) Computes zeta^(k)(s) when Re s = 0.5
r   r   r   r   rw   r   r    r   (\ @3333335@?皙@皙?rG  r   rH  r   rI  rL  rK                       H@rz   )r%   r   r   r,   r   r'   r   logr"   r#   rM  r+   r)   rN  r]   rE  r(   r   r   )r	   r   r?   r   r$  r   XM1abstr	  wpbasicwpbasic2rP  wpRrR  rS  rT  rU  rV  r  r  r   rW  zvzv1s                            r
   	zeta_halfrn    s!    IGGAJE
ACHqyHHSVsvvXq!C!Hs5y$99qysxx1SVV8%%UQYs1u:D	4A!AcggajL!Gbb*3r6!8A:566y@BH'$G!Qswws2vax((2145G
CGGC!G
Y
&q
(CHOOAeeU775>%9::;E1uSWWSWWQqs^,a/#&&.2BBc1ucggcgga!n-.q0c1ucggcgga!n-.q0c1uSWWSWWQqs^,b0cH
C%!*
%C
CQqs|88CH%C Hxx5!H!tVHSVO#!t1vg#a&$Vhsl"!tAhsl1SV8S!V,,SV3Bs1vIcMAVHSL !t#a&ja#a&a/#a&<RAYs]JCAJsN3&&s1v-aAhsl:VHSL AvQiQ3q6	#q& 00CF361AA3s1v:c>#%%c#a&j#q&&9#&==#c!f*S. CF36!11!CF(3,>qQx|K"SV)C-##CF*2c!f9S=8VHSL HIr   c                 
   U R                   nU R                  U5      nU R                  U5      nSU l         US:  a  U R                  [	        U5      S5      nODU R                  SU R
                  -  US-
  5      U R                  [	        SU-
  5      SU-
  5      -  nUS:  a%  SU R                  USU R
                  -  -  5      -  nOSU-  U-  nSU-
  S:  a%  SU R                  USU R
                  -  -  5      -  nOESU-  U R                  SU R
                  -  U* 5      -  U R                  [	        U5      US-
  5      -  n[	        SU-
  5      n	SU	-  [        R                  " U	5      -  n
[        SSU R                  U5      -   5      nSU R                  S	U-  S
U-  U-  -   SU-  U-  U
-  -   5      -   U-   S-   n[        X5      n[        SSU R                  SU-  U-  5      -   U-   S-   5      nSU R                  SSU-  -   5      -   U-   S-   nXl         U R                  XPR                  X@R                  S5      -
  -  -
  5      nUnU R                  SU-
  5      nXl         [        XU5      u  nnUS:  aP  U R!                  SUS-  5      U R!                  SSU-
  S-  5      -   S-  U R#                  U R
                  5      S-  -
  nUS:  a>  U R                  U R!                  SUS-  5      U R!                  SSU-
  S-  5      -
  -  S-  nUS:  a2  U R!                  SUS-  5      U R!                  SSU-
  S-  5      -   * S-  nUS:  a?  U R                  * U R!                  SUS-  5      U R!                  SSU-
  S-  5      -
  -  S-  nXl         U R%                  SU-  5      nUS:X  a  US   UUS   -  -   nUS:X  a  US   * SUS   -  W-  -
  nUS   UU-  -   nUS:X  a7  SUS   -  W-  SUS   -  US-  -  -   US   -   SUS   -  W-  -   nUS   UU-  -   nUS:X  ac  SUS   -  WS-  -  SUS   -  US-  -  -
  SUS   -  U-  -
  SUS   -  W-  -
  nUSUS   -  U-  U-  -
  US   -
  SUS   -  W-  -   nUS   UU-  -   nUS:X  a  SUS   -  WS-  -  SUS   -  US-  -  -   SUS   -  US-  -  -   nUSUS   -  U-  W-  -   SUS   -  US-  -  U-  -   nUSUS   -  U-  -   SUS   -  US-  -  -
  SUS   -  U-  -   SUS   -  W-  -
  nUSUS   -  U-  U-  -
  US   -   SUS   -  W-  -
  nUS   UU-  -   nX0l         W$ )z#
Computes zeta^(k)(s) off the line
r   r   rw   r   r   r   r    r   r\  r]  r^  r_  r`  rG  r   rH  rb  r   rI  ra  rL  rK  rc  rd  rz   )r%   r   r   rl   r   r'   r,   r   re  r"   r#   rM  r+   r)   r   r  rN  r]   r   )r	   r   r?   r   r$  r   rf  rg  M2rh  r	  ri  rj  rP  rk  rR  s1s2r  r  rS  rT  rU  rV  rW  rl  rm  s                              r
   zeta_offliners    s    IGGAJE
ACHqyIIc!fc"IIaha(3qs8CI)FF	sxx1SVV8%%UQY	%!sxx1SVV8%%qS1SVV8eV,,SYYs1veCi-HHs1u:D	4A!AcggajL!Gbb*3r6!8A:566y@BH'$G!Qswws2vax((2145G
CGGC!G
Y
&q
(CHOOAeeU775>%9::;E	
B	!B$BH31%HC1uSWWQr!t_SWWQ"ax%88!;cffSVVnQ>NNc1uCEE3771RT?3771adAX+>>?Ac1ucgga1ocgga2q&99:2=c1uSUUFCGGAbdOCGGAqtQh,??@CcHxx5!HAvVHSVO#Av1vgaAhsl"VHSL AvAhsl1SV8S!V,,c!f4RAYs]BVHSL Av#a&ja3q6#q&03q6#=bQimKCAJsN3&&s1v-aAhsl:VHSL AvQiQ3q6	#q& 00CF361AA3s1v:c>#%%c#a&j#q&&9#&==#c!f*S. CF36!11!CF(3,>qQx|K"SV)C-##CF*2c!f9S=8VHSL HIr   c           
         U R                  S5      U R                  U-  -   nUnU R                  SU-
  5      nU R                  nSU l        U R	                  U5      S:  aN  SU R                  U R                  U5      SU R                  -  -  5      -  nU R                  [        U5      5      nO_SU R                  -  U R	                  U5      S-
  -  [        SU-
  5      SU R	                  U5      -
  -  -  nSU R                  U5      -  U-  nU R	                  U5      S:  a4  SU R                  U R                  U5      SU R                  -  -  5      -  n	O]SU R                  U5      -  SU R                  -  U R	                  U5      S-
  -  -  [        SU-
  5      SU R	                  U5      -
  -  -  n	S[        U R                  U5      5      -  n
U R                  U5      nXU	-   -  nSU-   n[        S	SU R                  U
5      -   U R                  US
SU
-  -   -  5      U-   5      n[        SU R                  SU-  5      U-   5      nU R                  SU-  5      U-   nXl        U R                  U5      nUU l        [        XU5      u  nnSSU-  -   nSSU-  -
  nUS:  aG  SU R                  SU5      U R                  SU5      -   -  U R                  U R                  5      S-  -
  nUS:  a(  SU R                  SU5      U R                  SU5      -
  -  nUS:  a(  SU R                  SU5      U R                  SU5      -   -  nUS:  a(  SU R                  SU5      U R                  SU5      -
  -  nXl        U R                  U5      nUS:X  a  UUS   -  US   U-  -   nU R                  nUS:X  a)  UU-  US   US   W-  -   -  UUS   US   U-  -   -  U-  -
  nUS:X  a[  USUS   -  W-  US   US-  -  -
  US   -
  UUS   -  W-  -   -  nUSUS   -  U-  US   US-  -  -
  US   -
  UUS   -  U-  -
  U-  -   nUS:X  a  SUS   -  WS-  -  US   US-  -  -
  SUS   -  U-  -
  US-  US   -  W-  -   nUSUS   -  U-  U-  -   US   -
  US   W-  -   U-  U-  nSUS   -  US-  -  US   US-  -  -   SUS   -  U-  -   US-  US   -  U-  -   nUUSUS   -  U-  U-  -   US   -   US   U-  -
  -  U-  nUU-   nUS:X  GaS  SUS   -  WS-  -  US   US-  -  -   S	US   -  US-  -  -   nUSUS   -  U-  W-  -
  SUS   -  US-  -  U-  -
  SUS   -  U-  -
  nUSUS   -  U-  U-  -
  SUS   -  U-  -   SUS   -  W-  -
  SUS   -  U-  U-  -
  nUUS   -   UUS   -  W-  -   nSUS   -  US-  -  US   US-  -  -   S	US   -  US-  -  -   nUSUS   -  U-  U-  -   SUS   -  US-  -  U-  -   SUS   -  U-  -   nUSUS   -  U-  U-  -
  SUS   -  U-  -   SUS   -  U-  -
  SUS   -  U-  U-  -
  nUUS   -   UUS   -  U-  -
  nUU-  UU-  -   nX`l        W$ )z0
Computes Z(w) and its derivatives off the line
rG  r   #   r   r   rw   r   r   r       gRQ @g      ?y              ?y              ?g      y             r   r   rJ  rK  rL  )r)   r+   r   r%   r   r,   r   r'   r   rM  r"   r#   r  rN  r]   r   )r	   r8   r?   r   rq  rr  r   rg  rf  rp  r	  rd   re   rg   ri  rP  rk  rR  r  r  ptaptbrS  rT  rU  rV  rW  rl  r+   rm  zv2s                                  r
   	z_offlinerz    sA    	suuQwA	
B	!B$BICH 	qsxxQZ011HHSWsvvXQ'#ad)c#''"+o*FF_QqsxxQZ011_ah#''"+a-88QrTSQS_9UU	#cooa 
!!A 88A;DB<Di<D!Qswwqz\3774AaC=#9$#>?G!CGGDI&t+,G
''!D&/$
CHOOAECH3#HC
a-C
a-C1uD#''!C.378366#&&>!;KKc1uTCGGAcN3771S>9:c1uVcgganSWWQs^;<c1uVcgganSWWQs^;<cHxxHAvc!f_SVH_,AAvxZQAs
*+As1vc!fSj/@,A(,JJAvr#a&y}SVCF]23q69!CF(3,FG"SV)C-AsAv-c!f4Qs1vXc\A8KKAvQiQs1vc1f},Qs1vXc\9!A#c!f*S.HBs1vIcM#%%c!f,SVCZ7:8CAhsAvoc!fS!Vm+Ac!fHSL81SVCGr#a&y}S((#a&0Q;<XEWAvAhsAvoc!fS!Vm+aAhsAvo=#c!f*S.$$RAYsAv%5c%99"SV)C-G!CF(3,s""1SV8C</#a&<Qs1vXc\#=MM#a&j3q6#%AhsAvoc!fS!Vm+aAhsAvo=#c!f*S.$$RAYsAv%5c%99"SV)C-G!CF(3,s""1SV8C</#a&<Qs1vXc\#=MM#a&j3q6#%c\#h,&HIr   c                 6   US:  a  [         eU R                  U5      nU R                  U5      o@R                  U5      nUS:  a2  U R	                  U R                  U R	                  U5      U5      5      nU$ US:H  nU(       a  [        XU5      $ [        XU5      $ )Nr   r   rw   )r   rL   r   r   r   rs_zetarn  rs  )r	   r   
derivativekwargsreimrX  critical_lines           r
   r|  r|  b  s    A~!!AA	B''!*R	AvHHS[[!j9:3YM,,CJ//r   c                     U R                  U5      nU R                  U5      o0R                  U5      nUS:  a  [        X* U5      $ US:H  nU(       a  [	        XU5      $ [        XU5      $ )Nr   )rL   r   r   rs_zrZ  rz  )r	   r8   r}  r  r  r  s         r
   r  r  q  sb    AA	B''!*R	AvCZ((1WMcj)),,r   )r   )__doc__r   objectr   	functionsr   rG   rZ   ri   rq   r  rE  rZ  rn  rs  rz  r|  r  r   r   r
   <module>r     s   0d (f ( *t'l.6	DL $%# qh&P<|@DFP 0 0 	- 	-r   