Current task: —

← Session 5 — Phase 0: paper deep-read + Bombieri–Lagarias literature

#179 assistant 2026-08-18 03:14:03.069 UTC · 1284→4303 tok open ⤢
thinking (10859 chars)
Proceed with E-010: compute W(a,θ;z) and its zeros. Design from D-019 §4: - Deficiency vectors v_± solve (T_a v_±)(x) = e^{±x} where T_a = A_a − λI, λ < λ_a. - W(a,θ;z) = (z−i)∫_{-a}^{a} v₊(a,x) e^{izx} dx + e^{iθ}(z+i) ∫_{-a}^{a} v₋(a,x) e^{izx} dx. - v_± normalized so their T_a-norms agree. - Eigenvalues of 𝒟̄_{a,θ} = zeros of W; all real (Thm 1.5). - Cor 1.6: convergence to z²ξ(½−iz)/ξ′(½−iz) as a→∞. Numerical plan: 1. Solve (Q − λM)c = b_± in the Galerkin space, b_±,i = ⟨e^{±x}, φ_i⟩ (exact integral over hat support). λ shift: need λ < λ_a; λ_a > 0 tiny — choose λ = −1 (safely below). 2. v_±(x) = Σ c_i φ_i(x). Compute Fourier integrals ∫v_±(x)e^{izx}dx analytically from hat coefficients: ∫φ_i e^{izx}dx known closed form (hat transform = h·sinc²-ish): ∫φ_i(x)e^{izx}dx = e^{izx_i}·(2−2cos(zh))/(z²h) = e^{izx_i}·h·sinc²(zh/2)-ish with sinc(θ)=sin θ/θ. So ∫v e^{izx} = Σc_i e^{izx_i}·(2−2cos(zh))/(z²h). 3. Normalize: T_a-norms: ‖v‖²_T = cᵀ(Q − λM)c = cᵀb (since (Q−λM)c = b). Scale v_₋ so ‖v_₋‖_T = ‖v₊‖_T. 4. W(z) on a real grid z ∈ [0, 60] (first ~12 zeros), for several θ; find sign changes → zeros. W is complex for real z? Zeros of W are real (Thm 1.5) but W itself complex-valued on ℝ... For finding real zeros, need |W| or a real gauge. Hmm: W(a,θ;z) for real z is complex in general. Zeros on the real line can be found as minima of |W|². Alternatively note e^{-iθ/2}W might be real-valued on ℝ by symmetry: v_₋(x) = v₊(−x)? Since T_a is even (g even) and e^{−x} = e^{+(−x)}: v₋(x) = v₊(−x) ✔. Then ∫v₋e^{izx} = ∫v₊(−x)e^{izx}dx = ∫v₊(x)e^{−izx}dx = conj of ∫v₊e^{izx} for real z (v real). So with V(z) := ∫v₊e^{izx}dx: W(z) = (z−i)V(z) + e^{iθ}(z+i)V̄(z) for real z. Write V = V_r + iV_i: (z−i)V + e^{iθ}(z+i)V̄. For θ = 0: W = (z−i)V + (z+i)V̄ = z(V+V̄) − i(V − V̄) = 2zV_r + 2V_i·... compute: (z−i)(V_r+iV_i) = zV_r + izV_i − iV_r + V_i; (z+i)(V_r−iV_i) = zV_r − izV_i + iV_r + V_i. Sum: 2zV_r + 2V_i. REAL ✔. So θ=0 gives real W on ℝ — zeros found by sign changes. Great: scan θ ∈ {0, π/4, π/2, ...} with real gauge e^{-iθ/2}W? For general θ: e^{-iθ/2}W = e^{-iθ/2}(z−i)V + e^{iθ/2}(z+i)V̄ — not real for θ≠0. For zero-finding at general θ use |W| minima... but Thm 1.5 says all zeros real, so |W| touches 0 on ℝ. Simpler: work with θ = 0 primarily (some extension), maybe also θ = π (W = (z−i)V − (z+i)V̄ = −2V_i·z... let me compute: (z−i)V − (z+i)V̄ = [zV_r + izV_i − iV_r + V_i] − [zV_r − izV_i + iV_r + V_i] = 2izV_i − 2iV_r = 2i(zV_i − V_r) — pure imaginary; W/i real ✔. So plan: compute W for θ=0 on z-grid, sign changes, bisect, get zeros z_j(a, θ=0) for a ∈ {2,4,6,8}; compare to γ_j. Also maybe a couple more θ values. But WAIT — is θ=0's extension the "zeta-aligned" one? Unknown (Q-S3). The numerical experiment will show whether zeros approach γ for any θ. Start with θ=0. Also domain/mean-zero subtlety: A_a acts on L²₀; e^{±x} is not mean-zero — the resolvent solve (T_a v = e^{±x}) in L²₀: project rhs? T_a is invertible on L²₀; the equation (T_a v_±)(x) = e^{±x} in the L²₀ sense means T_a v_± = P_a(e^{±x}) presumably, or e^{±x} restricted... The paper's Lemma 6.2 states (T_a v_±)(x) = e^{±x}. If T_a maps into L²₀, the rhs should be P_a e^{±x}. Hmm — or the equation holds in the distributional sense on the whole L². To be safe, solve with rhs = P_a(e^{±x}) (projected) — check sensitivity later. Actually simplest: build rhs b_±,i = ⟨e^{±x}, φ_i⟩ and solve the constrained system (Z-projected): (Zᵀ(Q−λM)Z)d = Zᵀb — this automatically uses the projected rhs. Fine. Also λ shift: T_a = A_a − λI with λ < λ_a ≈ 0⁺. Choose λ = −1. Sensitivity check: λ = −0.5 vs −1 vs −2 at one (a, θ) — the zeros of W should be INDEPENDENT of λ (different λ gives different realization of same extensions? The extension domains depend on λ via v_±... the theory: deficiency vectors of 𝒟_a in ℋ(T_a) depend on λ, but the operators 𝒟̄_{a,θ} and their spectra should be λ-independent... actually the Hilbert space ℋ(T_a) itself depends on λ (norm changes), and the extensions' spectra could depend on λ?! Hmm, in the paper's construction the operator 𝒟̄ is in ℋ(T_a); changing λ changes the inner product and hence self-adjointness conditions. The W-function zeros should still be the spectra of the corresponding extensions. For the RH correspondence, maybe any λ works and Cor 1.6's θ(a), φ absorb it. Numerically: test λ-sensitivity. If zeros depend on λ, that's a Q-S3-type question to document. Also the mean-zero constraint in our Galerkin space: our Q, M act on mean-zero subspace — matches L²₀ setting ✔. Mesh: a up to 8 ⇒ need g on [0,16] — E-009a table only goes to 10! But E-009b's g_float computes g directly (sieve to e^10). For a=8 need T_MAXG=16 ⇒ sieve to e^16 ≈ 8.9e6 — fine memory-wise (float arrays 8.9M × 8B × few = ~300MB, OK) but sieve loop over 8.9M in Python ~ slow (the is_comp slicing sieve is OK: ~seconds; the prime-power while loop fine). g_float evaluation count: S(k) for N = 2a/h = 3200 elements × ~60 GL pts ≈ 200k evals vectorized ✔ fast. mpmath lerch only for t<0.35 ✔. Hmm wait, also for a=8, h=0.005: N=3200, dense eigh... we don't need full eigensolve for E-010 — only the resolvent solve (Q−λM)c = b: dense Cholesky on 3200² — fine (few seconds). But building Q requires S(k) for k up to N — 3200 × 60 g-evals = 200k — fine. Refinement: h=0.005 for all a? For a=8, maybe h=0.01 for speed first pass. Convergence check at one a. Plan the script E-010-suzuki-W-function.py: - Reuse E-009b's g/S/stiffness via import? The scripts are standalone; importing from another script is doable via importlib but cleaner to copy the needed functions (self-contained convention per archive). Copy g_float/S/stiffness code with T_MAXG=16. - For each a ∈ {2,4,6,8} (h=0.005; h-conv at a=4 with h=0.01, 0.002): - Build Q, M (toeplitz), Z projection (mean-zero). - T = Zᵀ(Q−λM)Z; rhs b_± = Zᵀ(⟨e^{±x},φ_i⟩); solve. - ⟨e^{sx}, φ_i⟩ exact: ∫_{x_{i−1}}^{x_i} e^{sx}(x−x_{i−1})/h dx + ∫_{x_i}^{x_{i+1}} e^{sx}(x_{i+1}−x)/h dx. Closed form: e^{sx_i}(e^{sh}−1−sh·... let me just: ∫_{-h}^{0} e^{s(x_i+u)}(u+h)/h du + ∫_0^h e^{s(x_i+u)}(h−u)/h du = e^{sx_i}·[(e^{sh}+e^{−sh}−2)/(s²h)]·... verify: ∫_0^h e^{su}(h−u)/h du = [e^{su}(...)]... formula: ∫_0^h e^{su}(h−u)du/h = (e^{sh} − 1 − sh)/(s²h)·... compute: ∫₀^h e^{su}(h−u)du = h(e^{sh}−1)/s − [e^{su}(su−1)/s²]₀^h = h(e^{sh}−1)/s − (e^{sh}(sh−1)+1)/s². Divide by h. Similarly the other side. Fine — or just numerical quadrature (GL 8-pt per element, exact enough). Simpler: use quadrature. - ‖v_±‖²_T = c_±ᵀ(Q−λM)c_± (in reduced coords d: dᵀT d). Normalize. - V(z) = ∫v₊ e^{izx}dx = Σ_i c_i e^{izx_i}·hatFT(z), hatFT(z) = (2−2cos(zh))/(z²h) (with hatFT(0)=h). - W(z;θ=0) = 2z Re V(z) + 2 Im V(z)·... wait derived above: W(θ=0) = 2zV_r + 2V_i?? Let me recheck: (z−i)V + (z+i)V̄ where V = V_r + iV_i: (z−i)(V_r+iV_i) = zV_r + izV_i − iV_r − i²V_i = zV_r + V_i + i(zV_i − V_r). (z+i)V̄ = (z+i)(V_r−iV_i) = zV_r − izV_i + iV_r + V_i = zV_r + V_i + i(V_r − zV_i). Sum = 2zV_r + 2V_i. Imag parts cancel ✔. So W₀(z) = 2(z ReV(z) + ImV(z)). - Sign-change scan + bisection on z ∈ (0, 60]. - Compare zeros with γ_1..γ_10. - λ-sensitivity: λ ∈ {−0.5, −1, −2} at a=4, θ=0. - θ-sensitivity: θ ∈ {0, π/2, π} at a=4: for θ=π/2 use |W| minima... or compute all and find real zeros via |W|² local minima → polish with Newton on complex plane? Keep simple: θ=0 main; θ=π also real-gauge (W/i); θ=π/2 via |W| minima (report only). Checks: - W real-gauge for θ=0: |Im part| tiny (automatically real by construction — verify the identity numerically: compute W full and check Im ≈ 0). - Zeros real & stable under h refinement at a=4. - λ-independence documented. Output: CSV with a, h, lambda_shift, theta, j, z_j, gamma_j, z_j/gamma_j. Effort: moderate. One concern: does the zeta-aligned limit actually show zeros near γ at these small a? Probably NOT close — a≤8 is small; the Cor 1.6 limit is a→∞. What we hope to see: zeros of W moving TOWARD γ's as a grows, or at least structured behavior. Even negative result (no approach) is informative for Q-S3. Also worth computing: bottom eigenvalues of 𝒟̄ vs... whatever the data shows. Let me also double-check the v_± equation: "(T_a v_±)(x) = e^{±x}" — from the earlier fetch: "deficiency vectors v_± satisfying (T_a v_±)(x) = e^{±x}". ✔. And normalization: "normalized so their T_a-norms agree" — after solving, scale v_₋ by ‖v₊‖_T/‖v₋‖_T. By symmetry v₋(x) = v₊(−x) ⇒ norms automatically agree (T_a norm is even-symmetric: g even, λ scalar ⇒ ‖v₊‖_T = ‖v₋‖_T exactly up to discretization). Good. Write the script. Reuse code by copying from E-009b (self-contained). Set T_MAXG = 16. For the e^{±x} rhs with quadrature: b_i = ⟨e^{sx}, φ_i⟩ — GL 8-pt on the two elements of the hat support. Vectorized. For the solve: T_red = Zᵀ(Q−λM)Z dense n−2 square; a=8, h=0.005: n=3199 → dense 3197² solve ~ 1-2 s ✔. But building Z (QR of ones) for n=3199: Z is 3199×3198 dense — np.linalg.qr complete of (3199,1): Householder-based, produces full Q 3199×3199 — that's fine memory (82MB) and time (a few seconds?). QR of n×1 with complete mode: LAPACK dgeqrf on n×1 then dorgqr for full n×n — O(n³)? dorgqr generation of full Q from 1 reflector is O(n²)... should be OK. Alternative cheaper constraint handling: since Z is only needed for projection, could solve bordered system: [T e; eᵀ 0][c; μ] = [b; 0]. That avoids forming Z! T = Q−λM (n×n), e = ones. Solve (n+1)×(n+1). Much cheaper. And the reduced eigen... we don't need eigensolves here at all! Great: bordered solve. But wait: T = Q−λM restricted to mean-zero must be invertible — bordered system handles it. V(z) from c (hat coeffs, now including the constraint satisfaction ✔). Alright, also the W zeros: scan z ∈ [0.01, 60] with 20000 points, sign changes of W₀, bisect. Let me write it. Also include h-convergence: a=4 at h ∈ {0.01, 0.005, 0.0025}? h must satisfy... S(k) quadrature works for any h (no table divisibility constraint anymore!) ✔ any h fine. Runtime estimate: per config: S(k) computation ~ N×(sub-intervals×12) g-evals. At a=8: N=3200, ~70 pts each ⇒ 224k g_float evals — vectorized per S call: each S(k) calls g_float on ~60 points; overhead per call ~ microseconds-ms; 3200 calls × (prime searchsorted etc.) — each g_float call has fixed overhead ~0.5ms ⇒ ~2-3 s. Plus mpmath lerch for small-t nodes (k ≤ 70): 70×60=4200 mpmath evals ~ 30-60s? Hmm — lerchphi at dps 25 maybe 2-5ms each ⇒ 4200×3ms = 13s. OK. Configs: 4 a-values + 2 extra h + 2 extra λ + θ variations reuse same v_± (W cheap). Total ~ 7 configs × ~20s = 2.5 min. Fine. One more design point: z range. γ_1 = 14.13. At a=2..8, will W have zeros anywhere near 14? Unknown — scan [0, 60] covers first 12 zeros. Also scan behavior: number of zeros found vs expected. Write the script now. Also add check: W θ=0 imaginary gauge ~ 0; v_− symmetry: c_₋ reversed ≈ c_₊.
Proceeding with E-010 per the fork rule. Setting up tasks.
tool: TodoWrite ok
input
{
  "todos": [
    {
      "activeForm": "Implementing E-010 W-function computation",
      "content": "E-010: compute W(a,\u03b8;z) via deficiency vectors; zeros vs \u03b3_j",
      "status": "in_progress"
    },
    {
      "activeForm": "Writing E-010 analysis",
      "content": "D-020: E-010 analysis (convergence behavior, \u03b8/\u03bb sensitivity)",
      "status": "pending"
    }
  ]
}
result 2026-08-18 03:14:03Z → 2026-08-18 03:14:03Z
{
  "oldTodos": [],
  "newTodos": [
    "content='E-010: compute W(a,\u03b8;z) via deficiency vectors; zeros vs \u03b3_j' status='in_progress' active_form='Implementing E-010 W-function computation'",
    "content='D-020: E-010 analysis (convergence behavior, \u03b8/\u03bb sensitivity)' status='pending' active_form='Writing E-010 analysis'"
  ],
  "cleared": false
}
raw content_json (database row)
[{"type":"thinking","thinking":"Proceed with E-010: compute W(a,θ;z) and its zeros. Design from D-019 §4:\n\n- Deficiency vectors v_± solve (T_a v_±)(x) = e^{±x} where T_a = A_a − λI, λ < λ_a.\n- W(a,θ;z) = (z−i)∫_{-a}^{a} v₊(a,x) e^{izx} dx + e^{iθ}(z+i) ∫_{-a}^{a} v₋(a,x) e^{izx} dx.\n- v_± normalized so their T_a-norms agree.\n- Eigenvalues of 𝒟̄_{a,θ} = zeros of W; all real (Thm 1.5).\n- Cor 1.6: convergence to z²ξ(½−iz)/ξ′(½−iz) as a→∞.\n\nNumerical plan:\n1. Solve (Q − λM)c = b_± in the Galerkin space, b_±,i = ⟨e^{±x}, φ_i⟩ (exact integral over hat support). λ shift: need λ < λ_a; λ_a > 0 tiny — choose λ = −1 (safely below).\n2. v_±(x) = Σ c_i φ_i(x). Compute Fourier integrals ∫v_±(x)e^{izx}dx analytically from hat coefficients: ∫φ_i e^{izx}dx known closed form (hat transform = h·sinc²-ish): ∫φ_i(x)e^{izx}dx = e^{izx_i}·(2−2cos(zh))/(z²h) = e^{izx_i}·h·sinc²(zh/2)-ish with sinc(θ)=sin θ/θ. So ∫v e^{izx} = Σc_i e^{izx_i}·(2−2cos(zh))/(z²h).\n3. Normalize: T_a-norms: ‖v‖²_T = cᵀ(Q − λM)c = cᵀb (since (Q−λM)c = b). Scale v_₋ so ‖v_₋‖_T = ‖v₊‖_T.\n4. W(z) on a real grid z ∈ [0, 60] (first ~12 zeros), for several θ; find sign changes → zeros. W is complex for real z? Zeros of W are real (Thm 1.5) but W itself complex-valued on ℝ... For finding real zeros, need |W| or a real gauge. Hmm: W(a,θ;z) for real z is complex in general. Zeros on the real line can be found as minima of |W|². Alternatively note e^{-iθ/2}W might be real-valued on ℝ by symmetry: v_₋(x) = v₊(−x)? Since T_a is even (g even) and e^{−x} = e^{+(−x)}: v₋(x) = v₊(−x) ✔. Then ∫v₋e^{izx} = ∫v₊(−x)e^{izx}dx = ∫v₊(x)e^{−izx}dx = conj of ∫v₊e^{izx} for real z (v real). So with V(z) := ∫v₊e^{izx}dx: W(z) = (z−i)V(z) + e^{iθ}(z+i)V̄(z) for real z. Write V = V_r + iV_i: (z−i)V + e^{iθ}(z+i)V̄. For θ = 0: W = (z−i)V + (z+i)V̄ = z(V+V̄) − i(V − V̄) = 2zV_r + 2V_i·... compute: (z−i)(V_r+iV_i) = zV_r + izV_i − iV_r + V_i; (z+i)(V_r−iV_i) = zV_r − izV_i + iV_r + V_i. Sum: 2zV_r + 2V_i. REAL ✔. So θ=0 gives real W on ℝ — zeros found by sign changes. Great: scan θ ∈ {0, π/4, π/2, ...} with real gauge e^{-iθ/2}W? For general θ: e^{-iθ/2}W = e^{-iθ/2}(z−i)V + e^{iθ/2}(z+i)V̄ — not real for θ≠0. For zero-finding at general θ use |W| minima... but Thm 1.5 says all zeros real, so |W| touches 0 on ℝ. Simpler: work with θ = 0 primarily (some extension), maybe also θ = π (W = (z−i)V − (z+i)V̄ = −2V_i·z... let me compute: (z−i)V − (z+i)V̄ = [zV_r + izV_i − iV_r + V_i] − [zV_r − izV_i + iV_r + V_i] = 2izV_i − 2iV_r = 2i(zV_i − V_r) — pure imaginary; W/i real ✔.\n\nSo plan: compute W for θ=0 on z-grid, sign changes, bisect, get zeros z_j(a, θ=0) for a ∈ {2,4,6,8}; compare to γ_j. Also maybe a couple more θ values.\n\nBut WAIT — is θ=0's extension the \"zeta-aligned\" one? Unknown (Q-S3). The numerical experiment will show whether zeros approach γ for any θ. Start with θ=0.\n\nAlso domain/mean-zero subtlety: A_a acts on L²₀; e^{±x} is not mean-zero — the resolvent solve (T_a v = e^{±x}) in L²₀: project rhs? T_a is invertible on L²₀; the equation (T_a v_±)(x) = e^{±x} in the L²₀ sense means T_a v_± = P_a(e^{±x}) presumably, or e^{±x} restricted... The paper's Lemma 6.2 states (T_a v_±)(x) = e^{±x}. If T_a maps into L²₀, the rhs should be P_a e^{±x}. Hmm — or the equation holds in the distributional sense on the whole L². To be safe, solve with rhs = P_a(e^{±x}) (projected) — check sensitivity later. Actually simplest: build rhs b_±,i = ⟨e^{±x}, φ_i⟩ and solve the constrained system (Z-projected): (Zᵀ(Q−λM)Z)d = Zᵀb — this automatically uses the projected rhs. Fine.\n\nAlso λ shift: T_a = A_a − λI with λ < λ_a ≈ 0⁺. Choose λ = −1. Sensitivity check: λ = −0.5 vs −1 vs −2 at one (a, θ) — the zeros of W should be INDEPENDENT of λ (different λ gives different realization of same extensions? The extension domains depend on λ via v_±... the theory: deficiency vectors of 𝒟_a in ℋ(T_a) depend on λ, but the operators 𝒟̄_{a,θ} and their spectra should be λ-independent... actually the Hilbert space ℋ(T_a) itself depends on λ (norm changes), and the extensions' spectra could depend on λ?! Hmm, in the paper's construction the operator 𝒟̄ is in ℋ(T_a); changing λ changes the inner product and hence self-adjointness conditions. The W-function zeros should still be the spectra of the corresponding extensions. For the RH correspondence, maybe any λ works and Cor 1.6's θ(a), φ absorb it. Numerically: test λ-sensitivity. If zeros depend on λ, that's a Q-S3-type question to document.\n\nAlso the mean-zero constraint in our Galerkin space: our Q, M act on mean-zero subspace — matches L²₀ setting ✔.\n\nMesh: a up to 8 ⇒ need g on [0,16] — E-009a table only goes to 10! But E-009b's g_float computes g directly (sieve to e^10). For a=8 need T_MAXG=16 ⇒ sieve to e^16 ≈ 8.9e6 — fine memory-wise (float arrays 8.9M × 8B × few = ~300MB, OK) but sieve loop over 8.9M in Python ~ slow (the is_comp slicing sieve is OK: ~seconds; the prime-power while loop fine). g_float evaluation count: S(k) for N = 2a/h = 3200 elements × ~60 GL pts ≈ 200k evals vectorized ✔ fast. mpmath lerch only for t<0.35 ✔.\n\nHmm wait, also for a=8, h=0.005: N=3200, dense eigh... we don't need full eigensolve for E-010 — only the resolvent solve (Q−λM)c = b: dense Cholesky on 3200² — fine (few seconds). But building Q requires S(k) for k up to N — 3200 × 60 g-evals = 200k — fine.\n\nRefinement: h=0.005 for all a? For a=8, maybe h=0.01 for speed first pass. Convergence check at one a.\n\nPlan the script E-010-suzuki-W-function.py:\n- Reuse E-009b's g/S/stiffness via import? The scripts are standalone; importing from another script is doable via importlib but cleaner to copy the needed functions (self-contained convention per archive). Copy g_float/S/stiffness code with T_MAXG=16.\n- For each a ∈ {2,4,6,8} (h=0.005; h-conv at a=4 with h=0.01, 0.002):\n  - Build Q, M (toeplitz), Z projection (mean-zero).\n  - T = Zᵀ(Q−λM)Z; rhs b_± = Zᵀ(⟨e^{±x},φ_i⟩); solve.\n  - ⟨e^{sx}, φ_i⟩ exact: ∫_{x_{i−1}}^{x_i} e^{sx}(x−x_{i−1})/h dx + ∫_{x_i}^{x_{i+1}} e^{sx}(x_{i+1}−x)/h dx. Closed form: e^{sx_i}(e^{sh}−1−sh·... let me just: ∫_{-h}^{0} e^{s(x_i+u)}(u+h)/h du + ∫_0^h e^{s(x_i+u)}(h−u)/h du = e^{sx_i}·[(e^{sh}+e^{−sh}−2)/(s²h)]·... verify: ∫_0^h e^{su}(h−u)/h du = [e^{su}(...)]... formula: ∫_0^h e^{su}(h−u)du/h = (e^{sh} − 1 − sh)/(s²h)·... compute: ∫₀^h e^{su}(h−u)du = h(e^{sh}−1)/s − [e^{su}(su−1)/s²]₀^h = h(e^{sh}−1)/s − (e^{sh}(sh−1)+1)/s². Divide by h. Similarly the other side. Fine — or just numerical quadrature (GL 8-pt per element, exact enough). Simpler: use quadrature.\n  - ‖v_±‖²_T = c_±ᵀ(Q−λM)c_± (in reduced coords d: dᵀT d). Normalize.\n  - V(z) = ∫v₊ e^{izx}dx = Σ_i c_i e^{izx_i}·hatFT(z), hatFT(z) = (2−2cos(zh))/(z²h) (with hatFT(0)=h).\n  - W(z;θ=0) = 2z Re V(z) + 2 Im V(z)·... wait derived above: W(θ=0) = 2zV_r + 2V_i?? Let me recheck: (z−i)V + (z+i)V̄ where V = V_r + iV_i: (z−i)(V_r+iV_i) = zV_r + izV_i − iV_r − i²V_i = zV_r + V_i + i(zV_i − V_r). (z+i)V̄ = (z+i)(V_r−iV_i) = zV_r − izV_i + iV_r + V_i = zV_r + V_i + i(V_r − zV_i). Sum = 2zV_r + 2V_i. Imag parts cancel ✔. So W₀(z) = 2(z ReV(z) + ImV(z)).\n  - Sign-change scan + bisection on z ∈ (0, 60].\n- Compare zeros with γ_1..γ_10.\n- λ-sensitivity: λ ∈ {−0.5, −1, −2} at a=4, θ=0.\n- θ-sensitivity: θ ∈ {0, π/2, π} at a=4: for θ=π/2 use |W| minima... or compute all and find real zeros via |W|² local minima → polish with Newton on complex plane? Keep simple: θ=0 main; θ=π also real-gauge (W/i); θ=π/2 via |W| minima (report only).\n\nChecks:\n- W real-gauge for θ=0: |Im part| tiny (automatically real by construction — verify the identity numerically: compute W full and check Im ≈ 0).\n- Zeros real & stable under h refinement at a=4.\n- λ-independence documented.\n\nOutput: CSV with a, h, lambda_shift, theta, j, z_j, gamma_j, z_j/gamma_j.\n\nEffort: moderate. One concern: does the zeta-aligned limit actually show zeros near γ at these small a? Probably NOT close — a≤8 is small; the Cor 1.6 limit is a→∞. What we hope to see: zeros of W moving TOWARD γ's as a grows, or at least structured behavior. Even negative result (no approach) is informative for Q-S3.\n\nAlso worth computing: bottom eigenvalues of 𝒟̄ vs... whatever the data shows.\n\nLet me also double-check the v_± equation: \"(T_a v_±)(x) = e^{±x}\" — from the earlier fetch: \"deficiency vectors v_± satisfying (T_a v_±)(x) = e^{±x}\". ✔.\n\nAnd normalization: \"normalized so their T_a-norms agree\" — after solving, scale v_₋ by ‖v₊‖_T/‖v₋‖_T. By symmetry v₋(x) = v₊(−x) ⇒ norms automatically agree (T_a norm is even-symmetric: g even, λ scalar ⇒ ‖v₊‖_T = ‖v₋‖_T exactly up to discretization). Good.\n\nWrite the script. Reuse code by copying from E-009b (self-contained). Set T_MAXG = 16.\n\nFor the e^{±x} rhs with quadrature: b_i = ⟨e^{sx}, φ_i⟩ — GL 8-pt on the two elements of the hat support. Vectorized.\n\nFor the solve: T_red = Zᵀ(Q−λM)Z dense n−2 square; a=8, h=0.005: n=3199 → dense 3197² solve ~ 1-2 s ✔. But building Z (QR of ones) for n=3199: Z is 3199×3198 dense — np.linalg.qr complete of (3199,1): Householder-based, produces full Q 3199×3199 — that's fine memory (82MB) and time (a few seconds?). QR of n×1 with complete mode: LAPACK dgeqrf on n×1 then dorgqr for full n×n — O(n³)? dorgqr generation of full Q from 1 reflector is O(n²)... should be OK.\n\nAlternative cheaper constraint handling: since Z is only needed for projection, could solve bordered system: [T e; eᵀ 0][c; μ] = [b; 0]. That avoids forming Z! T = Q−λM (n×n), e = ones. Solve (n+1)×(n+1). Much cheaper. And the reduced eigen... we don't need eigensolves here at all! Great: bordered solve.\n\nBut wait: T = Q−λM restricted to mean-zero must be invertible — bordered system handles it.\n\nV(z) from c (hat coeffs, now including the constraint satisfaction ✔).\n\nAlright, also the W zeros: scan z ∈ [0.01, 60] with 20000 points, sign changes of W₀, bisect. Let me write it.\n\nAlso include h-convergence: a=4 at h ∈ {0.01, 0.005, 0.0025}? h must satisfy... S(k) quadrature works for any h (no table divisibility constraint anymore!) ✔ any h fine.\n\nRuntime estimate: per config: S(k) computation ~ N×(sub-intervals×12) g-evals. At a=8: N=3200, ~70 pts each ⇒ 224k g_float evals — vectorized per S call: each S(k) calls g_float on ~60 points; overhead per call ~ microseconds-ms; 3200 calls × (prime searchsorted etc.) — each g_float call has fixed overhead ~0.5ms ⇒ ~2-3 s. Plus mpmath lerch for small-t nodes (k ≤ 70): 70×60=4200 mpmath evals ~ 30-60s? Hmm — lerchphi at dps 25 maybe 2-5ms each ⇒ 4200×3ms = 13s. OK. Configs: 4 a-values + 2 extra h + 2 extra λ + θ variations reuse same v_± (W cheap). Total ~ 7 configs × ~20s = 2.5 min. Fine.\n\nOne more design point: z range. γ_1 = 14.13. At a=2..8, will W have zeros anywhere near 14? Unknown — scan [0, 60] covers first 12 zeros. Also scan behavior: number of zeros found vs expected.\n\nWrite the script now. Also add check: W θ=0 imaginary gauge ~ 0; v_− symmetry: c_₋ reversed ≈ c_₊.","signature":""},{"type":"text","text":"Proceeding with E-010 per the fork rule. Setting up tasks."},{"type":"tool_use","id":"TodoWrite_94","name":"TodoWrite","input":{"todos":[{"activeForm":"Implementing E-010 W-function computation","content":"E-010: compute W(a,θ;z) via deficiency vectors; zeros vs γ_j","status":"in_progress"},{"activeForm":"Writing E-010 analysis","content":"D-020: E-010 analysis (convergence behavior, θ/λ sensitivity)","status":"pending"}]},"extra_content":null}]