from fractions import Fraction from itertools import product from collections import defaultdict def run(load,read,check): r=load('C286_DATA.json')['target_register'];ix=defaultdict(list) for i,z in enumerate(r):ix[z['center']].append(i) P=load('C450_DATA.json')['pivots'];groups=[];paths=[];hits=[] for a,b in product(P,repeat=2): H=Fraction(25*a+23*b,48);hs=H.denominator==1 and int(H) in ix;complete=[] for x in sorted(ix): m=Fraction(25*x-2*a,23);y=(25*m-2*b)/23 check(f'affine_{a}_{b}_{x}',y-H==Fraction(625,529)*(x-H)) if m.denominator==y.denominator==1 and int(m) in ix and int(y) in ix: gap=H-x;kh=hs and gap!=0 and gap.denominator==1 and int(gap)%529==0 row={'first_pivot':a,'second_pivot':b,'effective_pivot':str(H),'effective_pivot_sourced':hs,'coordinates':[x,int(m),int(y)],'input_gap':str(gap),'output_gap':str(H-y),'K_input_hit':kh,'record_indices':[ix[x],ix[int(m)],ix[int(y)]],'effective_pivot_indices':ix.get(int(H),[]) if hs else []};complete.append(row);paths.append(row) if kh:hits.append(row) groups.append({'first_pivot':a,'second_pivot':b,'effective_pivot':str(H),'effective_pivot_sourced':hs,'complete_paths':len(complete)}) return {'step':'C455','word_profiles':groups,'complete_paths':paths,'K_input_hits':hits,'counts':{'trials':len(P)**2*len(ix),'words':len(groups),'sourced_effective_pivot_words':sum(g['effective_pivot_sourced'] for g in groups),'complete_paths':len(paths),'complete_with_sourced_effective_pivot':sum(p['effective_pivot_sourced'] for p in paths),'nonzero_K_input_hits':len(hits)}}