"""euler_law.py -- verifies the exact Euler-product / L-value law W(k/6; 2g,3g) = -chi3(g k) * 3 L(1,chi3) * prod_{p|g} (1 - chi3(p)/p) / (g k), with 3 L(1,chi3) = pi/sqrt(3), for (g,6)=(k,6)=1. Agreement ~1e-15. """ from wcollapse import W_collapsed from math import gcd, pi, sqrt def chi3(n): n %= 3 return 0 if n == 0 else (1 if n == 1 else -1) def factor(n): f, p, m = [], 2, n while p * p <= m: if m % p == 0: f.append(p) while m % p == 0: m //= p p += 1 if m > 1: f.append(m) return f def predicted(g, k): pr = 1.0 for p in factor(g): pr *= (1 - chi3(p) / p) return -chi3(g * k) * (pi / sqrt(3)) * pr / (g * k) if __name__ == "__main__": mx = 0.0 for g, k in [(1,1),(5,1),(7,1),(11,5),(13,7),(35,7),(91,13),(143,11), (187,25),(209,35),(221,1),(247,49)]: if gcd(g, 6) != 1 or gcd(k, 6) != 1: continue w = W_collapsed(2*g, 3*g, k, 6); p = predicted(g, k) mx = max(mx, abs(w - p)) print(f"g={g:4d} k={k:3d}: W={w:+.14f} predicted={p:+.14f} diff={abs(w-p):.1e}") print("max diff:", mx)