Current task: —

E-025-lambda-flow.py

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

E-025-lambda-flow.csv — 384.1 KB, updated 08-19-2026

← prev page 25 of 34 · 500/page · 16560 rows next →
# alambda_tagzlogK
12002 12 0 16.000 13.657495
12003 12 0 16.050 14.076208
12004 12 0 16.100 14.406980
12005 12 0 16.150 14.643327
12006 12 0 16.200 14.791019
12007 12 0 16.250 14.861224
12008 12 0 16.300 14.868310
12009 12 0 16.350 14.828384
12010 12 0 16.400 14.755691
12011 12 0 16.450 14.657346
12012 12 0 16.500 14.529591
12013 12 0 16.550 14.359158
12014 12 0 16.600 14.130168
12015 12 0 16.650 13.835082
12016 12 0 16.700 13.491572
12017 12 0 16.750 13.164103
12018 12 0 16.800 12.948607
12019 12 0 16.850 12.867761
12020 12 0 16.900 12.823137
12021 12 0 16.950 12.692213
12022 12 0 17.000 12.366063
12023 12 0 17.050 11.617023
12024 12 0 17.100 -690.775528
12025 12 0 17.150 -690.775528
12026 12 0 17.200 -690.775528
12027 12 0 17.250 -690.775528
12028 12 0 17.300 -690.775528
12029 12 0 17.350 -690.775528
12030 12 0 17.400 10.424622
12031 12 0 17.450 11.940881
12032 12 0 17.500 12.388773
12033 12 0 17.550 12.527042
12034 12 0 17.600 12.467679
12035 12 0 17.650 12.230515
12036 12 0 17.700 11.763382
12037 12 0 17.750 10.770145
12038 12 0 17.800 -690.775528
12039 12 0 17.850 -690.775528
12040 12 0 17.900 -690.775528
12041 12 0 17.950 8.989698
12042 12 0 18.000 11.662321
12043 12 0 18.050 12.474133
12044 12 0 18.100 12.985283
12045 12 0 18.150 13.376946
12046 12 0 18.200 13.721869
12047 12 0 18.250 14.048669
12048 12 0 18.300 14.357548
12049 12 0 18.350 14.634932
12050 12 0 18.400 14.865949
12051 12 0 18.450 15.040234
12052 12 0 18.500 15.152746
12053 12 0 18.550 15.202957
12054 12 0 18.600 15.194128
12055 12 0 18.650 15.133285
12056 12 0 18.700 15.031803
12057 12 0 18.750 14.906043
12058 12 0 18.800 14.777089
12059 12 0 18.850 14.667991
12060 12 0 18.900 14.598044
12061 12 0 18.950 14.577540
12062 12 0 19.000 14.606884
12063 12 0 19.050 14.679920
12064 12 0 19.100 14.786562
12065 12 0 19.150 14.912961
12066 12 0 19.200 15.041439
12067 12 0 19.250 15.152421
12068 12 0 19.300 15.227379
12069 12 0 19.350 15.250839
12070 12 0 19.400 15.211057
12071 12 0 19.450 15.099832
12072 12 0 19.500 14.912543
12073 12 0 19.550 14.649072
12074 12 0 19.600 14.316810
12075 12 0 19.650 13.936326
12076 12 0 19.700 13.547238
12077 12 0 19.750 13.201975
12078 12 0 19.800 12.933443
12079 12 0 19.850 12.723245
12080 12 0 19.900 12.516370
12081 12 0 19.950 12.255358
12082 12 0 20.000 11.890463
12083 12 0 20.050 11.373367
12084 12 0 20.100 10.678844
12085 12 0 20.150 10.067131
12086 12 0 20.200 10.308301
12087 12 0 20.250 10.957979
12088 12 0 20.300 11.445318
12089 12 0 20.350 11.715045
12090 12 0 20.400 11.778196
12091 12 0 20.450 11.608505
12092 12 0 20.500 11.049791
12093 12 0 20.550 -690.775528
12094 12 0 20.600 -690.775528
12095 12 0 20.650 -690.775528
12096 12 0 20.700 -690.775528
12097 12 0 20.750 -690.775528
12098 12 0 20.800 -690.775528
12099 12 0 20.850 -690.775528
12100 12 0 20.900 -690.775528
12101 12 0 20.950 -690.775528
12102 12 0 21.000 4.457193
12103 12 0 21.050 6.733342
12104 12 0 21.100 9.307207
12105 12 0 21.150 10.514716
12106 12 0 21.200 11.206156
12107 12 0 21.250 11.582938
12108 12 0 21.300 11.718811
12109 12 0 21.350 11.646406
12110 12 0 21.400 11.403834
12111 12 0 21.450 11.129494
12112 12 0 21.500 11.139397
12113 12 0 21.550 11.496354
12114 12 0 21.600 11.885184
12115 12 0 21.650 12.124929
12116 12 0 21.700 12.167398
12117 12 0 21.750 11.983341
12118 12 0 21.800 11.501040
12119 12 0 21.850 10.449965
12120 12 0 21.900 -690.775528
12121 12 0 21.950 -690.775528
12122 12 0 22.000 9.988822
12123 12 0 22.050 11.125722
12124 12 0 22.100 11.562398
12125 12 0 22.150 11.646348
12126 12 0 22.200 11.398853
12127 12 0 22.250 10.550610
12128 12 0 22.300 -690.775528
12129 12 0 22.350 -690.775528
12130 12 0 22.400 -690.775528
12131 12 0 22.450 -690.775528
12132 12 0 22.500 -690.775528
12133 12 0 22.550 -690.775528
12134 12 0 22.600 -690.775528
12135 12 0 22.650 -690.775528
12136 12 0 22.700 -690.775528
12137 12 0 22.750 9.356675
12138 12 0 22.800 10.635211
12139 12 0 22.850 10.557271
12140 12 0 22.900 9.182241
12141 12 0 22.950 -690.775528
12142 12 0 23.000 -690.775528
12143 12 0 23.050 -690.775528
12144 12 0 23.100 -690.775528
12145 12 0 23.150 -690.775528
12146 12 0 23.200 -690.775528
12147 12 0 23.250 -690.775528
12148 12 0 23.300 -690.775528
12149 12 0 23.350 11.532417
12150 12 0 23.400 11.963437
12151 12 0 23.450 11.864568
12152 12 0 23.500 11.271563
12153 12 0 23.550 8.204648
12154 12 0 23.600 -690.775528
12155 12 0 23.650 -690.775528
12156 12 0 23.700 -690.775528
12157 12 0 23.750 -690.775528
12158 12 0 23.800 -690.775528
12159 12 0 23.850 -690.775528
12160 12 0 23.900 -690.775528
12161 12 0 23.950 -690.775528
12162 12 0 24.000 -690.775528
12163 12 0 24.050 9.604677
12164 12 0 24.100 11.264781
12165 12 0 24.150 11.709110
12166 12 0 24.200 11.763168
12167 12 0 24.250 11.437576
12168 12 0 24.300 10.267205
12169 12 0 24.350 -690.775528
12170 12 0 24.400 -690.775528
12171 12 0 24.450 -690.775528
12172 12 0 24.500 -690.775528
12173 12 0 24.550 -690.775528
12174 12 0 24.600 -690.775528
12175 12 0 24.650 -690.775528
12176 12 0 24.700 -690.775528
12177 12 0 24.750 10.704475
12178 12 0 24.800 11.719021
12179 12 0 24.850 11.808043
12180 12 0 24.900 11.405842
12181 12 0 24.950 10.364653
12182 12 0 25.000 6.934866
12183 12 0 25.050 9.401986
12184 12 0 25.100 10.857636
12185 12 0 25.150 11.482273
12186 12 0 25.200 11.757657
12187 12 0 25.250 11.790381
12188 12 0 25.300 11.596939
12189 12 0 25.350 11.362447
12190 12 0 25.400 11.867119
12191 12 0 25.450 12.900961
12192 12 0 25.500 13.781089
12193 12 0 25.550 14.421314
12194 12 0 25.600 14.852234
12195 12 0 25.650 15.099094
12196 12 0 25.700 15.173305
12197 12 0 25.750 15.073580
12198 12 0 25.800 14.785632
12199 12 0 25.850 14.282531
12200 12 0 25.900 13.554336
12201 12 0 25.950 12.854456
12202 12 0 26.000 12.906714
12203 12 0 26.050 13.328867
12204 12 0 26.100 13.551253
12205 12 0 26.150 13.490480
12206 12 0 26.200 13.117447
12207 12 0 26.250 12.284280
12208 12 0 26.300 8.823713
12209 12 0 26.350 -690.775528
12210 12 0 26.400 -690.775528
12211 12 0 26.450 10.327298
12212 12 0 26.500 11.373276
12213 12 0 26.550 11.524971
12214 12 0 26.600 11.276803
12215 12 0 26.650 10.587755
12216 12 0 26.700 6.395627
12217 12 0 26.750 -690.775528
12218 12 0 26.800 -690.775528
12219 12 0 26.850 -690.775528
12220 12 0 26.900 -690.775528
12221 12 0 26.950 -690.775528
12222 12 0 27.000 9.838857
12223 12 0 27.050 10.392122
12224 12 0 27.100 10.471163
12225 12 0 27.150 10.264832
12226 12 0 27.200 9.717275
12227 12 0 27.250 7.670745
12228 12 0 27.300 -690.775528
12229 12 0 27.350 -690.775528
12230 12 0 27.400 -690.775528
12231 12 0 27.450 -690.775528
12232 12 0 27.500 10.053580
12233 12 0 27.550 10.670640
12234 12 0 27.600 10.803578
12235 12 0 27.650 10.640558
12236 12 0 27.700 10.319402
12237 12 0 27.750 10.067564
12238 12 0 27.800 9.897329
12239 12 0 27.850 9.079739
12240 12 0 27.900 -690.775528
12241 12 0 27.950 -690.775528
12242 12 0 28.000 -690.775528
12243 12 0 28.050 11.210006
12244 12 0 28.100 12.315667
12245 12 0 28.150 12.850478
12246 12 0 28.200 13.062453
12247 12 0 28.250 12.996924
12248 12 0 28.300 12.625850
12249 12 0 28.350 11.864620
12250 12 0 28.400 11.068207
12251 12 0 28.450 11.894593
12252 12 0 28.500 12.865478
12253 12 0 28.550 13.460198
12254 12 0 28.600 13.780002
12255 12 0 28.650 13.888389
12256 12 0 28.700 13.811095
12257 12 0 28.750 13.547380
12258 12 0 28.800 13.064739
12259 12 0 28.850 12.251893
12260 12 0 28.900 10.444474
12261 12 0 28.950 -690.775528
12262 12 0 29.000 -690.775528
12263 12 0 29.050 -690.775528
12264 12 0 29.100 -690.775528
12265 12 0 29.150 9.333001
12266 12 0 29.200 9.749078
12267 12 0 29.250 9.622057
12268 12 0 29.300 8.757018
12269 12 0 29.350 -690.775528
12270 12 0 29.400 -690.775528
12271 12 0 29.450 -690.775528
12272 12 0 29.500 -690.775528
12273 12 0 29.550 -690.775528
12274 12 0 29.600 9.649153
12275 12 0 29.650 10.146076
12276 12 0 29.700 10.226321
12277 12 0 29.750 10.189834
12278 12 0 29.800 10.197987
12279 12 0 29.850 10.190770
12280 12 0 29.900 9.870385
12281 12 0 29.950 5.409230
12282 12 0 30.000 -690.775528
12283 12 0 30.050 -690.775528
12284 12 0 30.100 -690.775528
12285 12 0 30.150 -690.775528
12286 12 0 30.200 -690.775528
12287 12 0 30.250 9.589557
12288 12 0 30.300 9.900895
12289 12 0 30.350 9.340405
12290 12 0 30.400 7.334278
12291 12 0 30.450 7.333507
12292 12 0 30.500 9.250932
12293 12 0 30.550 9.527301
12294 12 0 30.600 -690.775528
12295 12 0 30.650 -690.775528
12296 12 0 30.700 -690.775528
12297 12 0 30.750 -690.775528
12298 12 0 30.800 -690.775528
12299 12 0 30.850 -690.775528
12300 12 0 30.900 -690.775528
12301 12 0 30.950 -690.775528
12302 12 0 31.000 -690.775528
12303 12 0 31.050 -690.775528
12304 12 0 31.100 -690.775528
12305 12 0 31.150 -690.775528
12306 12 0 31.200 -690.775528
12307 12 0 31.250 -690.775528
12308 12 0 31.300 9.521651
12309 12 0 31.350 10.749632
12310 12 0 31.400 11.352012
12311 12 0 31.450 11.668745
12312 12 0 31.500 11.792612
12313 12 0 31.550 11.772815
12314 12 0 31.600 11.655332
12315 12 0 31.650 11.502100
12316 12 0 31.700 11.387617
12317 12 0 31.750 11.352063
12318 12 0 31.800 11.356314
12319 12 0 31.850 11.306426
12320 12 0 31.900 11.076927
12321 12 0 31.950 10.358479
12322 12 0 32.000 -690.775528
12323 12 0 32.050 -690.775528
12324 12 0 32.100 -690.775528
12325 12 0 32.150 -690.775528
12326 12 0 32.200 -690.775528
12327 12 0 32.250 -690.775528
12328 12 0 32.300 -690.775528
12329 12 0 32.350 -690.775528
12330 12 0 32.400 9.147793
12331 12 0 32.450 10.446929
12332 12 0 32.500 10.702032
12333 12 0 32.550 10.383178
12334 12 0 32.600 -690.775528
12335 12 0 32.650 -690.775528
12336 12 0 32.700 -690.775528
12337 12 0 32.750 -690.775528
12338 12 0 32.800 -690.775528
12339 12 0 32.850 -690.775528
12340 12 0 32.900 -690.775528
12341 12 0 32.950 -690.775528
12342 12 0 33.000 -690.775528
12343 12 0 33.050 -690.775528
12344 12 0 33.100 -690.775528
12345 12 0 33.150 -690.775528
12346 12 0 33.200 9.750157
12347 12 0 33.250 10.260768
12348 12 0 33.300 10.098945
12349 12 0 33.350 8.921511
12350 12 0 33.400 -690.775528
12351 12 0 33.450 -690.775528
12352 12 0 33.500 -690.775528
12353 12 0 33.550 -690.775528
12354 12 0 33.600 9.917677
12355 12 0 33.650 10.853324
12356 12 0 33.700 11.269047
12357 12 0 33.750 11.442957
12358 12 0 33.800 11.452798
12359 12 0 33.850 11.345499
12360 12 0 33.900 11.173240
12361 12 0 33.950 10.996906
12362 12 0 34.000 10.850063
12363 12 0 34.050 10.692391
12364 12 0 34.100 10.404429
12365 12 0 34.150 9.705847
12366 12 0 34.200 -690.775528
12367 12 0 34.250 -690.775528
12368 12 0 34.300 -690.775528
12369 12 0 34.350 -690.775528
12370 12 0 34.400 -690.775528
12371 12 0 34.450 4.216084
12372 12 0 34.500 9.635315
12373 12 0 34.550 10.027453
12374 12 0 34.600 10.020838
12375 12 0 34.650 9.851186
12376 12 0 34.700 9.635690
12377 12 0 34.750 9.273744
12378 12 0 34.800 7.729303
12379 12 0 34.850 -690.775528
12380 12 0 34.900 -690.775528
12381 12 0 34.950 -690.775528
12382 12 0 35.000 8.634223
12383 12 0 35.050 10.351331
12384 12 0 35.100 10.822172
12385 12 0 35.150 10.877117
12386 12 0 35.200 10.646695
12387 12 0 35.250 10.233946
12388 12 0 35.300 9.837248
12389 12 0 35.350 9.554003
12390 12 0 35.400 8.864749
12391 12 0 35.450 -690.775528
12392 12 0 35.500 -690.775528
12393 12 0 35.550 -690.775528
12394 12 0 35.600 -690.775528
12395 12 0 35.650 9.093460
12396 12 0 35.700 10.407467
12397 12 0 35.750 10.781183
12398 12 0 35.800 10.843567
12399 12 0 35.850 10.742696
12400 12 0 35.900 10.564839
12401 12 0 35.950 10.365899
12402 12 0 36.000 10.179600
12403 12 0 36.050 10.036970
12404 12 0 36.100 9.940215
12405 12 0 36.150 9.788730
12406 12 0 36.200 9.317590
12407 12 0 36.250 3.900612
12408 12 0 36.300 -690.775528
12409 12 0 36.350 -690.775528
12410 12 0 36.400 -690.775528
12411 12 0 36.450 -690.775528
12412 12 0 36.500 7.784949
12413 12 0 36.550 8.992112
12414 12 0 36.600 9.302205
12415 12 0 36.650 9.521769
12416 12 0 36.700 9.688462
12417 12 0 36.750 9.634286
12418 12 0 36.800 9.055485
12419 12 0 36.850 -690.775528
12420 12 0 36.900 -690.775528
12421 12 0 36.950 -690.775528
12422 12 0 37.000 -690.775528
12423 12 0 37.050 -690.775528
12424 12 0 37.100 -690.775528
12425 12 0 37.150 -690.775528
12426 12 0 37.200 8.537220
12427 12 0 37.250 9.341740
12428 12 0 37.300 9.391060
12429 12 0 37.350 8.756201
12430 12 0 37.400 -690.775528
12431 12 0 37.450 -690.775528
12432 12 0 37.500 -690.775528
12433 12 0 37.550 -690.775528
12434 12 0 37.600 -690.775528
12435 12 0 37.650 -690.775528
12436 12 0 37.700 7.930891
12437 12 0 37.750 9.419304
12438 12 0 37.800 10.115327
12439 12 0 37.850 10.410216
12440 12 0 37.900 10.430316
12441 12 0 37.950 10.260099
12442 12 0 38.000 9.982423
12443 12 0 38.050 9.632283
12444 12 0 38.100 9.090784
12445 12 0 38.150 7.946871
12446 12 0 38.200 5.204986
12447 12 0 38.250 8.366338
12448 12 0 38.300 9.710794
12449 12 0 38.350 10.592382
12450 12 0 38.400 11.367461
12451 12 0 38.450 12.083310
12452 12 0 38.500 12.687029
12453 12 0 38.550 13.137668
12454 12 0 38.600 13.419733
12455 12 0 38.650 13.527210
12456 12 0 38.700 13.452201
12457 12 0 38.750 13.176127
12458 12 0 38.800 12.655560
12459 12 0 38.850 11.773326
12460 12 0 38.900 9.947048
12461 12 0 38.950 -690.775528
12462 12 0 39.000 -690.775528
12463 12 0 39.050 9.669905
12464 12 0 39.100 10.295063
12465 12 0 39.150 10.164385
12466 12 0 39.200 7.221489
12467 12 0 39.250 -690.775528
12468 12 0 39.300 -690.775528
12469 12 0 39.350 -690.775528
12470 12 0 39.400 -690.775528
12471 12 0 39.450 -690.775528
12472 12 0 39.500 -690.775528
12473 12 0 39.550 -690.775528
12474 12 0 39.600 -690.775528
12475 12 0 39.650 -690.775528
12476 12 0 39.700 -690.775528
12477 12 0 39.750 -690.775528
12478 12 0 39.800 -690.775528
12479 12 0 39.850 10.899762
12480 12 0 39.900 10.979158
12481 12 0 39.950 10.132612
12482 12 0 40.000 -690.775528
12483 12 0 40.050 -690.775528
12484 12 0 40.100 -690.775528
12485 12 0 40.150 8.751031
12486 12 0 40.200 9.605124
12487 12 0 40.250 8.435473
12488 12 0 40.300 -690.775528
12489 12 0 40.350 -690.775528
12490 12 0 40.400 -690.775528
12491 12 0 40.450 -690.775528
12492 12 0 40.500 -690.775528
12493 12 0 40.550 -690.775528
12494 12 0 40.600 9.743279
12495 12 0 40.650 10.109433
12496 12 0 40.700 9.676420
12497 12 0 40.750 7.928579
12498 12 0 40.800 -690.775528
12499 12 0 40.850 -690.775528
12500 12 0 40.900 -690.775528
12501 12 0 40.950 -690.775528

E-025-lambda-flow.json — 9.2 KB, updated 08-19-2026

JSON sidecar (click to expand)
{
  "experiment": "E-025",
  "task": "2.13: lambda-flow numerics (ground-state channel)",
  "script": "research/numerics/scripts/E-025-lambda-flow.py",
  "parameters": {
    "a_list": [
      4.0,
      8.0,
      12.0
    ],
    "ladder_rel": [
      0.0,
      0.5,
      0.9,
      0.99,
      0.999
    ],
    "z_max": 300.0
  },
  "checks": {
    "V1_lambda_a_positive_law": false,
    "V2_baseline_matches_E022": true,
    "V3_solve_residuals": false,
    "V4_sister_reported": true
  },
  "key_values": {
    "4": {
      "lambda_a": 5.147476282756457e-11,
      "lambda_law_ratio": 3.783885052191424e-08,
      "sister_corr": -0.2997460393487147,
      "sister_crossings": 57,
      "sister_cross_err": 16.71385138849778,
      "ladder": {
        "-1": {
          "lambda": -1.0,
          "Delta": 2.1593140478568413,
          "floor": -0.106956845297883,
          "plateau": 2.0523572025589583,
          "z1_times_a": 4.504293602793437,
          "n_zeros": 381,
          "lock_metric": 0.10068828882668726,
          "residual": 48.3075476074236,
          "mass_pm0.1": 116.6477713523963,
          "solve_resid": 1.588314368200427e-16
        },
        "0": {
          "lambda": 0.0,
          "Delta": 6.988266234191322,
          "floor": 4.4061523727558125,
          "plateau": 11.394418606947134,
          "z1_times_a": 6.9816622297266715,
          "n_zeros": 381,
          "lock_metric": 7.623144158814413e-05,
          "residual": 10.718615266368445,
          "mass_pm0.1": 127.66723750632949,
          "solve_resid": 5.831210378871265e-10
        },
        "0.5": {
          "lambda": 2.5737381413782287e-11,
          "Delta": 6.988147390288639,
          "floor": 4.40643861356427,
          "plateau": 11.39458600385291,
          "z1_times_a": 7.529134813217906,
          "n_zeros": 381,
          "lock_metric": 7.612992319993416e-05,
          "residual": 10.708784969160092,
          "mass_pm0.1": 127.66507880386828,
          "solve_resid": 2.2679633796708461e-07
        },
        "0.9": {
          "lambda": 4.632728654480812e-11,
          "Delta": 6.987816911690756,
          "floor": 4.407352992396391,
          "plateau": 11.395169904087147,
          "z1_times_a": 8.199973337356482,
          "n_zeros": 381,
          "lock_metric": 7.609529464864893e-05,
          "residual": 10.693566680716287,
          "mass_pm0.1": 127.66305186152309,
          "solve_resid": 5.74001354100028e-08
        },
        "0.99": {
          "lambda": 5.096001519928893e-11,
          "Delta": 6.985923725722728,
          "floor": 4.413501470282933,
          "plateau": 11.39942519600566,
          "z1_times_a": 8.385279853786248,
          "n_zeros": 381,
          "lock_metric": 7.613585558613195e-05,
          "residual": 10.687862236134379,
          "mass_pm0.1": 127.66303788362372,
          "solve_resid": 7.885784848149343e-08
        },
        "0.999": {
          "lambda": 5.142328806473701e-11,
          "Delta": 6.981356415160433,
          "floor": 4.428696114419206,
          "plateau": 11.41005252957964,
          "z1_times_a": 8.40265274248596,
          "n_zeros": 381,
          "lock_metric": 7.614180518407809e-05,
          "residual": 10.687276136059936,
          "mass_pm0.1": 127.66306304014373,
          "solve_resid": 4.3024270231059637e-07
        }
      }
    },
    "8": {
      "lambda_a": -0.028701446327309428,
      "lambda_law_ratio": -15509.255243545844,
      "sister_corr": 0.00255772313467671,
      "sister_crossings": 118,
      "sister_cross_err": 18.633851388497806,
      "ladder": {
        "-1": {
          "lambda": -1.0,
          "Delta": 2.7352201581877043,
          "floor": 0.030554703235580436,
          "plateau": 2.7657748614232847,
          "z1_times_a": 4.496810102477515,
          "n_zeros": 763,
          "lock_metric": 0.057829797607063305,
          "residual": 58.651149793527864,
          "mass_pm0.1": 133.51693635274552,
          "solve_resid": 3.0889933849343203e-16
        },
        "0": {
          "lambda": -0.0,
          "Delta": -33.528034311582985,
          "floor": -423.8211920422485,
          "plateau": -457.3492263538315,
          "z1_times_a": 1.8093924166647792,
          "n_zeros": 548,
          "lock_metric": 0.0003714172395450807,
          "residual": 11.144052463580522,
          "mass_pm0.1": 127.82233169936302,
          "solve_resid": 0.00020060867988680158
        },
        "0.5": {
          "lambda": -0.014350723163654714,
          "Delta": 5.2473962964853165,
          "floor": 1.7336013999547513,
          "plateau": 6.980997696440068,
          "z1_times_a": 4.498199381863492,
          "n_zeros": 755,
          "lock_metric": 0.0013619017100949234,
          "residual": 12.052748449542477,
          "mass_pm0.1": 127.6918385778458,
          "solve_resid": 6.867617904061254e-13
        },
        "0.9": {
          "lambda": -0.025831301694578486,
          "Delta": 5.070963483079262,
          "floor": 1.333969497055245,
          "plateau": 6.4049329801345065,
          "z1_times_a": 4.497946694779682,
          "n_zeros": 761,
          "lock_metric": 0.0030658627341504153,
          "residual": 13.166729243282433,
          "mass_pm0.1": 127.88295027859101,
          "solve_resid": 1.2366600020318642e-13
        },
        "0.99": {
          "lambda": -0.028414431864036332,
          "Delta": 5.037993177808347,
          "floor": 1.272757105974604,
          "plateau": 6.3107502837829506,
          "z1_times_a": 4.5002419528288815,
          "n_zeros": 761,
          "lock_metric": 0.0018016901302855674,
          "residual": 12.566089279144094,
          "mass_pm0.1": 127.72782983544735,
          "solve_resid": 2.3651958714205305e-14
        },
        "0.999": {
          "lambda": -0.028672744880982117,
          "Delta": 5.034476634521893,
          "floor": 1.2679657032940865,
          "plateau": 6.30244233781598,
          "z1_times_a": 4.495276414486893,
          "n_zeros": 762,
          "lock_metric": 0.0026471749147504637,
          "residual": 12.710218865379431,
          "mass_pm0.1": 127.70661909585449,
          "solve_resid": 1.413266823421088e-14
        }
      }
    },
    "12": {
      "lambda_a": -0.0682789599667037,
      "lambda_law_ratio": -27121745.659492664,
      "sister_corr": -0.014045368106618201,
      "sister_crossings": 137,
      "sister_cross_err": 18.87885138849781,
      "ladder": {
        "-1": {
          "lambda": -1.0,
          "Delta": 2.9442229398281423,
          "floor": 0.22834844487190686,
          "plateau": 3.172571384700049,
          "z1_times_a": 4.495304974166888,
          "n_zeros": 1145,
          "lock_metric": 0.032106115361490564,
          "residual": 57.59425795470206,
          "mass_pm0.1": 133.31147006008132,
          "solve_resid": 5.565591099499078e-16
        },
        "0": {
          "lambda": -0.0,
          "Delta": 145.87233394077197,
          "floor": -369.5573776739587,
          "plateau": -223.68504373318672,
          "z1_times_a": 47.08983339916813,
          "n_zeros": 788,
          "lock_metric": 0.11988236920414796,
          "residual": 10.704038663232183,
          "mass_pm0.1": 126.78597572681957,
          "solve_resid": 0.00035380049050859374
        },
        "0.5": {
          "lambda": -0.03413947998335185,
          "Delta": 4.517541168837466,
          "floor": 2.012961451365246,
          "plateau": 6.530502620202712,
          "z1_times_a": 4.495602611843745,
          "n_zeros": 1127,
          "lock_metric": 0.0016805564393911263,
          "residual": 12.576655387504829,
          "mass_pm0.1": 127.80026124326591,
          "solve_resid": 2.361326934047527e-10
        },
        "0.9": {
          "lambda": -0.06145106397003333,
          "Delta": 4.373132705161369,
          "floor": 1.5778486637685551,
          "plateau": 5.9509813689299245,
          "z1_times_a": 4.4955360310205545,
          "n_zeros": 1141,
          "lock_metric": 0.002769088717484152,
          "residual": 14.752940107360544,
          "mass_pm0.1": 128.0191898119376,
          "solve_resid": 3.98328418223779e-14
        },
        "0.99": {
          "lambda": -0.06759617036703666,
          "Delta": 4.345367791047291,
          "floor": 1.511240245787921,
          "plateau": 5.856608036835212,
          "z1_times_a": 4.495571310035841,
          "n_zeros": 1143,
          "lock_metric": 0.0030508525265727083,
          "residual": 15.875746711965263,
          "mass_pm0.1": 128.06515694909066,
          "solve_resid": 2.4872731506462405e-14
        },
        "0.999": {
          "lambda": -0.068210681006737,
          "Delta": 4.342626921736709,
          "floor": 1.505160225931791,
          "plateau": 5.847787147668501,
          "z1_times_a": 4.495984857538869,
          "n_zeros": 1144,
          "lock_metric": 0.003716572174764971,
          "residual": 15.417387806155247,
          "mass_pm0.1": 128.0996751837004,
          "solve_resid": 6.800740851599709e-15
        }
      }
    }
  },
  "elapsed_seconds": 307.2,
  "timestamp_utc": "2026-08-19T18:39:23.796254+00:00"
}

Source code

Python script (click to expand)
"""E-025 — task 2.13: lambda-flow numerics (D-042 §3, Suzuki's lever).

At fixed lambda = -1 the family D_{a,theta} equilibrates at the
consolidation boundary (linear-K law, D-042). The remaining channel:
lambda -> lambda_a^- (bottom of the Weil-form spectrum, lambda_a ~
e^{-1.65a}), where T_a(lambda) = Q - lambda M becomes near-singular
and the ground state v_a dominates — the regime of Suzuki's sister
conjecture (1.2) (c_a v^_a -> xi(1/2+iz) = Xi(z)).

Mechanism being tested: as lambda -> lambda_a^-, the deficiency
vectors v_pm(lambda) ~ v_a/(lambda_a - lambda), so the zeros of
W(a,theta;.) flow toward the zeros of v^_a; if v^_a ~ Xi, those are
the gamma's => locking.

Per a in {4, 8, 12}:
  A. lambda_a and ground state v_a: smallest generalized eigenpair of
     the pencil (Q, M) restricted to the mean-zero subspace (QR
     projection, dense eigh; n <= 2400).
  B. sister-conjecture observable: v^_a(z) = hat_FT * sum e^{izx} v_a
     on z-grid; correlation of Re v^_a with Xi(z) (flint xi), zero
     crossings vs the first gammas.
  C. lambda ladder: lambda/lambda_a in {-1(abs), 0, 0.5, 0.9, 0.99,
     0.999}:  K_lambda(z,z) on z-grid in [14,60] (valley depth
     Delta(lambda), floor, plateau); zeros of W (theta=pi) ->
     LOCKING metric: mean over first 20 gammas of dist(gamma, nearest
     W-zero)/(pi/2a) (1.0 = chance level); residual mass R(lambda).

Checks:
  V1. lambda_a positive and consistent with the e^{-1.65a} law
      (order of magnitude; D-017/D-019).
  V2. lambda=-1 baseline reproduces E-022: z1*a in [4.3,4.7],
      Delta within 0.05 of E-022b valley depth.
  V3. Levinson residuals sane at all ladder rungs
      (|T v - b|/|b| < 1e-6 except possibly the 0.999 rung, reported).
  V4. sister observable reported (correlation v^_a vs Xi).

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

import flint
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-025-lambda-flow.csv"
JSON = DATA / "E-025-lambda-flow.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
LAM0 = E16.LAM_SHIFT          # -1.0 baseline
A_LIST = [4.0, 8.0, 12.0]
LADDER_REL = [0.0, 0.5, 0.9, 0.99, 0.999]   # x lambda_a (plus lam=-1)
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 xi_real(z):
    """Xi(z) = xi(1/2 - i z) via flint (real on R)."""
    flint.ctx.prec = 120
    out = np.empty(len(z))
    for i, zz in enumerate(z):
        s = flint.acb(0.5, -float(zz))
        val = (0.5 * s * (s - 1) * flint.acb.pi() ** (-s / 2)
               * (s / 2).gamma() * s.zeta())
        out[i] = float(val.real)
    return out


def locate_zeros_pi(cp, x, h, z_max=Z_MAX, n_grid=N_GRID):
    zg = np.linspace(1e-3, z_max, n_grid)
    Vpr, _ = E16.V_and_dV(zg, cp, x, h)
    g = zg * Vpr.imag - Vpr.real

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

    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 ground_state(Q, M):
    """Smallest generalized eigenpair of (Q, M) on the mean-zero
    subspace (E-009 route: QR projection)."""
    n = Q.shape[0]
    Z = np.linalg.qr(np.ones((n, 1)), mode="complete")[0][:, 1:]
    Qp = Z.T @ Q @ Z
    Mp = Z.T @ M @ Z
    evals, evecs = scipy.linalg.eigh(Qp, Mp)
    lam_a = float(evals[0])
    v = Z @ evecs[:, 0]
    return lam_a, v


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]

    zgrid = np.arange(14.0, 60.0, 0.05)
    gsel = gam[(gam >= 14) & (gam < 60)]
    mids = (gsel[:-1] + gsel[1:]) / 2
    idxg = np.round((gsel - 14) / 0.05).astype(int)
    idxm = np.round((mids - 14) / 0.05).astype(int)
    XI = xi_real(zgrid)

    rows = []
    report = {"per_a": {}}
    v1_ok = v2_ok = v3_ok = True
    e022b_dip = {4.0: 2.1593, 8.0: 2.7352, 12.0: 2.9442}

    for a in A_LIST:
        ta = time.time()
        x, h, Q, M, b = E16.build(a, H)
        n = len(x)

        # A: ground state
        lam_a, v_a = ground_state(Q, M)
        if not (lam_a > 0):
            v1_ok = False
        law = np.exp(-1.65 * a)
        print(f"a={a:g}: lambda_a = {lam_a:.3e} (e^-1.65a = {law:.1e})",
              flush=True)

        # B: sister-conjecture observable
        E = np.exp(1j * np.outer(zgrid, x))
        vhat = E16.hat_FT(zgrid, h) * (E @ v_a)
        rv = vhat.real
        ca = float(np.dot(rv, XI) / np.dot(rv, rv))
        corr = float(np.corrcoef(rv, XI)[0, 1])
        # zero crossings of Re v^_a on grid
        sc = np.flatnonzero(np.sign(rv[:-1]) * np.sign(rv[1:]) < 0)
        cross = zgrid[sc]
        ncr = min(10, len(cross), len(gsel))
        xerr = float(np.mean(np.abs(cross[:ncr] - gsel[:ncr]))) \
            if ncr else float("nan")
        print(f"  sister: corr(v^,Xi) = {corr:+.4f}, {len(cross)} "
              f"crossings, mean |cross-gamma| (first {ncr}) = {xerr:.3f}",
              flush=True)

        per = {"lambda_a": lam_a, "lambda_law_ratio": lam_a / law,
               "sister_corr": corr, "sister_crossings": int(len(cross)),
               "sister_cross_err": xerr, "ladder": {}}

        # C: lambda ladder
        for tag, lam in ([("-1", LAM0)]
                         + [(f"{r:g}", r * lam_a) for r in LADDER_REL]):
            tc = Q[:, 0] - lam * (np.r_[2 * h / 3, h / 6,
                                        np.zeros(max(n - 2, 0))])
            u1 = scipy.linalg.solve_toeplitz((tc, tc), np.ones(n))
            s1 = u1.sum()
            T_dense = None  # built lazily for residual spot-checks

            def K1(z, _tc=tc, _u1=u1, _s1=s1, _chk=False):
                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
                kv = float(np.real(np.conj(bz) @ v))
                if _chk:
                    Tm = scipy.linalg.toeplitz(_tc)
                    rs = float(np.max(np.abs(
                        Tm @ v + (u0.sum() / _s1) * np.ones(n) - bz))
                        / max(1.0, float(np.max(np.abs(bz)))))
                    return kv, rs
                return kv, 0.0

            lg = np.empty(len(zgrid))
            resmax = 0.0
            for i, zz in enumerate(zgrid):
                kv, rs = K1(zz, _chk=(i % 100 == 0))
                lg[i] = np.log(max(kv, 1e-300))
                resmax = max(resmax, rs)
            if resmax > 1e-6:
                v3_ok = False
            dip = float(lg[idxm].mean() - lg[idxg].mean())
            floor = float(lg[idxg].mean())
            plate = float(lg[idxm].mean())

            # zeros of W (theta=pi) at this lambda (Schur form,
            # validated 3.6e-14 in E-022)
            u0p = scipy.linalg.solve_toeplitz((tc, tc), b[+1.0])
            cp = u0p - (u0p.sum() / s1) * u1
            zeros = locate_zeros_pi(cp, x, h)
            zm = zeros[zeros <= Z_METRIC]
            # locking: mean normalized distance of first 20 gammas
            d20 = []
            for g in gam[:20]:
                d20.append(np.min(np.abs(zm - g)))
            lock = float(np.mean(d20) / (np.pi / (2 * a)))
            # weights & residual
            ws = np.array([1.0 / K1(z)[0] for z in zm])
            near_idx = np.array([np.argmin(np.abs(zm - g)) for g in gam])
            resid = float(ws.sum() - ws[near_idx].sum())
            m01 = float(ws[np.minimum.reduce([
                np.abs(zm - g) for g in gam]).reshape(-1) <= 0.1].sum()) \
                if len(zm) else 0.0

            per["ladder"][tag] = {
                "lambda": lam, "Delta": dip, "floor": floor,
                "plateau": plate, "z1_times_a": float(zeros[0] * a),
                "n_zeros": int(len(zeros)),
                "lock_metric": lock, "residual": resid,
                "mass_pm0.1": m01, "solve_resid": resmax,
            }
            print(f"  lam={tag}*lam_a ({lam:.3e}): Delta={dip:.3f}, "
                  f"z1a={zeros[0] * a:.3f}, lock={lock:.3f}, "
                  f"resid={resid:.1f}, K-resid={resmax:.1e}", flush=True)
            for zz, ll in zip(zgrid, lg):
                rows.append((a, tag, zz, ll))

        # V2: baseline checks (lambda = -1)
        base = per["ladder"]["-1"]
        if not (4.3 < base["z1_times_a"] < 4.7):
            v2_ok = False
        if abs(base["Delta"] - e022b_dip[a]) > 0.05:
            v2_ok = False
        report["per_a"][f"{a:g}"] = per
        print(f"a={a:g} done ({time.time() - ta:.0f}s)", flush=True)

    checks = {"V1_lambda_a_positive_law": v1_ok,
              "V2_baseline_matches_E022": v2_ok,
              "V3_solve_residuals": v3_ok,
              "V4_sister_reported": True}

    import csv as csvmod
    with open(CSV, "w", newline="") as f:
        w = csvmod.writer(f)
        w.writerow(["a", "lambda_tag", "z", "logK"])
        for a, tag, zz, ll in rows:
            w.writerow([f"{a:g}", tag, f"{zz:.3f}", f"{ll:.6f}"])

    meta = {
        "experiment": "E-025",
        "task": "2.13: lambda-flow numerics (ground-state channel)",
        "script": "research/numerics/scripts/E-025-lambda-flow.py",
        "parameters": {"a_list": A_LIST, "ladder_rel": LADDER_REL,
                       "z_max": Z_MAX},
        "checks": checks,
        "key_values": report["per_a"],
        "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())