Current task: —

E-024-theta-sweep.py

Experiments: E-024 · script updated 08-19-2026

E-024-theta-sweep.csv — 700.6 KB, updated 08-19-2026

page 1 of 30 · 500/page · 14949 rows next →
# atheta_over_pikz_kw_k
2 4 0.0000 1 0.786781464618 1.2521991861e-01
3 4 0.0000 2 1.573564991091 1.2522041270e-01
4 4 0.0000 3 2.360352689907 1.2522124976e-01
5 4 0.0000 4 3.147146773060 1.2522244891e-01
6 4 0.0000 5 3.933949613292 1.2522404555e-01
7 4 0.0000 6 4.720763812343 1.2522607436e-01
8 4 0.0000 7 5.507592286246 1.2522860654e-01
9 4 0.0000 8 6.294438401382 1.2523171778e-01
10 4 0.0000 9 7.081306125119 1.2523552374e-01
11 4 0.0000 10 7.868200300999 1.2524017925e-01
12 4 0.0000 11 8.655126925412 1.2524591895e-01
13 4 0.0000 12 9.442093752779 1.2525318549e-01
14 4 0.0000 13 10.229112183455 1.2526251097e-01
15 4 0.0000 14 11.016198568296 1.2527516030e-01
16 4 0.0000 15 11.803383493136 1.2529460662e-01
17 4 0.0000 16 12.590738357725 1.2533358229e-01
18 4 0.0000 17 13.378584210654 1.2549744381e-01
19 4 0.0000 18 14.138098499775 1.1247896433e+00
20 4 0.0000 19 14.951508124433 1.2550650483e-01
21 4 0.0000 20 15.739794039579 1.2544893196e-01
22 4 0.0000 21 16.528145298384 1.2550099131e-01
23 4 0.0000 22 17.317000710653 1.2561292704e-01
24 4 0.0000 23 18.106861658141 1.2583627262e-01
25 4 0.0000 24 18.898902231160 1.2636491920e-01
26 4 0.0000 25 19.697296973794 1.2824139307e-01
27 4 0.0000 26 20.545379863240 1.6082217309e-01
28 4 0.0000 27 21.054813051114 1.0767451365e+00
29 4 0.0000 28 22.003161544382 1.2920678247e-01
30 4 0.0000 29 22.806013817379 1.2706358604e-01
31 4 0.0000 30 23.604404968193 1.2739599388e-01
32 4 0.0000 31 24.419858179496 1.3682916219e-01
33 4 0.0000 32 25.030979835439 1.1068558016e+00
34 4 0.0000 33 25.940220301888 1.2799579468e-01
35 4 0.0000 34 26.738262314574 1.2650365311e-01
36 4 0.0000 35 27.532309851957 1.2636007895e-01
37 4 0.0000 36 28.327292876439 1.2682004087e-01
38 4 0.0000 37 29.129109743446 1.2901024492e-01
39 4 0.0000 38 29.997399695743 1.7960624276e-01
40 4 0.0000 39 30.464478275977 1.0560468426e+00
41 4 0.0000 40 31.427963025971 1.2987873536e-01
42 4 0.0000 41 32.236194368947 1.2880523549e-01
43 4 0.0000 42 32.944949179684 1.1215683870e+00
44 4 0.0000 43 33.805346738741 1.2680181907e-01
45 4 0.0000 44 34.599246056795 1.2615432669e-01
46 4 0.0000 45 35.391810785623 1.2621957585e-01
47 4 0.0000 46 36.186688175436 1.2707845008e-01
48 4 0.0000 47 37.001517456997 1.3732892825e-01
49 4 0.0000 48 37.606785900032 1.1056855477e+00
50 4 0.0000 49 38.516732928817 1.2785103188e-01
51 4 0.0000 50 39.313390332260 1.2622906249e-01
52 4 0.0000 51 40.105226113431 1.2594585953e-01
53 4 0.0000 52 40.916031258167 1.1253892176e+00
54 4 0.0000 53 41.683923683792 1.2589918300e-01
55 4 0.0000 54 42.475138766346 1.2621175304e-01
56 4 0.0000 55 43.319406971656 1.1228024602e+00
57 4 0.0000 56 44.042799057172 1.2677409027e-01
58 4 0.0000 57 44.835259827029 1.2591722290e-01
59 4 0.0000 58 45.625724750844 1.2582689024e-01
60 4 0.0000 59 46.416343789259 1.2595784112e-01
61 4 0.0000 60 47.208060883555 1.2615423515e-01
62 4 0.0000 61 48.004817716643 1.1268149231e+00
63 4 0.0000 62 48.803885435820 1.2913361078e-01
64 4 0.0000 63 49.744670509050 1.0875654697e+00
65 4 0.0000 64 50.285199965655 1.5289301967e-01
66 4 0.0000 65 51.130202612607 1.2968404378e-01
67 4 0.0000 66 51.945095656235 1.3108021901e-01
68 4 0.0000 67 52.924044363938 1.0351704222e+00
69 4 0.0000 68 53.361606498445 2.0066955974e-01
70 4 0.0000 69 54.253103428991 1.3079781162e-01
71 4 0.0000 70 55.067665941629 1.2973611705e-01
72 4 0.0000 71 55.908768976183 1.4867722242e-01
73 4 0.0000 72 56.473273528128 1.0948572024e+00
74 4 0.0000 73 57.418360197559 1.3125051671e-01
75 4 0.0000 74 58.243244605373 1.3316477588e-01
76 4 0.0000 75 59.258398029615 8.6547216715e-01
77 4 0.0000 76 59.592206335329 3.7214488737e-01
78 4 0.0000 77 60.760467019266 9.4963299727e-01
79 4 0.0000 78 61.129154898284 2.8917995076e-01
80 4 0.0000 79 62.072748786943 1.3214105664e-01
81 4 0.0000 80 62.889029318610 1.2883447324e-01
82 4 0.0000 81 63.697546278000 1.2918910869e-01
83 4 0.0000 82 64.524057107506 1.4012688297e-01
84 4 0.0000 83 65.134360120531 1.1067848378e+00
85 4 0.0000 84 66.068271332397 1.3315553778e-01
86 4 0.0000 85 67.042542076381 1.0684827159e+00
87 4 0.0000 86 67.540663235359 1.7298131477e-01
88 4 0.0000 87 68.424475746636 1.3531240329e-01
89 4 0.0000 88 69.442676377576 7.9307251434e-01
90 4 0.0000 89 69.752330496969 4.4033831385e-01
91 4 0.0000 90 70.741181767815 1.3555005509e-01
92 4 0.0000 91 71.634118622817 1.8368443053e-01
93 4 0.0000 92 72.108066752771 1.0562669763e+00
94 4 0.0000 93 73.081465516314 1.3131699127e-01
95 4 0.0000 94 73.895256031788 1.2900840335e-01
96 4 0.0000 95 74.707074711527 1.3098287399e-01
97 4 0.0000 96 75.669297074868 1.0723171078e+00
98 4 0.0000 97 76.173846266273 1.6878906850e-01
99 4 0.0000 98 77.129447133526 1.1193489088e+00
100 4 0.0000 99 77.801091414044 1.3303143016e-01
101 4 0.0000 100 78.615328959810 1.2918260866e-01
102 4 0.0000 101 79.345428744967 1.1241670229e+00
103 4 0.0000 102 80.200439332318 1.2832951056e-01
104 4 0.0000 103 81.002716320243 1.2867447205e-01
105 4 0.0000 104 81.814233578871 1.3181053019e-01
106 4 0.0000 105 82.818782998198 8.4294120853e-01
107 4 0.0000 106 83.137677019133 3.9021216181e-01
108 4 0.0000 107 84.123775653785 1.4281223264e-01
109 4 0.0000 108 84.756006421408 1.1095494619e+00
110 4 0.0000 109 85.677563529086 1.3001373543e-01
111 4 0.0000 110 86.488017437707 1.3017533773e-01
112 4 0.0000 111 87.404919015038 1.1081801450e+00
113 4 0.0000 112 88.019694999555 1.3905410533e-01
114 4 0.0000 113 88.812459469281 1.1278147239e+00
115 4 0.0000 114 89.638958150988 1.2826815257e-01
116 4 0.0000 115 90.439207749529 1.2849548286e-01
117 4 0.0000 116 91.250734140061 1.3237143740e-01
118 4 0.0000 117 92.177029451495 2.6249374645e-01
119 4 0.0000 118 92.555146097736 9.7344085239e-01
120 4 0.0000 119 93.565230950630 1.3630666557e-01
121 4 0.0000 120 94.579617740444 9.3690918409e-01
122 4 0.0000 121 94.935579205835 2.9858464373e-01
123 4 0.0000 122 95.871137711705 1.1328563339e+00
124 4 0.0000 123 96.690106363966 1.2909466905e-01
125 4 0.0000 124 97.499573016160 1.3111664784e-01
126 4 0.0000 125 98.359018219787 1.6563229852e-01
127 4 0.0000 126 98.865325690060 1.0754070228e+00
128 4 0.0000 127 99.823381896561 1.3213692390e-01
129 4 0.0000 128 100.630911518356 1.3168885789e-01
130 4 0.0000 129 101.329439431032 1.1207926837e+00
131 4 0.0000 130 102.202344298622 1.2838394091e-01
132 4 0.0000 131 103.004596009905 1.2949571449e-01
133 4 0.0000 132 103.733118380188 1.1247220242e+00
134 4 0.0000 133 104.581285086736 1.2975623335e-01
135 4 0.0000 134 105.438683323883 1.1253552125e+00
136 4 0.0000 135 106.175082858513 1.3281825586e-01
137 4 0.0000 136 107.133100890574 1.0737097892e+00
138 4 0.0000 137 107.635521133700 1.6799975339e-01
139 4 0.0000 138 108.492301328003 1.3158454358e-01
140 4 0.0000 139 109.301017072224 1.2874201053e-01
141 4 0.0000 140 110.109463339810 1.3262563600e-01
142 4 0.0000 141 111.013393202118 1.1219267711e+00
143 4 0.0000 142 111.839520587755 1.0839759157e+00
144 4 0.0000 143 112.368513806842 1.6586541713e-01
145 4 0.0000 144 113.238307556766 1.3658271496e-01
146 4 0.0000 145 114.250053040972 9.4348150446e-01
147 4 0.0000 146 114.611528853475 2.9455884290e-01
148 4 0.0000 147 115.564418606307 1.4025216378e-01
149 4 0.0000 148 116.242170465011 1.1191420554e+00
150 4 0.0000 149 117.133582706840 1.3124155424e-01
151 4 0.0000 150 117.943495753942 1.3170164983e-01
152 4 0.0000 151 118.784604776514 1.1265322857e+00
153 4 0.0000 152 119.535173903291 1.3331116647e-01
154 4 0.0000 153 120.347919951542 1.3216366989e-01
155 4 0.0000 154 121.327519167731 1.0536695591e+00
156 4 0.0000 155 121.804836351023 1.9411480844e-01
157 4 0.0000 156 122.882362606714 9.8128720642e-01
158 4 0.0000 157 123.270306955944 2.6389013778e-01
159 4 0.0000 158 124.248496898149 1.1315614615e+00
160 4 0.0000 159 124.997293692532 1.3086686067e-01
161 4 0.0000 160 125.810309235225 1.3255169728e-01
162 4 0.0000 161 126.609884483792 1.3422922932e-01
163 4 0.0000 162 127.502068851013 1.1202267228e+00
164 4 0.0000 163 128.177542068475 1.3930883476e-01
165 4 0.0000 164 129.034468850280 1.5200368204e-01
166 4 0.0000 165 129.607613412823 1.1026585235e+00
167 4 0.0000 166 130.620013683494 1.7679861322e-01
168 4 0.0000 167 131.125727329753 1.0707603898e+00
169 4 0.0000 168 132.097713519319 1.3981583917e-01
170 4 0.0000 169 132.971843148632 1.6430081276e-01
171 4 0.0000 170 133.529965449488 1.0931226765e+00
172 4 0.0000 171 134.683958401316 9.5709084621e-01
173 4 0.0000 172 135.058730526163 2.9555294418e-01
174 4 0.0000 173 136.009140256999 1.3606865233e-01
175 4 0.0000 174 136.847618107742 1.4096287245e-01
176 4 0.0000 175 137.784382630607 2.6185032927e-01
177 4 0.0000 176 138.181578984543 9.8586141098e-01
178 4 0.0000 177 139.242493824396 1.7962300068e-01
179 4 0.0000 178 139.776418219860 1.0855630829e+00
180 4 0.0000 179 140.949139990320 5.5055148638e-01
181 4 0.0000 180 141.257680413043 6.9412170091e-01
182 4 0.0000 181 142.260651816604 1.3934258094e-01
183 4 0.0000 182 143.106561554350 1.1359780264e+00
184 4 0.0000 183 143.890484439701 1.3286460998e-01
185 4 0.0000 184 144.697355104467 1.4134824539e-01
186 4 0.0000 185 145.616521468086 2.3223739590e-01
187 4 0.0000 186 146.057485482209 1.0292215680e+00
188 4 0.0000 187 147.218624653993 4.7219411703e-01
189 4 0.0000 188 147.535451520909 7.7205963436e-01
190 4 0.0000 189 148.557056555520 1.3629895696e-01
191 4 0.0000 190 149.386431756168 1.4662218362e-01
192 4 0.0000 191 150.069961256237 1.1295129595e+00
193 4 0.0000 192 150.930252268005 1.1342447870e+00
194 4 0.0000 193 151.771740985022 1.4345988620e-01
195 4 0.0000 194 152.720013554118 2.9295828268e-01
196 4 0.0000 195 153.093067735548 9.5812343237e-01
197 4 0.0000 196 154.112058534835 1.4422414456e-01
198 4 0.0000 197 154.925707422970 1.4292462077e-01
199 4 0.0000 198 155.913949757282 5.0230521969e-01
200 4 0.0000 199 156.234647846104 7.5112811302e-01
201 4 0.0000 200 157.461493285097 6.9852092753e-01
202 4 0.0000 201 157.769274522398 5.6092435331e-01
203 4 0.0000 202 158.839073561083 1.1455145015e+00
204 4 0.0000 203 159.576982482609 1.3463115321e-01
205 4 0.0000 204 160.401242989378 1.3569594364e-01
206 4 0.0000 205 161.188716054531 1.1428199900e+00
207 4 0.0000 206 161.992299234110 1.4912792622e-01
208 4 0.0000 207 162.976429490181 1.0412216519e+00
209 4 0.0000 208 163.423308708202 2.1762382903e-01
210 4 0.0000 209 164.338455536606 1.5826508188e-01
211 4 0.0000 210 165.363486016034 5.6079104791e-01
212 4 0.0000 211 165.678187248950 6.9146642945e-01
213 4 0.0000 212 166.730539384336 2.0153730613e-01
214 4 0.0000 213 167.228644657173 1.0603408688e+00
215 4 0.0000 214 168.224939726263 1.5688390688e-01
216 4 0.0000 215 169.083084295014 1.1446979934e+00
217 4 0.0000 216 169.900466447412 1.1308743342e+00
218 4 0.0000 217 170.591492163348 1.5283490953e-01
219 4 0.0000 218 171.429585408496 1.3848536509e-01
220 4 0.0000 219 172.220529391748 1.5275504266e-01
221 4 0.0000 220 173.250261879950 6.0931353774e-01
222 4 0.0000 221 173.558350543157 6.6361717165e-01
223 4 0.0000 222 174.708542342538 1.0912278388e+00
224 4 0.0000 223 175.240284127528 1.8915695874e-01
225 4 0.0000 224 176.338649054974 8.3096819682e-01
226 4 0.0000 225 176.678467356628 4.3830917500e-01
227 4 0.0000 226 177.642381409133 1.4528566293e-01
228 4 0.0000 227 178.383356861424 1.1513062063e+00
229 4 0.0000 228 179.248640407128 1.6391647061e-01
230 4 0.0000 229 179.932586691660 1.1246664078e+00
231 4 0.0000 230 180.848846292104 1.6704212525e-01
232 4 0.0000 231 181.652337095899 1.8019183620e-01
233 4 0.0000 232 182.235754432591 1.0988201453e+00
234 4 0.0000 233 183.175306162334 1.3767691837e-01
235 4 0.0000 234 183.994418850794 1.6484183400e-01
236 4 0.0000 235 184.863808303099 1.1317439841e+00
237 4 0.0000 236 185.591721000960 1.1640015422e+00
238 4 0.0000 237 186.400879730645 1.6062034984e-01
239 4 0.0000 238 187.218259135852 1.1352143079e+00
240 4 0.0000 239 187.972556921623 1.4784945036e-01
241 4 0.0000 240 188.723213712036 1.6198587813e-01
242 4 0.0000 241 189.437044629446 1.1526813458e+00
243 4 0.0000 242 190.322923140484 1.5549416021e-01
244 4 0.0000 243 191.074185415404 1.5825975781e-01
245 4 0.0000 244 192.015718718501 1.1684317518e+00
246 4 0.0000 245 192.888544537361 5.3247415645e-01
247 4 0.0000 246 193.210574975920 7.2822867361e-01
248 4 0.0000 247 194.263582696228 1.8175959786e-01
249 4 0.0000 248 195.223587190898 1.0826347355e+00
250 4 0.0000 249 195.782542935918 2.0809737704e-01
251 4 0.0000 250 196.782933771311 9.2772274234e-01
252 4 0.0000 251 197.149006743077 3.9005677090e-01
253 4 0.0000 252 198.026561498505 1.1830003052e+00
254 4 0.0000 253 198.930288859334 1.4239009327e-01
255 4 0.0000 254 199.785061770029 1.5905946238e-01
256 4 0.0000 255 200.518035917790 1.7065230419e-01
257 4 0.0000 256 201.271660893758 1.1857164128e+00
258 4 0.0000 257 202.381456464598 8.2436170388e-01
259 4 0.0000 258 202.743406828414 4.6279851705e-01
260 4 0.0000 259 203.737393256509 2.5665119118e-01
261 4 0.0000 260 204.258196307564 1.0808952070e+00
262 4 0.0000 261 205.358462345491 1.1134733753e+00
263 4 0.0000 262 205.994554517768 2.1218173729e-01
264 4 0.0000 263 206.781059741406 1.5981990837e-01
265 4 0.0000 264 207.820401617160 1.0199516669e+00
266 4 0.0000 265 208.263152974696 3.6337777619e-01
267 4 0.0000 266 209.331617035691 4.4587092959e-01
268 4 0.0000 267 209.701109000869 8.8487595021e-01
269 4 0.0000 268 210.693757895612 1.5236253330e-01
270 4 0.0000 269 211.663095075362 1.1206113191e+00
271 4 0.0000 270 212.316129596479 1.7897426289e-01
272 4 0.0000 271 213.258552199297 1.0694603484e+00
273 4 0.0000 272 213.677798739129 3.1980183889e-01
274 4 0.0000 273 214.564177544265 1.1628339664e+00
275 4 0.0000 274 215.355163957366 1.8798876084e-01
276 4 0.0000 275 216.184205689422 1.2155747814e+00
277 4 0.0000 276 217.003417434155 1.4846819787e-01
278 4 0.0000 277 217.828276722689 2.3244099947e-01
279 4 0.0000 278 218.835537712687 4.5114502180e-01
280 4 0.0000 279 219.196882573731 8.9710239658e-01
281 4 0.0000 280 220.267114261312 2.3934589861e-01
282 4 0.0000 281 220.778010056874 1.1752438954e+00
283 4 0.0000 282 221.476098701155 1.0875082033e+00
284 4 0.0000 283 222.467615124472 1.5426842418e-01
285 4 0.0000 284 223.254262798367 2.3593434859e-01
286 4 0.0000 285 224.023079936728 1.2349654325e+00
287 4 0.0000 286 224.971459257097 1.1549676940e+00
288 4 0.0000 287 225.603844231553 2.3497332701e-01
289 4 0.0000 288 226.478594437192 2.5033094962e-01
290 4 0.0000 289 227.400045343406 1.1358919758e+00
291 4 0.0000 290 228.130230844813 2.4100063537e-01
292 4 0.0000 291 228.892003928661 2.3660595948e-01
293 4 0.0000 292 229.386820523380 1.0615769187e+00
294 4 0.0000 293 230.389738112985 2.6699846464e-01
295 4 0.0000 294 231.241997032171 1.1485506133e+00
296 4 0.0000 295 231.983584535374 1.2687324836e+00
297 4 0.0000 296 232.773173328126 2.7212077261e-01
298 4 0.0000 297 233.681916997663 1.1476169116e+00
299 4 0.0000 298 234.457869476975 1.8219716699e-01
300 4 0.0000 299 235.110388033282 2.4524320338e-01
301 4 0.0000 300 236.101704585481 4.0301144384e-01
302 4 0.0000 301 236.612350841449 1.1429612829e+00
303 4 0.0000 302 237.703746648582 1.0512789679e+00
304 4 0.0000 303 238.182040060178 2.6281219917e-01
305 4 0.0000 304 239.292389987354 4.6531408403e-01
306 4 0.0000 305 239.648352033497 9.7941092795e-01
307 4 0.0000 306 240.881819169498 6.9882511629e-01
308 4 0.0000 307 241.211960198248 7.5070565418e-01
309 4 0.0000 308 242.392973152612 4.1150725448e-01
310 4 0.0000 309 242.906070764072 1.1426912532e+00
311 4 0.0000 310 243.943556937921 9.7937696564e-01
312 4 0.0000 311 244.431793046068 4.5996581130e-01
313 4 0.0000 312 245.208080112208 2.4901157100e-01
314 4 0.0000 313 246.162866447953 1.8515325401e-01
315 4 0.0000 314 247.065329919504 1.2561190104e+00
316 4 0.0000 315 247.848375804278 5.9636332023e-01
317 4 0.0000 316 248.287479242306 9.4404828401e-01
318 4 0.0000 317 249.460751471719 8.8968998696e-01
319 4 0.0000 318 249.855267316281 6.1332195965e-01
320 4 0.0000 319 250.981831150337 1.1473261982e+00
321 4 0.0000 320 251.698773647652 2.8885519710e-01
322 4 0.0000 321 252.387766091144 4.4704783225e-01
323 4 0.0000 322 253.088303926259 1.1693717153e+00
324 4 0.0000 323 254.103900692585 2.5749081046e-01
325 4 0.0000 324 254.749319097904 3.4306438308e-01
326 4 0.0000 325 255.341421315699 1.3154418567e+00
327 4 0.0000 326 256.374268259550 1.1731967853e+00
328 4 0.0000 327 257.172415904523 1.8087658874e-01
329 4 0.0000 328 258.140590391738 4.0519634204e-01
330 4 0.0000 329 258.655837892690 1.2008496834e+00
331 4 0.0000 330 259.639045132699 8.9797466109e-01
332 4 0.0000 331 260.155251715420 8.7989215106e-01
333 4 0.0000 332 260.847251194989 1.1508477815e+00
334 4 0.0000 333 261.951238109818 3.8431304403e-01
335 4 0.0000 334 262.564838675456 2.2524872695e-01
336 4 0.0000 335 263.557676563303 1.4408195493e+00
337 4 0.0000 336 264.259886094539 2.0252993315e-01
338 4 0.0000 337 265.083606737401 5.6252190832e-01
339 4 0.0000 338 265.633042346076 1.0515251599e+00
340 4 0.0000 339 266.647715068335 1.3275619003e+00
341 4 0.0000 340 267.382479892350 4.2546510179e-01
342 4 0.0000 341 268.014748443592 1.1417862950e+00
343 4 0.0000 342 268.776743239915 4.0219020780e-01
344 4 0.0000 343 269.924702511321 1.1582081088e+00
345 4 0.0000 344 270.456249762131 5.6384728134e-01
346 4 0.0000 345 271.392080775437 1.3970176905e+00
347 4 0.0000 346 272.128807407975 5.3565146485e-01
348 4 0.0000 347 272.833538770179 2.8111653590e-01
349 4 0.0000 348 273.505721736851 1.1528477912e+00
350 4 0.0000 349 274.636442374408 4.6571923777e-01
351 4 0.0000 350 275.402999170461 9.1811186282e-01
352 4 0.0000 351 275.921008525506 6.7210379929e-01
353 4 0.0000 352 276.517045404047 1.4159282630e+00
354 4 0.0000 353 277.714879148782 4.7137579846e-01
355 4 0.0000 354 278.259349082109 1.3282802299e+00
356 4 0.0000 355 279.163124698776 1.5434811196e+00
357 4 0.0000 356 279.914214875123 2.3940103443e-01
358 4 0.1667 1 0.865483982455 1.2623990257e-01
359 4 0.1667 2 1.655786548694 1.2553199243e-01
360 4 0.1667 3 2.443955174084 1.2537850828e-01
361 4 0.1667 4 3.231536247226 1.2532380181e-01
362 4 0.1667 5 4.018887927802 1.2530055995e-01
363 4 0.1667 6 4.806141433180 1.2529095424e-01
364 4 0.1667 7 5.593359932323 1.2528881510e-01
365 4 0.1667 8 6.380581682076 1.2529177386e-01
366 4 0.1667 9 7.167835834722 1.2529911643e-01
367 4 0.1667 10 7.955150432810 1.2531115130e-01
368 4 0.1667 11 8.742558545084 1.2532923616e-01
369 4 0.1667 12 9.530106331615 1.2535647274e-01
370 4 0.1667 13 10.317869959329 1.2539960592e-01
371 4 0.1667 14 11.105993422553 1.2547541211e-01
372 4 0.1667 15 11.894814284591 1.2563664156e-01
373 4 0.1667 16 12.685418024820 1.2612749377e-01
374 4 0.1667 17 13.485069848087 1.3009755348e-01
375 4 0.1667 18 14.148777143009 1.1161031003e+00
376 4 0.1667 19 15.029026025092 1.2695923510e-01
377 4 0.1667 20 15.822725484240 1.2599048374e-01
378 4 0.1667 21 16.613788802043 1.2586554393e-01
379 4 0.1667 22 17.404830862997 1.2596196277e-01
380 4 0.1667 23 18.197104152728 1.2627553719e-01
381 4 0.1667 24 18.992661293367 1.2710211833e-01
382 4 0.1667 25 19.798574287025 1.3025832447e-01
383 4 0.1667 26 20.724482500104 2.7506208527e-01
384 4 0.1667 27 21.087260863969 9.5637732491e-01
385 4 0.1667 28 22.080075927336 1.3097882950e-01
386 4 0.1667 29 22.891322295346 1.2824807985e-01
387 4 0.1667 30 23.699067833620 1.2955463362e-01
388 4 0.1667 31 24.564078208599 1.7271505225e-01
389 4 0.1667 32 25.048094573073 1.0644132282e+00
390 4 0.1667 33 26.008529289005 1.2983548648e-01
391 4 0.1667 34 26.814104891791 1.2733960658e-01
392 4 0.1667 35 27.612657909870 1.2701993379e-01
393 4 0.1667 36 28.412091853290 1.2764024596e-01
394 4 0.1667 37 29.221387847604 1.3088927784e-01
395 4 0.1667 38 30.168987330259 3.3279810078e-01
396 4 0.1667 39 30.503415268059 8.9826550536e-01
397 4 0.1667 40 31.506058809676 1.3225614970e-01
398 4 0.1667 41 32.339163333260 1.3859668086e-01
399 4 0.1667 42 32.955530752575 1.1074106121e+00
400 4 0.1667 43 33.870008199789 1.2857785957e-01
401 4 0.1667 44 34.671301404197 1.2701428308e-01
402 4 0.1667 45 35.468991098201 1.2708364673e-01
403 4 0.1667 46 36.271328716938 1.2889037545e-01
404 4 0.1667 47 37.128919694567 1.6788742227e-01
405 4 0.1667 48 37.621642836977 1.0691395897e+00
406 4 0.1667 49 38.576263150431 1.2936583586e-01
407 4 0.1667 50 39.378787106795 1.2682885933e-01
408 4 0.1667 51 40.173914226638 1.2653743182e-01
409 4 0.1667 52 40.923680122682 1.1246739492e+00
410 4 0.1667 53 41.750826028263 1.2601595810e-01
411 4 0.1667 54 42.541225849295 1.2574006462e-01
412 4 0.1667 55 43.327492900915 1.1256480171e+00
413 4 0.1667 56 44.120075566085 1.2566810481e-01
414 4 0.1667 57 44.909461707087 1.2570398720e-01
415 4 0.1667 58 45.699082036541 1.2574030464e-01
416 4 0.1667 59 46.489376117782 1.2596066229e-01
417 4 0.1667 60 47.282441630368 1.2685257398e-01
418 4 0.1667 61 48.012416324685 1.1238012159e+00
419 4 0.1667 62 48.860820161212 1.2814980873e-01
420 4 0.1667 63 49.757151874787 1.1131215029e+00
421 4 0.1667 64 50.401549569410 1.3313212169e-01
422 4 0.1667 65 51.212258458846 1.2778449173e-01
423 4 0.1667 66 52.016597178965 1.2910499849e-01
424 4 0.1667 67 52.945650480788 1.0986428710e+00
425 4 0.1667 68 53.523024283860 1.4435367822e-01
426 4 0.1667 69 54.356099235074 1.2929943573e-01
427 4 0.1667 70 55.169220084808 1.3074524871e-01
428 4 0.1667 71 56.065396832032 2.0765180177e-01
429 4 0.1667 72 56.494690170795 1.0282659160e+00
430 4 0.1667 73 57.480667513203 1.3211819622e-01
431 4 0.1667 74 58.305846917542 1.3249032143e-01
432 4 0.1667 75 59.297379469180 1.0274425587e+00
433 4 0.1667 76 59.733305436703 2.1267810032e-01
434 4 0.1667 77 60.795604822318 1.0764007069e+00
435 4 0.1667 78 61.308236960971 1.6760123196e-01
436 4 0.1667 79 62.173509951418 1.3033257458e-01
437 4 0.1667 80 62.984488170740 1.2861495320e-01
438 4 0.1667 81 63.795275170745 1.3044447421e-01
439 4 0.1667 82 64.664868848943 1.7478425159e-01
440 4 0.1667 83 65.150690271028 1.0643042557e+00
441 4 0.1667 84 66.123722936690 1.3300738772e-01
442 4 0.1667 85 67.058047831931 1.1071824289e+00
443 4 0.1667 86 67.672258103695 1.4087885190e-01
444 4 0.1667 87 68.510621262778 1.3285865682e-01
445 4 0.1667 88 69.498704921534 1.0333136502e+00
446 4 0.1667 89 69.937902204652 2.0477327956e-01
447 4 0.1667 90 70.846958710713 1.3552396925e-01
448 4 0.1667 91 71.811762737711 3.4020523723e-01
449 4 0.1667 92 72.147796317293 8.9321888738e-01
450 4 0.1667 93 73.151469136565 1.3194648677e-01
451 4 0.1667 94 73.965847963153 1.2870361146e-01
452 4 0.1667 95 74.772368904550 1.2937080200e-01
453 4 0.1667 96 75.685162728583 1.1093296614e+00
454 4 0.1667 97 76.307531049383 1.3703701766e-01
455 4 0.1667 98 77.142568624939 1.1282181300e+00
456 4 0.1667 99 77.926776780849 1.2841713126e-01
457 4 0.1667 100 78.747819537602 1.3864618677e-01
458 4 0.1667 101 79.358193030002 1.1068055490e+00
459 4 0.1667 102 80.275068139948 1.2972306475e-01
460 4 0.1667 103 81.081420573857 1.2887357207e-01
461 4 0.1667 104 81.891914934885 1.3107374215e-01
462 4 0.1667 105 82.867780366820 1.0517154376e+00
463 4 0.1667 106 83.335995998304 1.8967920741e-01
464 4 0.1667 107 84.287355332724 1.8059358590e-01
465 4 0.1667 108 84.774781988034 1.0617508203e+00
466 4 0.1667 109 85.745912118555 1.3117413737e-01
467 4 0.1667 110 86.557004681858 1.2928647703e-01
468 4 0.1667 111 87.417139166478 1.1252717802e+00
469 4 0.1667 112 88.155431186544 1.3423724793e-01
470 4 0.1667 113 88.824133759246 1.1170229319e+00
471 4 0.1667 114 89.717922318929 1.2953045480e-01
472 4 0.1667 115 90.522731534708 1.2890144611e-01
473 4 0.1667 116 91.337089463687 1.3322289061e-01
474 4 0.1667 117 92.330268247661 5.6045070357e-01
475 4 0.1667 118 92.623625671284 6.7245011415e-01
476 4 0.1667 119 93.636223066015 1.3587614896e-01
477 4 0.1667 120 94.615477228224 1.0758616493e+00
478 4 0.1667 121 95.131525009101 1.7091145371e-01
479 4 0.1667 122 95.883619293930 1.1241463740e+00
480 4 0.1667 123 96.779404644941 1.3046085986e-01
481 4 0.1667 124 97.596779259584 1.3304434190e-01
482 4 0.1667 125 98.533065333011 2.8102070863e-01
483 4 0.1667 126 98.898046535346 9.5442340146e-01
484 4 0.1667 127 99.901566718191 1.3502888495e-01
485 4 0.1667 128 100.737321227265 1.4314909748e-01
486 4 0.1667 129 101.340543024193 1.1044036409e+00
487 4 0.1667 130 102.267034722152 1.3052980101e-01
488 4 0.1667 131 103.085767482111 1.3512031879e-01
489 4 0.1667 132 103.741447347523 1.1157701929e+00
490 4 0.1667 133 104.632973199962 1.3002108527e-01
491 4 0.1667 134 105.445532359494 1.1282432667e+00
492 4 0.1667 135 106.236127220798 1.3033622198e-01
493 4 0.1667 136 107.147669869602 1.1083104957e+00
494 4 0.1667 137 107.759278386292 1.3916650364e-01
495 4 0.1667 138 108.573731737843 1.2939351679e-01
496 4 0.1667 139 109.373750180034 1.2751841199e-01
497 4 0.1667 140 110.171836377796 1.3063620699e-01
498 4 0.1667 141 111.021901472778 1.1276577012e+00
499 4 0.1667 142 111.858067031784 1.1165573902e+00
500 4 0.1667 143 112.515673126038 1.3585634636e-01
501 4 0.1667 144 113.332516178885 1.3258677098e-01

E-024-theta-sweep.json — 10.3 KB, updated 08-19-2026

JSON sidecar (click to expand)
{
  "experiment": "E-024",
  "task": "2.12: theta-flow numerics (theta-independence test)",
  "script": "research/numerics/scripts/E-024-theta-sweep.py",
  "parameters": {
    "a_list": [
      4.0,
      8.0,
      12.0
    ],
    "thetas_over_pi": [
      0.0,
      0.1667,
      0.3333,
      0.5,
      0.6667,
      0.8333,
      1.0
    ],
    "z_max": 300.0,
    "z_metric": 280.0
  },
  "checks": {
    "V1_lattice_all_theta": true,
    "V2_theta_pi_matches_E022": true,
    "V3_weights_positive": true
  },
  "key_values": {
    "a4_th0.0000pi": {
      "theta_over_pi": 0.0,
      "n_zeros": 381,
      "z1_times_a": 3.1471258584711514,
      "mass_total": 184.1835959613851,
      "mass_pm0.1": 119.4128093530634,
      "mass_pm0.05": 91.94966918355006,
      "residual": 48.76433809073876,
      "valley_mass_mean": 1.0747560148463995,
      "plateau_weight_mean": 0.21201886126408157,
      "Delta_eff": 1.6231737129268227
    },
    "a4_th0.1667pi": {
      "theta_over_pi": 0.1667,
      "n_zeros": 381,
      "z1_times_a": 3.4619359298190293,
      "mass_total": 184.18630284387328,
      "mass_pm0.1": 118.29623992508816,
      "mass_pm0.05": 86.87180322997308,
      "residual": 48.931287590873524,
      "valley_mass_mean": 1.0734525020079346,
      "plateau_weight_mean": 0.2127447286559719,
      "Delta_eff": 1.6185423804514978
    },
    "a4_th0.3333pi": {
      "theta_over_pi": 0.3333,
      "n_zeros": 381,
      "z1_times_a": 3.7176915045337466,
      "mass_total": 183.9726782811009,
      "mass_pm0.1": 113.57262540386267,
      "mass_pm0.05": 85.73049725879235,
      "residual": 50.41888852750091,
      "valley_mass_mean": 1.0599507123301588,
      "plateau_weight_mean": 0.22016981889738385,
      "Delta_eff": 1.5715785355566734
    },
    "a4_th0.5000pi": {
      "theta_over_pi": 0.5,
      "n_zeros": 381,
      "z1_times_a": 3.934163190177167,
      "mass_total": 183.98559583483848,
      "mass_pm0.1": 113.33711825061624,
      "mass_pm0.05": 89.82793793217617,
      "residual": 50.618934373720066,
      "valley_mass_mean": 1.0584655671517333,
      "plateau_weight_mean": 0.22104338154462916,
      "Delta_eff": 1.566216581357752
    },
    "a4_th0.6667pi": {
      "theta_over_pi": 0.6667,
      "n_zeros": 381,
      "z1_times_a": 4.128324562896003,
      "mass_total": 183.9983973653932,
      "mass_pm0.1": 119.75726561744686,
      "mass_pm0.05": 95.81754097212591,
      "residual": 48.13040632212352,
      "valley_mass_mean": 1.078317389232299,
      "plateau_weight_mean": 0.21017644682150013,
      "Delta_eff": 1.6352097313960756
    },
    "a4_th0.8333pi": {
      "theta_over_pi": 0.8333,
      "n_zeros": 381,
      "z1_times_a": 4.314182529701571,
      "mass_total": 184.01134904950752,
      "mass_pm0.1": 120.40026511109403,
      "mass_pm0.05": 90.96419878254113,
      "residual": 47.43102136203055,
      "valley_mass_mean": 1.0839708546625155,
      "plateau_weight_mean": 0.20712236402633416,
      "Delta_eff": 1.6550765456169134
    },
    "a4_th1.0000pi": {
      "theta_over_pi": 1.0,
      "n_zeros": 381,
      "z1_times_a": 4.504293602793437,
      "mass_total": 184.02432245308052,
      "mass_pm0.1": 116.64777135239572,
      "mass_pm0.05": 93.33647263205195,
      "residual": 48.30754760742576,
      "valley_mass_mean": 1.0771172606797996,
      "plateau_weight_mean": 0.2109499895520775,
      "Delta_eff": 1.6304224593273315
    },
    "a8_th0.0000pi": {
      "theta_over_pi": 0.0,
      "n_zeros": 763,
      "z1_times_a": 3.1437903681267265,
      "mass_total": 184.1082994928043,
      "mass_pm0.1": 134.20929653000076,
      "mass_pm0.05": 123.1835197830814,
      "residual": 57.73718018875971,
      "valley_mass_mean": 1.002945391301941,
      "plateau_weight_mean": 0.09852761124361722,
      "Delta_eff": 2.320359515027157
    },
    "a8_th0.1667pi": {
      "theta_over_pi": 0.1667,
      "n_zeros": 763,
      "z1_times_a": 3.418119179475546,
      "mass_total": 184.11283914170593,
      "mass_pm0.1": 131.8317519020843,
      "mass_pm0.05": 126.78097971430489,
      "residual": 56.7356526846647,
      "valley_mass_mean": 1.010930051246359,
      "plateau_weight_mean": 0.09681851993970085,
      "Delta_eff": 2.3457877312638367
    },
    "a8_th0.3333pi": {
      "theta_over_pi": 0.3333,
      "n_zeros": 763,
      "z1_times_a": 3.654042277120252,
      "mass_total": 184.11760264338506,
      "mass_pm0.1": 132.1490251381983,
      "mass_pm0.05": 124.0292094105938,
      "residual": 58.16107071439245,
      "valley_mass_mean": 0.9996550153094651,
      "plateau_weight_mean": 0.09925097391534557,
      "Delta_eff": 2.3097585025024654
    },
    "a8_th0.5000pi": {
      "theta_over_pi": 0.5,
      "n_zeros": 763,
      "z1_times_a": 3.867441949623103,
      "mass_total": 184.12212186389277,
      "mass_pm0.1": 133.24139728241443,
      "mass_pm0.05": 121.15410070178395,
      "residual": 59.85047462666191,
      "valley_mass_mean": 0.9862829145811973,
      "plateau_weight_mean": 0.10213391574515683,
      "Delta_eff": 2.26765839342186
    },
    "a8_th0.6667pi": {
      "theta_over_pi": 0.6667,
      "n_zeros": 763,
      "z1_times_a": 4.071478758632688,
      "mass_total": 184.1262503654809,
      "mass_pm0.1": 132.29513175105507,
      "mass_pm0.05": 122.51608044758039,
      "residual": 57.48114969555114,
      "valley_mass_mean": 1.0051198465867441,
      "plateau_weight_mean": 0.09809069913916582,
      "Delta_eff": 2.3269695116402334
    },
    "a8_th0.8333pi": {
      "theta_over_pi": 0.8333,
      "n_zeros": 763,
      "z1_times_a": 4.27766402464752,
      "mass_total": 184.12992169567084,
      "mass_pm0.1": 131.99007596810569,
      "mass_pm0.05": 124.30470833176733,
      "residual": 57.28031602287514,
      "valley_mass_mean": 1.0067429021650454,
      "plateau_weight_mean": 0.09774797956122035,
      "Delta_eff": 2.332083020259487
    },
    "a8_th1.0000pi": {
      "theta_over_pi": 1.0,
      "n_zeros": 763,
      "z1_times_a": 4.4968101024775144,
      "mass_total": 184.13312237431055,
      "mass_pm0.1": 133.51693635274228,
      "mass_pm0.05": 124.28962039506533,
      "residual": 58.6511497935264,
      "valley_mass_mean": 0.9958886712760646,
      "plateau_weight_mean": 0.10008728633707581,
      "Delta_eff": 2.297592806874823
    },
    "a12_th0.0000pi": {
      "theta_over_pi": 0.0,
      "n_zeros": 1145,
      "z1_times_a": 3.1428501414881977,
      "mass_total": 184.16007157245687,
      "mass_pm0.1": 133.61538092090012,
      "mass_pm0.05": 128.10759866335772,
      "residual": 60.30642315719122,
      "valley_mass_mean": 0.9829654636132195,
      "plateau_weight_mean": 0.06395166824728656,
      "Delta_eff": 2.732446371442262
    },
    "a12_th0.1667pi": {
      "theta_over_pi": 0.1667,
      "n_zeros": 1145,
      "z1_times_a": 3.405992501692748,
      "mass_total": 184.1639822094043,
      "mass_pm0.1": 133.36866840406773,
      "mass_pm0.05": 129.35521418242917,
      "residual": 60.3669918644722,
      "valley_mass_mean": 0.9825157963883501,
      "plateau_weight_mean": 0.06401589805352302,
      "Delta_eff": 2.73098496176509
    },
    "a12_th0.3333pi": {
      "theta_over_pi": 0.3333,
      "n_zeros": 1145,
      "z1_times_a": 3.635830555925344,
      "mass_total": 184.09580595481827,
      "mass_pm0.1": 133.41942035595872,
      "mass_pm0.05": 129.05415843419973,
      "residual": 58.57426551897014,
      "valley_mass_mean": 0.9962027018718106,
      "plateau_weight_mean": 0.06218074895856703,
      "Delta_eff": 2.7739053032480143
    },
    "a12_th0.5000pi": {
      "theta_over_pi": 0.5,
      "n_zeros": 1145,
      "z1_times_a": 3.8476946281889486,
      "mass_total": 184.09881987373944,
      "mass_pm0.1": 132.95788338488353,
      "mass_pm0.05": 129.3505890774291,
      "residual": 58.94147251618104,
      "valley_mass_mean": 0.9933122806155429,
      "plateau_weight_mean": 0.06257056530380153,
      "Delta_eff": 2.764750131884173
    },
    "a12_th0.6667pi": {
      "theta_over_pi": 0.6667,
      "n_zeros": 1145,
      "z1_times_a": 4.05423555082551,
      "mass_total": 184.10127816912785,
      "mass_pm0.1": 133.37160860447023,
      "mass_pm0.05": 129.68837121321633,
      "residual": 58.35802636312266,
      "valley_mass_mean": 0.9979623159206761,
      "plateau_weight_mean": 0.06195119571456758,
      "Delta_eff": 2.7793686068267633
    },
    "a12_th0.8333pi": {
      "theta_over_pi": 0.8333,
      "n_zeros": 1145,
      "z1_times_a": 4.2666373857585445,
      "mass_total": 184.1032513640804,
      "mass_pm0.1": 133.09565694496038,
      "mass_pm0.05": 129.3399679137547,
      "residual": 58.63289108937627,
      "valley_mass_mean": 0.9957965101166993,
      "plateau_weight_mean": 0.062242984171312424,
      "Delta_eff": 2.7724971046813764
    },
    "a12_th1.0000pi": {
      "theta_over_pi": 1.0,
      "n_zeros": 1145,
      "z1_times_a": 4.495304974166889,
      "mass_total": 184.10483484645468,
      "mass_pm0.1": 133.31147006007708,
      "mass_pm0.05": 129.13788187469896,
      "residual": 57.594257954705384,
      "valley_mass_mean": 1.004052197553566,
      "plateau_weight_mean": 0.06114040122580191,
      "Delta_eff": 2.7986264096434
    },
    "V4_theta_spread": {
      "a4": {
        "residual_minmax": [
          47.43102136203055,
          50.618934373720066
        ],
        "residual_spread_pct": 2.234095821084676,
        "mass_pm01_spread_pct": 2.302784187513983,
        "z1_times_a_range": [
          3.1471258584711514,
          4.504293602793437
        ]
      },
      "a8": {
        "residual_minmax": [
          56.7356526846647,
          59.85047462666191
        ],
        "residual_spread_pct": 1.6396401999266315,
        "mass_pm01_spread_pct": 0.6333372523281642,
        "z1_times_a_range": [
          3.1437903681267265,
          4.4968101024775144
        ]
      },
      "a12": {
        "residual_minmax": [
          57.594257954705384,
          60.3669918644722
        ],
        "residual_spread_pct": 1.6057262581418954,
        "mass_pm01_spread_pct": 0.15063835179687926,
        "z1_times_a_range": [
          3.1428501414881977,
          4.495304974166889
        ]
      }
    }
  },
  "elapsed_seconds": 212.6,
  "timestamp_utc": "2026-08-19T18:19:09.910473+00:00"
}

Source code

Python script (click to expand)
"""E-024 — task 2.12: theta-flow numerics (D-041 §5/§8, D-038 §5).

Theory (de Branges/Clark): the model space's kernel K_a(z,z) is
theta-INDEPENDENT; the extension choice theta only phase-shifts the
atom lattice z_k(theta). PREDICTION (to be tested): consolidation
statistics (valley-captured mass, residual) are theta-independent —
if confirmed, no theta(a) flow can fix consolidation and the
obstruction is entirely the K-saturation (D-040 F6); if refuted,
the theta-flow channel is alive.

For theta in {0, pi/6, pi/3, pi/2, 2pi/3, 5pi/6, pi} and a in {4,8,12}:
  - zeros of W(a,theta;z) on (0, Z_MAX] via the real gauge
        g_theta(z) = Re[ e^{-i theta/2} (z - i) V_+(z) ]
    (e^{-i theta/2} W = 2 Re[e^{-i theta/2}(z-i)V_+] on the real line,
    using Vm = conj(Vp); reduces to z ImV - ReV at theta=pi);
  - Clark weights w_k = 1/K_a(z_k,z_k) (E-022 Schur-Toeplitz route);
  - metrics: n_zeros, z1*a, mass within +/-0.1 and +/-0.05 of true
    gammas, residual R(a,theta) = total - captured, mean valley mass,
    effective depth Delta_eff = log(mean valley weight / mean plateau
    weight).

Checks:
  V1. all zeros real & count = maximal lattice a*Z_MAX/pi +/- 2,
      every theta (self-adjointness).
  V2. theta=pi reproduces E-022: |z1*a - 4.4953| < 0.05 at a=12 and
      mass(+/-0.1) within 1% of E-022 value.
  V3. weights positive, all theta.
  V4. headline: theta-spread of residual R and mass(+/-0.1) reported
      per a (small spread = theta-independence confirmed).

Outputs: research/numerics/data/E-024-theta-sweep.csv (+ .json)
"""
import importlib.util
import json
import sys
import time
from datetime import datetime, timezone
from pathlib import Path

import mpmath as mp
import numpy as np
import scipy.linalg
import scipy.optimize

REPO = Path(__file__).resolve().parents[3]
DATA = REPO / "research" / "numerics" / "data"
CSV = DATA / "E-024-theta-sweep.csv"
JSON = DATA / "E-024-theta-sweep.json"

_spec = importlib.util.spec_from_file_location(
    "E16", Path(__file__).with_name("E-016-herglotz-fine-structure.py"))
E16 = importlib.util.module_from_spec(_spec)
_spec.loader.exec_module(E16)                     # runs the e^20 sieve
sys.path.insert(0, str(Path(__file__).parent))
from prime_backend_v2 import PrimeBackendV2       # noqa: E402

H = E16.H_MAIN
LAM = E16.LAM_SHIFT
A_LIST = [4.0, 8.0, 12.0]
THETAS = [0.0, np.pi / 6, np.pi / 3, np.pi / 2, 2 * np.pi / 3,
          5 * np.pi / 6, np.pi]
Z_MAX = 300.0
Z_METRIC = 280.0
N_GRID = 40000
XN = E16.XN
mp.mp.dps = 40


def collect_t_points(a, h):
    n_elem = int(round(2 * a / h))
    pts = []

    def add_quad(lo, hi, peak):
        n_lo = int(np.ceil(np.exp(lo)))
        n_hi = int(np.floor(np.exp(hi)))
        if n_hi - n_lo > 64:
            for aa, bb in ((lo, peak), (peak, hi)):
                if bb - aa > 0:
                    mid, half = 0.5 * (aa + bb), 0.5 * (bb - aa)
                    pts.extend(mid + half * XN)
            return
        segs = sorted({lo, peak, hi} |
                      {float(np.log(n))
                       for n in range(max(n_lo, 2), n_hi + 1)
                       if lo < np.log(n) < hi})
        for p0, p1 in zip(segs, segs[1:]):
            if p1 - p0 > 0:
                mid, half = 0.5 * (p0 + p1), 0.5 * (p1 - p0)
                pts.extend(mid + half * XN)

    for k in range(n_elem):
        if k == 0:
            add_quad(0.0, h, 0.0)
        else:
            add_quad((k - 1) * h, (k + 1) * h, k * h)
    return np.array(pts)


def locate_zeros_theta(cp, x, h, theta, z_max=Z_MAX, n_grid=N_GRID):
    zg = np.linspace(1e-3, z_max, n_grid)
    E = np.exp(1j * np.outer(zg, x))
    V = E16.hat_FT(zg, h) * (E @ cp)
    f = np.exp(-0.5j * theta) * (zg - 1j) * V
    g = f.real

    def g_direct(zz):
        V1 = E16.hat_FT(np.array([zz]), h)[0] * complex(
            np.exp(1j * zz * x) @ cp)
        return float(np.real(np.exp(-0.5j * theta) * (zz - 1j) * V1))

    idx = np.flatnonzero(np.sign(g[:-1]) * np.sign(g[1:]) < 0)
    zeros = []
    for i in idx:
        try:
            zeros.append(scipy.optimize.brentq(g_direct, zg[i], zg[i + 1],
                                               xtol=1e-13, rtol=1e-13))
        except ValueError:
            pass
    return np.array(zeros)


def main() -> int:
    if JSON.exists() and "--force" not in sys.argv:
        print(f"cached: {JSON} (use --force to recompute)")
        return 0
    t0 = time.time()

    print("backend: load E-022 cache ...", flush=True)
    tq = np.concatenate([collect_t_points(a, H) for a in A_LIST])
    be = PrimeBackendV2(tq)
    be.load_cache(DATA / "E-022-backend-cache.npz")
    E16._BUILD.clear()
    E16.prime_sum_vec = be.prime_sum

    mp.mp.dps = 30
    gam = np.array([float(mp.zetazero(k).imag) for k in range(1, 201)])
    gam = gam[gam <= Z_METRIC]

    rows = []
    report = {"per_a_theta": {}}
    v1_ok = v3_ok = True
    v2 = {}
    for a in A_LIST:
        ta = time.time()
        x, h, Q, M, b = E16.build(a, H)
        n = len(x)
        cp, _ = E16.solve_v(Q, M, b[+1.0], LAM, n)
        # Toeplitz bordered solver for weights (theta-independent K)
        mc = np.zeros(n)
        mc[0] = 2 * h / 3
        mc[1] = h / 6
        tc = Q[:, 0] - LAM * mc
        u1 = scipy.linalg.solve_toeplitz((tc, tc), np.ones(n))
        s1 = u1.sum()

        def K1(z):
            bz = E16.hat_FT(np.array([z]), h)[0] * np.exp(-1j * z * x)
            u0 = scipy.linalg.solve_toeplitz((tc, tc), bz)
            v = u0 - (u0.sum() / s1) * u1
            return float(np.real(np.conj(bz) @ v))

        for th in THETAS:
            zeros = locate_zeros_theta(cp, x, h, th)
            lat = a * Z_MAX / np.pi
            if abs(len(zeros) - lat) > 2:
                v1_ok = False
            zm = zeros[zeros <= Z_METRIC]
            ws = np.array([1.0 / K1(z) for z in zm])
            if np.any(ws <= 0):
                v3_ok = False
            tot = float(ws.sum())
            idx = np.clip(np.searchsorted(gam, zm), 1, len(gam) - 1)
            d = np.minimum(np.abs(zm - gam[idx - 1]),
                           np.abs(zm - gam[idx]))
            m01 = float(ws[d <= 0.1].sum())
            m005 = float(ws[d <= 0.05].sum())
            # valley atoms = nearest to each gamma; plateau = rest
            near_idx = np.array([np.argmin(np.abs(zm - g)) for g in gam])
            valley_mass = ws[near_idx]
            mask_pl = np.ones(len(zm), bool)
            mask_pl[near_idx] = False
            pl = ws[mask_pl]
            d_eff = float(np.log(valley_mass.mean() / pl.mean()))
            key = f"a{a:g}_th{th / np.pi:.4f}pi"
            report["per_a_theta"][key] = {
                "theta_over_pi": round(th / np.pi, 4),
                "n_zeros": int(len(zeros)),
                "z1_times_a": float(zeros[0] * a),
                "mass_total": tot,
                "mass_pm0.1": m01, "mass_pm0.05": m005,
                "residual": tot - float(valley_mass.sum()),
                "valley_mass_mean": float(valley_mass.mean()),
                "plateau_weight_mean": float(pl.mean()),
                "Delta_eff": d_eff,
            }
            for k, (zz, ww) in enumerate(zip(zm, ws), 1):
                rows.append((a, th / np.pi, k, zz, ww))
        print(f"a={a:g} done ({time.time() - ta:.0f}s)", flush=True)

    # V2: theta=pi cross-check vs E-022
    e022 = report["per_a_theta"]["a12_th1.0000pi"]
    v2 = {"z1_times_a_ok": bool(abs(e022["z1_times_a"] - 4.4953) < 0.05)}
    # V4: theta-spread per a
    v4 = {}
    for a in A_LIST:
        vals = [report["per_a_theta"][f"a{a:g}_th{th / np.pi:.4f}pi"]
                for th in THETAS]
        res = np.array([v["residual"] for v in vals])
        m01 = np.array([v["mass_pm0.1"] for v in vals])
        z1a = np.array([v["z1_times_a"] for v in vals])
        v4[f"a{a:g}"] = {
            "residual_minmax": [float(res.min()), float(res.max())],
            "residual_spread_pct": float(100 * res.std() / res.mean()),
            "mass_pm01_spread_pct": float(100 * m01.std() / m01.mean()),
            "z1_times_a_range": [float(z1a.min()), float(z1a.max())],
        }
        print(f"a={a:g}: residual spread {v4[f'a{a:g}']['residual_spread_pct']:.2f}%, "
              f"mass01 spread {v4[f'a{a:g}']['mass_pm01_spread_pct']:.2f}%, "
              f"z1a in [{z1a.min():.3f},{z1a.max():.3f}]", flush=True)

    checks = {"V1_lattice_all_theta": v1_ok,
              "V2_theta_pi_matches_E022": v2["z1_times_a_ok"],
              "V3_weights_positive": v3_ok}

    import csv as csvmod
    with open(CSV, "w", newline="") as f:
        w = csvmod.writer(f)
        w.writerow(["a", "theta_over_pi", "k", "z_k", "w_k"])
        for a, thp, k, zz, ww in rows:
            w.writerow([f"{a:g}", f"{thp:.4f}", k, f"{zz:.12f}",
                        f"{ww:.10e}"])

    meta = {
        "experiment": "E-024",
        "task": "2.12: theta-flow numerics (theta-independence test)",
        "script": "research/numerics/scripts/E-024-theta-sweep.py",
        "parameters": {"a_list": A_LIST,
                       "thetas_over_pi": [round(t / np.pi, 4)
                                          for t in THETAS],
                       "z_max": Z_MAX, "z_metric": Z_METRIC},
        "checks": checks,
        "key_values": {**report["per_a_theta"], "V4_theta_spread": v4},
        "elapsed_seconds": round(time.time() - t0, 1),
        "timestamp_utc": datetime.now(timezone.utc).isoformat(),
    }
    JSON.write_text(json.dumps(meta, indent=2))
    print(f"wrote {CSV.name}, {JSON.name}; elapsed "
          f"{meta['elapsed_seconds']}s", flush=True)
    return 0 if all(checks.values()) else 1


if __name__ == "__main__":
    sys.exit(main())