K ihdZddlZGddeZddlmZdZdZd Zd Z dd Z dgfd Z dd Z ddZ ddZddZeddZeddZy)aI --------------------------------------------------------------------- .. sectionauthor:: Juan Arias de Reyna 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. NceZdZdZy)RSCachecddiig|_y)Nr ) _rs_cache)ctxs ]/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mpmath/functions/rszeta.py__init__zRSCache.__init__6sBB N)__name__ __module__ __qualname__r r r rr5s(r r)defuncX|dz}|dz }t|jd|dzzd|zdz|j|z }|jd|z}t|jd|z|j|dz|z}||_i}|j|d<|j |d <t dd|zd zD]} || d z |j z|| <|dz|_i} i} t d|d zD]P} d | z|jd| zz} |j| |jd| zz } | |d| zz| | <Rt dd|zd zD]3} |j|j| z } | d| zz } | || z| | <5d |_d |j|z }i}t d|d zD]} d |_t|jd| dzzd| z|z}||_d}t d| d zD]}|d |z| |z| d| zd|zz zz }!d | d zz|jz|z|| <i}t d|d zD]v} d |_t|jd| dzzd| z|z}||_d}t d| d zD]&}||j| |z z| |z| | |z zz }(||| <xd |_d|j|z }td d|z|z}||_|j|jddz }|jddz }i}t d|D]9} d |_td d| z|z}||_||| z||| zz|d| z<;t d d|zdD]} d|| < ||||gS)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(rr 2g?) maxmag _eulernumpreconepirangempffacjsqrtexpjpi)rJepsnewJneweps6wpvwEwppipipowernvwvawawpp1aP1wpp1sumpkP2wpp2wpc0wpcmunucs r _coefrCNs/: Q3D"fG swwr46{#QtVAXcggg.>%> ?D afA" swwr$wq$!6 7DCHGGAJGAJ 1QtVAX )QqS\#&&( ) AvCHAA 1T!V_1Ws}}QqS) ) WWR[1 % ! _!1QtVAX  WWSWWQZ  q!t9  ]!CH  E B 1T!V_'3772qs8$QqSY/q1 0A b1W!$Qqs1Q3wZ/ /D 0ac{CEE!$&1' B 1T!V_3772qs8$QqSY/q1 1A SUUQqS\QqT)!AaC&0 0D 11CH swww D a$t CCH #''#,  !B D ! BA 1T]#!AaCHoBqE"RU("!A# # 1QtVA ! '1g &&r cj}||dkr||dk\r |d|dfSjj} tj||}|j_jurPt fd|dj D|d<t fd|dj D|d<|jddjdjdfS#|j_wxYw)Nrrrrc3JK|]\}}|j|fywNconvert.0r;r3rs r zcoef.."Geq#++a.)G #c3JK|]\}}|j|fywrFrGrIs r rKzcoef..rLrM)r_mpr!rCdictitems)rr*r+_cacheorigdatas` r coefrUs ]]FF1I~#*ay&)## 77<% D 66$dj dt|z|zzj |z dz }?j-djjz|z|z|z|zz dz }@t!d|D][}:j jj|:d z j#|:@zz |?z}At|A|>|=|:<]|=ddz_dd|zz }Bi}Cd|Cd<d|Cd <d|Cd!<d|Cd"<d|Cd#<d|Cd$<d|Cd%<d|Cd&<t!d|D]2}:|=|:dz_t!dd |:zdzdzD]}dj dt|z|zzj |z dz }Lj-djjz|z|z|z|zz dz }Mt!d|D][}:j jj|:d z j#|:Mzz Lz}Nt|N|>K|:<]Kddz_dd|zz }Oi}Pd|Pd<d|Pd <d|Pd!<d|Pd"<d|Pd#<d|Pd$<d|Pd%<d|Pd&<t!d|D]2}:K|:dz_t!dd |:zdzdzD]}.trunc_a0= XX6 XXa366l # r 皙@rT)r!_im_rer(r#rgrmathpowgammarabsNotImplementedErrorrdrlrhr$floorr%rHrUcopyrXr"r&r'binomialexpj_zetasumintconj)rsder wpinitialrxsigmaysigmar\xasigmayasigmaxA1yA1r+eps1xeps2yeps2xbxcrZr]ybycyAyB1r^yLLxeps3yeps3r[yeps4rcyMMrkh4r*jvalueeps5xforeps5yforeps5raxaux1yaux1r_r`twentyauxwpfpNpnum differenceeps6cccontpipowersFpr2sumPr;xwpdd1xd2xconstxd3xpsigmaxdm1c1c2c3raddr@ywpdyd2yconstyd3ypsigmaydxwptcoefxwptermxc2xc4xc3ywptcoefywptermyc2yc4yc3 xfortcoefellrxtcoefrlachitcoefter yfortcoefytcoefavxtvytvxtermteytermxrssumxrsboundxwprssumyrssumyrsboundywprssumA2eps8Txwps3ywps3tpiargUxS3yS3xwpsumywpsumwpsumxS1yS1xabsS1xabsS2xwpendxrzyabsS1yabsS2ywpendyrzs` r Rzeta_simulrsI  A WWQZF ZFCH AcffHA6kG6kG !SWWW%a'(C !SWWW%a'(C ))A z "C r6D #IbLE #IbLECH z  XXa  ' XXa   XXa  ( XXa  z  XXa  ' XXa   XXa  ( XXa  CH B B$syyC 399RT2##6 6% ? T B$syyC 399RT2##6 6% ? QrB B B$syyC 399RT2##6 6% ? T B$syyC 399RT2##6 6% ? QrB 21Qs "Qv aS[1R45G 21Qs "Qv aS[1R45G!"VWW B A AbD\E AbD\E 1R4LE 1R4LE #r5!S" -B #r5!S" -B B A c2uab 1B c2uab 1B RB Ah]SYYqs^ +F 2+ aCCFF(F"1$ 2+ Dwwtwws"1$Hwwtwws"1$H 1R[/1Q3'b11Q3'b15% yy1~cii#c 22yy9Su--Q /1Q^A F q&C 772a4=D 1V_>4SYYqs^!3DG!;<=> cggaj #CH AcffHA ! A !QqS' A !SWWS\4'()CcggclD()#-JS!e C3773<4%012A 99S[[366*A . !A#q0@0B CD B D#q$'ND( yy{B B 1ac!e_1 BCH 1QqS\#qs1uQwr"% %A1Hr!u$D %1q1Qq! #AqS2ac7NBqE # # D Qswwr!tAv B SWWaF mR' ( ( 7 9C VVAsvvcff}Qq(,S01 2A 5F 1QZggchhsyy3/01#))AfH2EEcIC Q AwrzCH6lG BBvJQ"V*!5 qRYBwKq2g;Q"V*16 1QZ772:q1a" 3A!AaCA!tWWQYqDBJ>qS6R!A#ac ]*2b1Q3qk>9"R!A#ac ]:JJ1Qq5 1Qq5 q3A1Qq5 3775>#''!A#ac'2B#B3771Q3<#OPCq1uI21+s!22I3 31Qr6 b1RjQBq1Q36!8|$47 Bs1uo#r! #A2c!AaCF1Ho. #Tacaca!Qh!"Br!AvJ # ## Ac!en4q 4AAwrzCH1QqS!VAX& 4rT!VR1QqS1 --a!nR1QqS1 =M.MM 2bd1Q3qsl#332a6  4 44 D Qswwr!tAv B SWWaF mR' ( ( 7 9C VVAsvvcff}Qq(,S01 2A 5F 1QZggchhsyy3/01#))AfH2EEcIC Q AwrzCH6lG BBvJQ"V*!5 qRYBwKq2g;Q"V*16 1QZ772:q1a" 3A!AaCA!tWWQYqDBJ>qS6R!A#ac ]*2b1Q3qk>9"R!A#ac ]:JJ1Qq5 1Qq5 q3A1Qq5 3775>#''!A#ac'2B#B3771Q3<#OPCq1uI21+s!22I3 31Qr6 b1RjQBq1Q36!8|$47"Bs1uo#r! #A2c!AaCF1Ho. #Tacaca!Qh!"Br!AvJ # ## Ac!en4q 4AAwrzCH1QqS!VAX& 4rT!VR1QqS1 --a!nR1QqS1 =M.MM 2bd1Q3qsl#332a6  4 44H GCH QqS B ''"ac(2+ C ''#a% #&&)) *1 ,C 1QZGAcEk#''#''!C%.1"442c#''%.023A5r93> "SWWQqS\#-cggen?A2E GH GCH QqS B ''"ac(2+ C ''#a% #&&)) *1 ,C 1QZFAcEk#''#''!C%.1"44Bs3775>1!34b8#= "SWWQqS\#-cggen?A2E FIAc!en&q &AR!Qq) &$% "Qs(# & &&Ac!enIq IA{CHQqsAvax( I$&r!CxLAaC#I$>x!C?P$P "Qs(#$-b3h$7!CEE'C$H "Qs(# I II FAc!en#q #AR!Qq) #!"r!Cx  # ##8A;x{+A-CH B &&*BQs1u~2q 2A{CHQqsAvax( 2#$s1Sy!3q5/2B \\#b1#))Br2BB9SQSVTUVY\CZZH3q9%1%2 2 22IAc!en&q &AR!Qq) &$% "Qs(# & &&Ac!enIq IA{CHQqsAvax( I$&r!CxLAaC#I$>x!C?P$P "Qs(#$-b3h$7!CEE'C$H "Qs(# I II FQs1u~$q $AR!Qq) $"#s1Sy! $ $$Qs1u~2q 2A{CHQqsAvax( 2#$s1Sy!3q5/2B \\#b1#))Br2BB9SQSVTUVY\CZZH3q9%1%2 2 228A; ,Q.CH B BqE qE!GBqE8A;x{+CH 1QZ 1Q3"Q%1  CQs1u~:q :A{CHQqsAvax( :!'Ac !2BqE!9C#I : :: CQs1u~:q :A{CHQqsAvax( :!'Ac !2BqE!9C#I : :: EQs1u~q AqzCHB1ac1fQh' #c#a'l" #E#a%L   EQs1u~q AqzCHB1ac1fQh' #c#a'l" #E#a%L   F CHyy 2%1-H CHwwsQqS1H~h.67H8SWWR1X./HCHQs1u~*s q1 *A 3K5QqS> )K ** F CHyy 2%1-H CHwwsQqS1H~h.67H8SWWR1X./HCHQs1u~*s q1 *A 3K5QqS> )K **CH SVAY(#''#fQi.*A B CB ":D 366!QsvvX, A !QtVSYYq&%9991<= =E !QtVSYYq&%9991<= =E5% CH QsvvX,C Q3s QqS !#&&( *C #A AiiF7#GiiF7#G !A#;' !A %C !A#;' !A %CCH!CIIa&11366!9td|D]}-|7|-|>zz jj1|-d zdz z}8t|6|8j|z dzdzdz|<|-<t|6j|dz|8zj|z dzdzdz|=|-<i}?|D]5};td|D]$}-td'd |-zdzdzD] }@d|?|;|-|@f< &7|D]};td|D]p}-|<|-_tdd |-zdzdzD]L}@|4|;|-|@f|d |-zd|@zz z|+d|-z|@z z |?|;|-|@f<|?|;|-|@fdj2z|@zz |?|;|-|@f<Nrfd*}Ai}B|D]5}Ctd|D]$}-td'd |-zdzdzD] }@dBC|-|@f< &7|.trunc_arr rrr)rr!rrr(r#rgrrrrrrrdr$erhrr%rHrUrrXr"r&r'rrrr)\rr derivativesrrrsigmar\asigmaA1r+reps2brBAB1reps3eps4rrr2rirjrkr*rrforeps5rar_r`rrrrrrrrrrrrr;wpdrd2constd3psigmadrrrrrrr@wptcoefwptermc4fortcoefrrtcoefrrrrrtvtermrrssumrsboundwprssumrrrwps3rrrS3r S1absS1absS2wpendrzs\` r Rzeta_setr>sF$ k CI  A GGAJECH AcffHA YYq% F 1cggfoa' (B ))A z "C r6D 8B;D CH qy  HHQu g % HHQu    HHQv w & HHQv  CH A A#cii# 1Q3r!2 2d : aC A#cii# 1Q3r!2 2d : AaA 1!Ac qs1uU{1}#e*ad2B!"VWW !A#JD 1:D aq"a(A B 1ac!e_1 s1uB r ! SXXa[ ( / 6B ciiAqD1Q3'* *Q .B RBAh]SYYqs^ +F 2+ aCCFF(F"1$ 2+ Dggdggob "G 1R[!xx1%tAv.yy1~cii#c 22yyt)D.Q !1Q^A F q&C 772a4=D 1f >4SYYqs^!3DG!;<=>cggaj 2%CH AcffHA ! A !QqS' A ))Aswwqz4'( )Ccggaj$&'+JC!e C3771:./0A 99QsvvXq !399QqS>!#3A#5 6D B D#q$'ND( B B 1ac!e_1CH 1QqS\$qs1uQwr"% &A1H1%D &1q!A#a%'" $AqSBqsGOBqE $ $ C Q1Q B CGGQs5z\1$ % %cggdm 3A 5B FF1cffSVVmAoa'*2-. / 2E 1QZ WWSXXcii#./ 01U71C CB FRA 1vbyCH %[F AAfI16qah1!E(AgJQ!G*!& qQvY 1QZ4q6"9q1a" 2A!AaCA1WWQYTRi]sVa!A#ac l?2a!A#aj=8Aa!AaCiLH!Aa%!Aa%q2AAaE(CGGCGGAaC!G,<$r$rpsir)rrrrrttwpthetawpzthetar=ps1ps2ps3ps4expthetazzfs r z_halfrSrs ggenSUU1WAICH AcffHBlSWWQC[%;<r$rr)rrr;rrrXM1abstrwpbasicwpbasic2rIwpRrKrLrMrNrOrrrrPzvzv1s r zeta_halfrhs6I GGAJE  ACH qy HHSV  svvXq !C!Hs5y$9 9 qy sxx1SVV8 % % UQY s1u:D 4A!AcggajL!Gbb*3r6!8A:566y@BH'8$G!Qswws2vax((2145G CGGC!G  Y &q (CCH OOAceeU3775>%9:: ;E1uSWWSWWQqs^,a/#&&.2BBc1ucggcgga!n-.q0c1ucggcgga!n-.q0c1uSWWSWWQqs^,b0cCH C%!* %C CQqs|&88CH%C&CHxx5!H!t VHSVO #!t1vg#a& $ Vhsl "!tAhsl1SV8S!V,,SV3Bs1vIcMA VHSL !t#a&ja#a&a/#a& #%%c#a&j#q&&9#&==#c!f*S. CF36!11!CF(3,>qQx|K"SV)C-##CF*2c!f9S=8 VHSL CH Ir cx |j}|j|}|j|}d|_|dkDr|jt |d}nD|jd|j z|dz |jt d|z d|z z}|dkDr%d|j |d|j zz z}nd|z|z}d|z dkDr%d|j |d|j zz z}nEd|z|jd|j z| z|jt ||dz z}t d|z } d| ztj| z} tdd|j|z} d|jd |zd |z|zzd |z|z| zzz|zdz} t| | } tdd|jd |z|zz|zdz} d|jd d|zzz|zdz}| |_|j||j||jdz zz }|}|jd|z }||_t|||\}}|dkDrP|j!d|dz |j!dd|z dz zdz |j#|j dz z }|dkDr>|j|j!d|dz |j!dd|z dz z zdz }|dkDr2|j!d|dz |j!dd|z dz z dz }|dkDr?|j |j!d|dz |j!dd|z dz z zdz }| |_|j%d|z}|dk(r|d||dzz}|dk(r|d d|dzzz }|d||zz}|dk(r7d|dzzd|dz|dzzz|dzd|dzzz}|d||zz}|dk(rcd|dzdzzd|dz|dzzz d|dz|zz d|dzzz }|d|dz|z|zz |dz d|dzzz}|d||zz}|dk(rd|dzdzzd|dz|dzzzd|dz|dzzz}|d|dz|zzzd|dz|dzz|zz}|d|dz|zzd|dz|dzzz d|dz|zzd|dzzz }|d|dz|z|zz |dzd|dzzz }|d||zz}||_S)z+ Computes zeta^(k)(s) off the line rUrrrrrrrrrVrWrXrYrZr@r}rAr\rrBr[rErDr]r^ru)r!rrrgrr#r(rr_rrrFr'r%rrrGrXr)rrr;rrrr`raM2rbrrcrdrIrerKs1s2rrrLrMrNrOrPrfrgs r zeta_offlinermsI GGAJE  ACH qy IIc!fc " IIaha (3qs8CI)F F  sxx1SVV8 % % UQY %! sxx1SVV8 % % qS1SVV8eV, ,SYYs1veCi-H H s1u:D 4A!AcggajL!Gbb*3r6!8A:566y@BH'8$G!Qswws2vax((2145G CGGC!G  Y &q (CCH OOAceeU3775>%9:: ;E B !B$BCH31%HC1uSWWQr!t_SWWQ"ax%88!;cffSVVnQ>NNc1uCEE3771RT?3771adAX+>>?Ac1ucgga1ocgga2q&99:2=c1uSUUFCGGAbdOCGGAqtQh,??@CcCHxx5!HAv VHSVO #Av1vgaAhsl" VHSL AvAhsl1SV8S!V,,c!f4RAYs]B VHSL Av#a&ja3q6#q&03q6#=bQimKCAJsN3&&s1v-aAhsl: VHSL AvQiQ3q6 #q& 00CF361AA3s1v:c>#%%c#a&j#q&&9#&==#c!f*S. CF36!11!CF(3,>qQx|K"SV)C-##CF*2c!f9S=8 VHSL CH Ir c  |jd|j|zz}|}|jd|z }|j}d|_|j |dk\rNd|j |j |d|jzz z}|j t|}n_d|jz|j |dz ztd|z d|j |z zz}d|j |z|z}|j |dk\r4d|j |j |d|jzz z} n]d|j |zd|jz|j |dz zztd|z d|j |z zz} dt|j|z} |j |} | || zz} d|z} td d|j| z|j| d d| zzz| z}td|jd | z| z}|jd| z| z}||_|j|}||_t|||\}}d d |zz}d d |zz }|dkDrGd |jd||jd|zz|j|jdz z }|dkDr(d|jd||jd|z z}|dkDr(d|jd||jd|zz}|dkDr(d|jd||jd|z z}||_|j|}|dk(r||dz|d|z z}|j}|dk(r)||z|d|dzzz||d|d|zzz|z z }|dk(r[|d|dzz|d|dzzz |dz ||dzzzz}|d|dz|z|d|dzzz |dz ||dz|zz |z z}|dk(rd|dzdzz|d|dzzz d|dz|zz |dz|dzzz}|d|dz|z|zz|dz |dzz|z|z}d|dz|dzz|d|dzzzd|dz|zz|dz|dz|zz}||d|dz|z|zz|dz|d|zz z|z }||z}|dk(rSd|dzdzz|d|dzzzd |dz|dzzz}|d|dz|zzz d|dz|dzz|zz d|dz|zz }|d|dz|z|zz d|dz|zzd|dzzz d|dz|z|zz }||dz||dzzz}d|dz|dzz|d|dzzzd |dz|dzzz}|d|dz|z|zzd|dz|dzz|zzd|dz|zz}|d|dz|z|zz d|dz|zzd|dz|zz d|dz|z|zz }||dz||dz|zz }||z||z z}||_S)z8 Computes Z(w) and its derivatives off the line r@r#rrrrrrrgRQ@g?y?y?gyrrrCrDrE)r%r'rr!rr(rr#rrFrrrrGrXr)rr4r;rrkrlrrar`rjrr_r`rbrcrIrerKrrptaptbrLrMrNrOrPrfr'rgzv2s r z_offlinertsK suuQwA B !B$BICH  q sxx QZ01 1 HHSW  svvXQ '#ad)c#''"+o*F F _Q   q sxx QZ01 1 _ah#''"+a-8 8QrTSQS_9U U #cooa !!A 88A;D B?G!CGGDI&t+,G ''!D&/$ CCH OOA ECH3q#HC a-C a-C1uD#''!C.378366#&&>!;KKc1uTCGGAcN3771S>9:c1uVcgganSWWQs^;rSrhrmrtrvr}rr r rs0d (f(*t'l .6  DL$%#qh &P<|@DFP 0 0 - -r