import json, numpy as np from active_noise_optimizer import kf_run, transition out=[] for tau in [0.2,1.,5.,20.]: b=[]; x=[] for seed in [10,11,12,13,14]: b.append(kf_run(seed,tau,.3,0.)[0]); x.append(kf_run(seed,tau,.3,.85)[0]) out.append({'tau':tau,'baseline_mean':float(np.mean(b)),'baseline_std':float(np.std(b,ddof=1)), 'idea_mean':float(np.mean(x)), 'idea_std':float(np.std(x,ddof=1)), 'ratio':float(np.mean(x)/np.mean(b))}) # Exact crossing by bisection on rho-1. lo,hi=1.,2.5 for _ in range(60): mid=(lo+hi)/2 rho=max(abs(np.linalg.eigvals(transition(mid,1.,5.,.7)))) if rho<1: lo=mid else: hi=mid out.append({'stability_eta_crossing':(lo+hi)/2,'rho_at_crossing':float(max(abs(np.linalg.eigvals(transition((lo+hi)/2,1.,5.,.7)))) )}) open('repro_summary.json','w').write(json.dumps(out,indent=2)) print(json.dumps(out,indent=2))