← Session 8 — Regroup + R-004 finite-height Li theorem; resources atlas ingested
thinking (7365 chars)
Interesting — "first bad n=1995: dev=1.066e-11" — wait, worst is 1.066e-11 at 1995?? But the listed n=3000 dev = 2.004e3?! Contradiction — oh, the "worst" update happens in the same loop that breaks at first bad n=1995. So worst-tracker stopped at 1995. The printed curve below shows the real picture: dev explodes from n=2200: 2.8e-8, 3.2e-5, 2e-2, 7.8, 2004.
Growth: 2200→3000: 2.8e-8 → 2e3: ×7e10 over 800 = e^{25}/800 = e^{0.0313n} ≈ (15/14)^n (e^{0.069n})? No — 0.0313: (1+1/32)^n?? Hmm, r ≈ 0.0313 ≈ 1/32. What decays as 32^{−j}? Or: the error starts at n ≈ 2100-2200 — near M_SIG/... M_SIG = 1830: the omitted σ_m for m > 1830: boundary C(n,1830)·14^{−1830}: at n=3000: the criterion was for n=5000: C(5000,1830)·14^{−1830} < 1e-40 ✓ and C(3000,1830) < C(5000,1830)?? C(3000,1830) vs C(5000,1830): the latter bigger ✓ fine.
Error onset n ~ 2000+, growth e^{0.031n}... The σ-from-zeros for m = 81..1830: the zero-TAIL (k > 100): tail_m = 0.2·236.5^{1−m}: term C(n,m−1)·tail_m: at m=81: C(n,80)·0.2·236.5^{−80}: at n=3000: C(3000,80) ~ 10^{80·log10(3000e/80)} = 10^{80·2.01} = 10^{161}: ×0.2·236.5^{−80} = 0.2·10^{−190} = 2e-191 → 2e-30 ✓ fine. Hmm I computed this before for n=5000 (2e-11 at m=81). At n=3000: 10^{161−190} = 2e-29 ✓.
So not that either. What's at m ~ 81..1830 with zeros k ≤ 100? Their BULK values: σ_m accurate: γ at 450 digits, sums at dps 1700 ✓. What about... OH WAIT. The M_SIG boundary at 1830 — the criterion I used: logC − (M−1)·log(14.13) + log(0.05) < −40 (base 10). But the boundary error isn't C(n,M)·σ₂·14^{1−M} — it's the OMITTED TAIL Σ_{j>M} C(n,j)·σ_{j+1} ~ C(n,M+1)·2·14^{−(M+1)}·(1/(1−ratio)) with ratio = (n−M)/(M+1)/14: at n=5000, M=1830: ratio = 3170/1831/14 = 0.124: tail ≤ C(5000,1831)·2·14^{−1831}·1.14: my criterion: C(5000,1830)·0.05·14^{−1829}: C(5000,1831)/C(5000,1830) = (5000−1830)/1831 = 1.73: so tail ≈ 1.73·14^{−2}·(2/0.05)·... ≈ C(5000,1830)·0.05·14^{−1829}×(1.73/196)·(2/0.05)·1.14 ≈ criterion-value × 0.4: < 1e-40 ✓ still fine.
Hmm!! So what explodes at n=2200?? Let me look at |S_f| values: S_f(2000) = −10.77, S_f(2200) = −2.39, S_f(2400) = −1.08, S_f(2600) = +141.1, S_f(2800) = +62314, S_f(3000) = +1.7e7. True S_f: O(1)-ish. The error: ~141 (2600), 6e4 (2800), 1.7e7 (3000): growth ×430 per 200 → e^{0.03n}·... r = 0.03 ≈ 1/33.
What in η_j could be wrong with magnitude ~33^{−j}?! NOTHING obvious... unless: σ_m exact (m ≤ 80) has an ERROR growing with... no, σ_m for m ≤ 80 only enters η_j for j ≤ 79 → terms j ≤ 79: C(n,j)-amplified: σ_m error ε_m at term j=m−1: C(n,m−1)·ε_m: for the error to grow with n as e^{0.03n} starting at n=2200... C(n,79)·ε_80: n^{79}-growth — from n=2200 to 3000: (3000/2200)^{79} = e^{79·0.31} = e^{24.5} = 4.4e10: observed error growth 141→1.7e7 (2600→3000): ×1.2e5 over 400 = e^{11.7}/400 = e^{0.029n}; and 2200→3000 ×7e10 over 800 = e^{0.0313n}. n^{79} scaling from 2200→3000: (1.36)^{79} = e^{24.5} — observed e^{25}!!! MATCHES n^{79}!!! The j=79 term — σ_80!!!
σ_80 = (−1)^{79}(τ_79 − η_79) + 1 — computed from τ_79 (cache ζ(80)) and η_79 (Stieltjes). If σ_80 has an error ε: term C(n,79)·ε·(−1)^{80}: at n=3000: C(3000,79) ~ 10^{79·log10(3000e/79)} = 10^{79·2.014} = 10^{159}: error 10^{159}·ε = 1.7e7 → ε = 1.7e-152. σ_80 ~ 14.13^{−80}·2 = 10^{−91.7}: relative error 1.7e-152/1e-91.7 = 1.7e-60?!? Where would σ_80 get a 1e-60 relative error?! τ_79 = (−1)^{80}(1−2^{−80})ζ(80): from cache ζ(80) string (1650 digits, parsed at dps 1700) ✓; η_79 from Stieltjes strings (1750 digits): the subtraction τ_79 − η_79: τ_79 ≈ 1 + 3^{−80} = 1+1.8e-39; η_79 ≈ −(−1)^{79}... η_79 = (−1)^{80}[3^{−80} + σ_80] = +3^{−80} + σ_80 = 1.8e-39 + 1e-91.7. τ_79 − η_79 = 1 + 1.8e-39 − 1.8e-39 − 1e-91.7 = 1 − 1e-91.7. σ_80 = (−1)^{79}(1 − 1e-91.7) + 1 = −1 + 1e-91.7 + 1 = 1e-91.7 ✓. The CANCELLATION: (1 − 1e-91.7) + 1·(−1): at dps 1700: fine — error ~1e-1700 absolute → σ_80 error ~1e-1700. NOT 1.7e-152.
Hmm!! So not σ_80's computation in isolation. But the GROWTH matches n^{79}·... wait let me double check the growth fit: errors: 2200: 2.8e-8·λ_2200 = 2.8e-8·6500 ≈ 1.8e-4 abs; 2400: 3.2e-5·6750 = 0.21; 2600: 2e-2·7300 = 146; 2800: 7.8·7900 = 6.2e4; 3000: 2004·8618 = 1.7e7. Ratios per 200: 0.21/1.8e-4 = 1166; 146/0.21 = 695; 6.2e4/146 = 425; 1.7e7/6.2e4 = 278. n^{79} per 200: (1.074)^{79}·... (n+200/n)^{79}: at 2400: (2400/2200)^{79} = (1.0909)^{79} = e^{6.87} = 960 ✓ ~1166; at 2600: (1.0833)^{79} = e^{6.32} = 556 vs 695; at 2800: (1.0769)^{79} = e^{5.86} = 350 vs 425; at 3000: (1.0714)^{79} = e^{5.45} = 233 vs 278. Off by factor ~1.2 each — close to n^{79} but slightly steeper: n^{82}? (2400/2200)^{82} = e^{7.13} = 1250 ✓; (2600/2400)^{82} = e^{6.55} = 700 ✓✓; (2800/2600)^{82} = e^{6.08} = 437 ✓✓; (3000/2800)^{82} = e^{5.65} = 284 ✓✓. n^{82}!!! The j=82 term — σ_83!!! Hmm, 82: C(n,82) — the j=82 term uses η_82: η_82 = (−1)^{83}[(1−2^{−83})ζ(83) − 1 + σ_83]: σ_83 from ZEROS (83 > 80)!!! The zero-side σ_83!!! Its zero-tail (k>100): tail_83 = 0.2·236.5^{−82} = 10^{−194.7}·0.2 = 4e-196?!? Term: C(3000,82)·4e-196 = 10^{82·2.014}·4e-196 = 10^{165}·4e-196 = 4e-31 ✓ fine. Its BULK from zeros k ≤ 100: γ at 450 digits: error ~ m·δγ/γ·σ_m: 83·1e-450·... tiny. Sum at dps 1700: ✓.
Hmm, so why would σ_83 (or η_82) be wrong?! WAIT — maybe it's not η_82. The growth n^{82} could also be the j=82 term's COEFFICIENT error — or η_82 error ε_82: C(n,82)·ε_82 = error: at n=3000: C(3000,82) = 10^{82·2.014} = 10^{165}: ε_82 = 1.7e7/10^{165} = 1.7e-158. η_82 ~ 3^{−82} = 10^{−39}: relative 4e-119. Hmm — what has an error at 1e-158 absolute?? 10^{−158}... the M_SIG boundary? No — that's σ omission m > 1830: affects η_j for j ≥ 1830: term j=1830: C(n,1830)·14^{−1830}: at n=3000: C(3000,1830)·14^{−1830}: log10 C(3000,1830) ≈ H(0.61)·3000/3.33: H(0.61) = 0.968 bits → 2904 bits = 874 digits: 14^{−1830} = 10^{−2100}: product 10^{−1226} tiny. no.
Hmm, 1.7e-158 at η_82... What's special about j=82? K_SPLIT = 80: η_j for j ≥ 80 from formula. η_80: σ_81 (zeros); η_81: σ_82; η_82: σ_83. All zeros-based σ. If the zeros-σ values had a UNIFORM-ish error pattern... the error would hit j=80 first: n^{80} growth — measured n^{82}. Hmm — but with sign (−1)^{j+1}σ_{j+1}: contributions from multiple j... the observed pure n^{82} law suggests ONE dominant wrong η at j=82?? or several.
Actually WAIT — maybe it's σ_m for m ~ 83: from zeros k ≤ 100 at dps 1700: r**(−83): fine... Hmm, but actually — what about the m-range 81..1830: are the σ_m values for m just above 80 correct? Cross-check: σ_81, σ_83 vs exact formula (τ−η needs η_80, η_82 — Stieltjes only to 79... extend Stieltjes? No — check σ_83 vs zero-tail-extended zeros: σ_83 = Σ_{k≤100}2Re ρ_k^{−83}: is that the right VALUE? Test with more zeros: add float-cache zeros k=101..4624 (float64): tail_83(k=101..4624) = Σ 2Re ρ^{−83}: |ρ| ≥ 236: contribution ~ 2·236^{−82}·(# zeros)~... = 10^{−194.7}·0.2-ish: compare σ_83 computed both ways (k≤100 vs k≤4624 with float): difference = tail(k>100) ~ 4e-196 vs σ_83 ~ 2·14^{−83} = 10^{−95}: relative 4e-101 — the tail is negligible for m=83 ✓ (I verified this bound before). So σ_83 (k≤100) is accurate to ~1e-195 absolute ✓✓.
I'm stuck on theory again — go empirical: dev at j-block level for n=3000 (like before): compute S_f(3000) partial sums and dev-after-each-block, and ALSO directly compute η_80..85 two ways (formula vs extended-Stieltjes to k=85 — cheap).
Growth law is exactly n⁸² — pointing at η₈₂/σ₈₃. Let me check ηⱼ (j=80..90) against an extended Stieltjes reference (k≤90, cheap).
tool: Bash
input
{
"command": "cd /d/Python/Quantum && ./.venv/Scripts/python.exe - <<'EOF'\nsrc = open(\"research/numerics/scripts/E-021-sinf-sf-curve.py\").read()\nsrc = src.replace('if __name__ == \"__main__\":', 'if False:')\nns = {\"__file__\": \"research/numerics/scripts/E-021-sinf-sf-curve.py\"}\nexec(compile(src, \"e21\", \"exec\"), ns)\nzeta_str, fd = ns[\"get_zeta_strings\"](300)\neta_str = ns[\"compute_eta\"](zeta_str, fd)\nimport mpmath as mp, flint\n# reference: stieltjes to k=90\nflint.ctx.prec = 6000\nmp.mp.dps = 1700\ngam = [mp.mpf(flint.acb.stieltjes(k).real.str(1600, radius=False)) for k in range(92)]\nN_=[mp.mpf(0)]*92; D_=[mp.mpf(0)]*92; N_[0]=D_[0]=1\nfor m in range(0,91): D_[m+1]=(-1)**m*gam[m]/mp.factorial(m)\nfor m in range(1,91): N_[m+1]=-(-1)**m*gam[m]/mp.factorial(m-1)\nE=[mp.mpf(0)]*92\nfor k in range(0,92):\n s=N_[k]\n for i in range(1,k+1): s-=D_[i]*E[k-i]\n E[k]=s\nref=[E[k+1] for k in range(91)]\nmp.mp.dps = 500\nprint(f\"{'j':>3} {'eta_ref':>22} {'eta_new':>22} {'|diff|':>10}\")\nfor j in range(76, 91):\n d = abs(ref[j] - mp.mpf(eta_str[j]))\n flag = \" <<<\" if d > mp.mpf('1e-200') else \"\"\n print(f\"{j:>3} {mp.nstr(ref[j],12):>22} {mp.nstr(mp.mpf(eta_str[j]),12):>22} {mp.nstr(d,3):>10}{flag}\")\nEOF",
"description": "Check eta 76..90 vs Stieltjes reference",
"timeout": 600000
}
raw content_json (database row)
[{"type":"thinking","thinking":"Interesting — \"first bad n=1995: dev=1.066e-11\" — wait, worst is 1.066e-11 at 1995?? But the listed n=3000 dev = 2.004e3?! Contradiction — oh, the \"worst\" update happens in the same loop that breaks at first bad n=1995. So worst-tracker stopped at 1995. The printed curve below shows the real picture: dev explodes from n=2200: 2.8e-8, 3.2e-5, 2e-2, 7.8, 2004.\n\nGrowth: 2200→3000: 2.8e-8 → 2e3: ×7e10 over 800 = e^{25}/800 = e^{0.0313n} ≈ (15/14)^n (e^{0.069n})? No — 0.0313: (1+1/32)^n?? Hmm, r ≈ 0.0313 ≈ 1/32. What decays as 32^{−j}? Or: the error starts at n ≈ 2100-2200 — near M_SIG/... M_SIG = 1830: the omitted σ_m for m > 1830: boundary C(n,1830)·14^{−1830}: at n=3000: the criterion was for n=5000: C(5000,1830)·14^{−1830} < 1e-40 ✓ and C(3000,1830) < C(5000,1830)?? C(3000,1830) vs C(5000,1830): the latter bigger ✓ fine.\n\nError onset n ~ 2000+, growth e^{0.031n}... The σ-from-zeros for m = 81..1830: the zero-TAIL (k > 100): tail_m = 0.2·236.5^{1−m}: term C(n,m−1)·tail_m: at m=81: C(n,80)·0.2·236.5^{−80}: at n=3000: C(3000,80) ~ 10^{80·log10(3000e/80)} = 10^{80·2.01} = 10^{161}: ×0.2·236.5^{−80} = 0.2·10^{−190} = 2e-191 → 2e-30 ✓ fine. Hmm I computed this before for n=5000 (2e-11 at m=81). At n=3000: 10^{161−190} = 2e-29 ✓.\n\nSo not that either. What's at m ~ 81..1830 with zeros k ≤ 100? Their BULK values: σ_m accurate: γ at 450 digits, sums at dps 1700 ✓. What about... OH WAIT. The M_SIG boundary at 1830 — the criterion I used: logC − (M−1)·log(14.13) + log(0.05) < −40 (base 10). But the boundary error isn't C(n,M)·σ₂·14^{1−M} — it's the OMITTED TAIL Σ_{j>M} C(n,j)·σ_{j+1} ~ C(n,M+1)·2·14^{−(M+1)}·(1/(1−ratio)) with ratio = (n−M)/(M+1)/14: at n=5000, M=1830: ratio = 3170/1831/14 = 0.124: tail ≤ C(5000,1831)·2·14^{−1831}·1.14: my criterion: C(5000,1830)·0.05·14^{−1829}: C(5000,1831)/C(5000,1830) = (5000−1830)/1831 = 1.73: so tail ≈ 1.73·14^{−2}·(2/0.05)·... ≈ C(5000,1830)·0.05·14^{−1829}×(1.73/196)·(2/0.05)·1.14 ≈ criterion-value × 0.4: < 1e-40 ✓ still fine.\n\nHmm!! So what explodes at n=2200?? Let me look at |S_f| values: S_f(2000) = −10.77, S_f(2200) = −2.39, S_f(2400) = −1.08, S_f(2600) = +141.1, S_f(2800) = +62314, S_f(3000) = +1.7e7. True S_f: O(1)-ish. The error: ~141 (2600), 6e4 (2800), 1.7e7 (3000): growth ×430 per 200 → e^{0.03n}·... r = 0.03 ≈ 1/33.\n\nWhat in η_j could be wrong with magnitude ~33^{−j}?! NOTHING obvious... unless: σ_m exact (m ≤ 80) has an ERROR growing with... no, σ_m for m ≤ 80 only enters η_j for j ≤ 79 → terms j ≤ 79: C(n,j)-amplified: σ_m error ε_m at term j=m−1: C(n,m−1)·ε_m: for the error to grow with n as e^{0.03n} starting at n=2200... C(n,79)·ε_80: n^{79}-growth — from n=2200 to 3000: (3000/2200)^{79} = e^{79·0.31} = e^{24.5} = 4.4e10: observed error growth 141→1.7e7 (2600→3000): ×1.2e5 over 400 = e^{11.7}/400 = e^{0.029n}; and 2200→3000 ×7e10 over 800 = e^{0.0313n}. n^{79} scaling from 2200→3000: (1.36)^{79} = e^{24.5} — observed e^{25}!!! MATCHES n^{79}!!! The j=79 term — σ_80!!!\n\nσ_80 = (−1)^{79}(τ_79 − η_79) + 1 — computed from τ_79 (cache ζ(80)) and η_79 (Stieltjes). If σ_80 has an error ε: term C(n,79)·ε·(−1)^{80}: at n=3000: C(3000,79) ~ 10^{79·log10(3000e/79)} = 10^{79·2.014} = 10^{159}: error 10^{159}·ε = 1.7e7 → ε = 1.7e-152. σ_80 ~ 14.13^{−80}·2 = 10^{−91.7}: relative error 1.7e-152/1e-91.7 = 1.7e-60?!? Where would σ_80 get a 1e-60 relative error?! τ_79 = (−1)^{80}(1−2^{−80})ζ(80): from cache ζ(80) string (1650 digits, parsed at dps 1700) ✓; η_79 from Stieltjes strings (1750 digits): the subtraction τ_79 − η_79: τ_79 ≈ 1 + 3^{−80} = 1+1.8e-39; η_79 ≈ −(−1)^{79}... η_79 = (−1)^{80}[3^{−80} + σ_80] = +3^{−80} + σ_80 = 1.8e-39 + 1e-91.7. τ_79 − η_79 = 1 + 1.8e-39 − 1.8e-39 − 1e-91.7 = 1 − 1e-91.7. σ_80 = (−1)^{79}(1 − 1e-91.7) + 1 = −1 + 1e-91.7 + 1 = 1e-91.7 ✓. The CANCELLATION: (1 − 1e-91.7) + 1·(−1): at dps 1700: fine — error ~1e-1700 absolute → σ_80 error ~1e-1700. NOT 1.7e-152.\n\nHmm!! So not σ_80's computation in isolation. But the GROWTH matches n^{79}·... wait let me double check the growth fit: errors: 2200: 2.8e-8·λ_2200 = 2.8e-8·6500 ≈ 1.8e-4 abs; 2400: 3.2e-5·6750 = 0.21; 2600: 2e-2·7300 = 146; 2800: 7.8·7900 = 6.2e4; 3000: 2004·8618 = 1.7e7. Ratios per 200: 0.21/1.8e-4 = 1166; 146/0.21 = 695; 6.2e4/146 = 425; 1.7e7/6.2e4 = 278. n^{79} per 200: (1.074)^{79}·... (n+200/n)^{79}: at 2400: (2400/2200)^{79} = (1.0909)^{79} = e^{6.87} = 960 ✓ ~1166; at 2600: (1.0833)^{79} = e^{6.32} = 556 vs 695; at 2800: (1.0769)^{79} = e^{5.86} = 350 vs 425; at 3000: (1.0714)^{79} = e^{5.45} = 233 vs 278. Off by factor ~1.2 each — close to n^{79} but slightly steeper: n^{82}? (2400/2200)^{82} = e^{7.13} = 1250 ✓; (2600/2400)^{82} = e^{6.55} = 700 ✓✓; (2800/2600)^{82} = e^{6.08} = 437 ✓✓; (3000/2800)^{82} = e^{5.65} = 284 ✓✓. n^{82}!!! The j=82 term — σ_83!!! Hmm, 82: C(n,82) — the j=82 term uses η_82: η_82 = (−1)^{83}[(1−2^{−83})ζ(83) − 1 + σ_83]: σ_83 from ZEROS (83 > 80)!!! The zero-side σ_83!!! Its zero-tail (k>100): tail_83 = 0.2·236.5^{−82} = 10^{−194.7}·0.2 = 4e-196?!? Term: C(3000,82)·4e-196 = 10^{82·2.014}·4e-196 = 10^{165}·4e-196 = 4e-31 ✓ fine. Its BULK from zeros k ≤ 100: γ at 450 digits: error ~ m·δγ/γ·σ_m: 83·1e-450·... tiny. Sum at dps 1700: ✓.\n\nHmm, so why would σ_83 (or η_82) be wrong?! WAIT — maybe it's not η_82. The growth n^{82} could also be the j=82 term's COEFFICIENT error — or η_82 error ε_82: C(n,82)·ε_82 = error: at n=3000: C(3000,82) = 10^{82·2.014} = 10^{165}: ε_82 = 1.7e7/10^{165} = 1.7e-158. η_82 ~ 3^{−82} = 10^{−39}: relative 4e-119. Hmm — what has an error at 1e-158 absolute?? 10^{−158}... the M_SIG boundary? No — that's σ omission m > 1830: affects η_j for j ≥ 1830: term j=1830: C(n,1830)·14^{−1830}: at n=3000: C(3000,1830)·14^{−1830}: log10 C(3000,1830) ≈ H(0.61)·3000/3.33: H(0.61) = 0.968 bits → 2904 bits = 874 digits: 14^{−1830} = 10^{−2100}: product 10^{−1226} tiny. no.\n\nHmm, 1.7e-158 at η_82... What's special about j=82? K_SPLIT = 80: η_j for j ≥ 80 from formula. η_80: σ_81 (zeros); η_81: σ_82; η_82: σ_83. All zeros-based σ. If the zeros-σ values had a UNIFORM-ish error pattern... the error would hit j=80 first: n^{80} growth — measured n^{82}. Hmm — but with sign (−1)^{j+1}σ_{j+1}: contributions from multiple j... the observed pure n^{82} law suggests ONE dominant wrong η at j=82?? or several.\n\nActually WAIT — maybe it's σ_m for m ~ 83: from zeros k ≤ 100 at dps 1700: r**(−83): fine... Hmm, but actually — what about the m-range 81..1830: are the σ_m values for m just above 80 correct? Cross-check: σ_81, σ_83 vs exact formula (τ−η needs η_80, η_82 — Stieltjes only to 79... extend Stieltjes? No — check σ_83 vs zero-tail-extended zeros: σ_83 = Σ_{k≤100}2Re ρ_k^{−83}: is that the right VALUE? Test with more zeros: add float-cache zeros k=101..4624 (float64): tail_83(k=101..4624) = Σ 2Re ρ^{−83}: |ρ| ≥ 236: contribution ~ 2·236^{−82}·(# zeros)~... = 10^{−194.7}·0.2-ish: compare σ_83 computed both ways (k≤100 vs k≤4624 with float): difference = tail(k>100) ~ 4e-196 vs σ_83 ~ 2·14^{−83} = 10^{−95}: relative 4e-101 — the tail is negligible for m=83 ✓ (I verified this bound before). So σ_83 (k≤100) is accurate to ~1e-195 absolute ✓✓.\n\nI'm stuck on theory again — go empirical: dev at j-block level for n=3000 (like before): compute S_f(3000) partial sums and dev-after-each-block, and ALSO directly compute η_80..85 two ways (formula vs extended-Stieltjes to k=85 — cheap).","signature":""},{"type":"text","text":"Growth law is exactly n⁸² — pointing at η₈₂/σ₈₃. Let me check ηⱼ (j=80..90) against an extended Stieltjes reference (k≤90, cheap)."},{"type":"tool_use","id":"Bash_118","name":"Bash","input":{"command":"cd /d/Python/Quantum && ./.venv/Scripts/python.exe - <<'EOF'\nsrc = open(\"research/numerics/scripts/E-021-sinf-sf-curve.py\").read()\nsrc = src.replace('if __name__ == \"__main__\":', 'if False:')\nns = {\"__file__\": \"research/numerics/scripts/E-021-sinf-sf-curve.py\"}\nexec(compile(src, \"e21\", \"exec\"), ns)\nzeta_str, fd = ns[\"get_zeta_strings\"](300)\neta_str = ns[\"compute_eta\"](zeta_str, fd)\nimport mpmath as mp, flint\n# reference: stieltjes to k=90\nflint.ctx.prec = 6000\nmp.mp.dps = 1700\ngam = [mp.mpf(flint.acb.stieltjes(k).real.str(1600, radius=False)) for k in range(92)]\nN_=[mp.mpf(0)]*92; D_=[mp.mpf(0)]*92; N_[0]=D_[0]=1\nfor m in range(0,91): D_[m+1]=(-1)**m*gam[m]/mp.factorial(m)\nfor m in range(1,91): N_[m+1]=-(-1)**m*gam[m]/mp.factorial(m-1)\nE=[mp.mpf(0)]*92\nfor k in range(0,92):\n s=N_[k]\n for i in range(1,k+1): s-=D_[i]*E[k-i]\n E[k]=s\nref=[E[k+1] for k in range(91)]\nmp.mp.dps = 500\nprint(f\"{'j':>3} {'eta_ref':>22} {'eta_new':>22} {'|diff|':>10}\")\nfor j in range(76, 91):\n d = abs(ref[j] - mp.mpf(eta_str[j]))\n flag = \" <<<\" if d > mp.mpf('1e-200') else \"\"\n print(f\"{j:>3} {mp.nstr(ref[j],12):>22} {mp.nstr(mp.mpf(eta_str[j]),12):>22} {mp.nstr(d,3):>10}{flag}\")\nEOF","description":"Check eta 76..90 vs Stieltjes reference","timeout":600000},"extra_content":null}]