Report the ideal compression ratio alongside every rate in true_rate.py
1 changed file+9−5
scripts/true_rate.pymodified+9−5View file
@@ -305,12 +305,13 @@ def main() -> int:
305305 "The plain sequential filter (docs/mc-true-rate.md §5.3) will likely degenerate "
306306 "here; reduce --taps for a shallower stopband, or implement the "
307307 "lookahead/twisted-proposal extension.")
308- print(f"formula (as in the UI): R = {formula:.4f} bits/sample (ratio {16 / formula:.2f}x)"
309- if formula > 0 else f"formula (as in the UI): R = {formula:.4f} bits/sample")
308+ print(f"formula (as in the UI): R = {formula:.4f} bits/sample"
309+ + (f", ideal ratio {16 / formula:.3f}x vs int16" if formula > 0 else ""))
310310 if args.filter == "none":
311311 exact = h_delta(args.sigma) if not args.dither else None
312312 if exact is not None:
313- print(f"exact truth (iid closed form): R = {exact:.4f} bits/sample")
313+ print(f"exact truth (iid closed form): R = {exact:.4f} bits/sample"
314+ + (f", ideal ratio {16 / exact:.3f}x vs int16" if exact > 0 else ""))
314315
315316 print(f"MC (N={args.particles} particles, T={args.steps} steps, burn={args.burn}, "
316317 f"kmax={args.kmax}, {args.replicates} replicates):")
@@ -319,8 +320,11 @@ def main() -> int:
319320 except RuntimeError as e:
320321 print(f"aborted: {e}")
321322 return 2
322- print(f"MC true rate: R = {mean:.4f} +/- {se:.4f} bits/sample "
323- f"(ratio {16 / mean:.2f}x)" if mean > 0 else f"MC true rate: R = {mean:.4f}")
323+ line = f"MC true rate: R = {mean:.4f} +/- {se:.4f} bits/sample"
324+ if mean > 0:
325+ # First-order error propagation: d(16/R) = 16 dR / R^2.
326+ line += f", ideal ratio {16 / mean:.3f}x +/- {16 * se / mean**2:.3f} vs int16"
327+ print(line)
324328 print(f"difference (formula - MC): {formula - mean:+.4f} bits/sample")
325329 print("note: finite window and inner MC both bias the estimate upward; "
326330 "double --particles and compare to confirm convergence.")