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 3 of 34 · 500/page · 16560 rows next →
# alambda_tagzlogK
1002 4 0 18.000 14.054803
1003 4 0 18.050 14.102861
1004 4 0 18.100 14.145394
1005 4 0 18.150 14.181038
1006 4 0 18.200 14.208903
1007 4 0 18.250 14.228415
1008 4 0 18.300 14.239210
1009 4 0 18.350 14.241052
1010 4 0 18.400 14.233791
1011 4 0 18.450 14.217350
1012 4 0 18.500 14.191730
1013 4 0 18.550 14.157045
1014 4 0 18.600 14.113571
1015 4 0 18.650 14.061820
1016 4 0 18.700 14.002626
1017 4 0 18.750 13.937252
1018 4 0 18.800 13.867481
1019 4 0 18.850 13.795690
1020 4 0 18.900 13.724838
1021 4 0 18.950 13.658324
1022 4 0 19.000 13.599663
1023 4 0 19.050 13.551973
1024 4 0 19.100 13.517372
1025 4 0 19.150 13.496473
1026 4 0 19.200 13.488168
1027 4 0 19.250 13.489813
1028 4 0 19.300 13.497735
1029 4 0 19.350 13.507858
1030 4 0 19.400 13.516273
1031 4 0 19.450 13.519641
1032 4 0 19.500 13.515432
1033 4 0 19.550 13.502053
1034 4 0 19.600 13.478927
1035 4 0 19.650 13.446577
1036 4 0 19.700 13.406715
1037 4 0 19.750 13.362315
1038 4 0 19.800 13.317585
1039 4 0 19.850 13.277684
1040 4 0 19.900 13.248064
1041 4 0 19.950 13.233398
1042 4 0 20.000 13.236362
1043 4 0 20.050 13.256754
1044 4 0 20.100 13.291409
1045 4 0 20.150 13.334931
1046 4 0 20.200 13.380841
1047 4 0 20.250 13.422625
1048 4 0 20.300 13.454366
1049 4 0 20.350 13.470966
1050 4 0 20.400 13.468057
1051 4 0 20.450 13.441758
1052 4 0 20.500 13.388338
1053 4 0 20.550 13.303835
1054 4 0 20.600 13.183591
1055 4 0 20.650 13.021608
1056 4 0 20.700 12.809561
1057 4 0 20.750 12.535054
1058 4 0 20.800 12.178168
1059 4 0 20.850 11.703589
1060 4 0 20.900 11.038947
1061 4 0 20.950 9.993295
1062 4 0 21.000 7.620063
1063 4 0 21.050 8.077387
1064 4 0 21.100 10.096041
1065 4 0 21.150 11.041648
1066 4 0 21.200 11.642366
1067 4 0 21.250 12.065032
1068 4 0 21.300 12.375434
1069 4 0 21.350 12.606339
1070 4 0 21.400 12.776455
1071 4 0 21.450 12.897500
1072 4 0 21.500 12.977357
1073 4 0 21.550 13.021677
1074 4 0 21.600 13.034804
1075 4 0 21.650 13.020377
1076 4 0 21.700 12.981808
1077 4 0 21.750 12.922729
1078 4 0 21.800 12.847505
1079 4 0 21.850 12.761824
1080 4 0 21.900 12.673361
1081 4 0 21.950 12.592271
1082 4 0 22.000 12.531016
1083 4 0 22.050 12.502804
1084 4 0 22.100 12.518365
1085 4 0 22.150 12.582259
1086 4 0 22.200 12.691179
1087 4 0 22.250 12.835617
1088 4 0 22.300 13.003537
1089 4 0 22.350 13.183595
1090 4 0 22.400 13.366715
1091 4 0 22.450 13.546306
1092 4 0 22.500 13.717829
1093 4 0 22.550 13.878223
1094 4 0 22.600 14.025428
1095 4 0 22.650 14.158025
1096 4 0 22.700 14.275007
1097 4 0 22.750 14.375612
1098 4 0 22.800 14.459230
1099 4 0 22.850 14.525328
1100 4 0 22.900 14.573401
1101 4 0 22.950 14.602938
1102 4 0 23.000 14.613396
1103 4 0 23.050 14.604174
1104 4 0 23.100 14.574602
1105 4 0 23.150 14.523931
1106 4 0 23.200 14.451346
1107 4 0 23.250 14.355999
1108 4 0 23.300 14.237108
1109 4 0 23.350 14.094156
1110 4 0 23.400 13.927306
1111 4 0 23.450 13.738188
1112 4 0 23.500 13.531342
1113 4 0 23.550 13.316580
1114 4 0 23.600 13.111923
1115 4 0 23.650 12.944755
1116 4 0 23.700 12.845724
1117 4 0 23.750 12.832972
1118 4 0 23.800 12.899052
1119 4 0 23.850 13.016518
1120 4 0 23.900 13.154928
1121 4 0 23.950 13.291688
1122 4 0 24.000 13.413399
1123 4 0 24.050 13.513216
1124 4 0 24.100 13.588094
1125 4 0 24.150 13.636938
1126 4 0 24.200 13.659527
1127 4 0 24.250 13.655932
1128 4 0 24.300 13.626197
1129 4 0 24.350 13.570143
1130 4 0 24.400 13.487236
1131 4 0 24.450 13.376459
1132 4 0 24.500 13.236146
1133 4 0 24.550 13.063763
1134 4 0 24.600 12.855547
1135 4 0 24.650 12.605916
1136 4 0 24.700 12.306438
1137 4 0 24.750 11.943877
1138 4 0 24.800 11.496133
1139 4 0 24.850 10.922590
1140 4 0 24.900 10.135974
1141 4 0 24.950 8.884814
1142 4 0 25.000 5.380392
1143 4 0 25.050 7.869715
1144 4 0 25.100 9.434576
1145 4 0 25.150 10.234428
1146 4 0 25.200 10.748022
1147 4 0 25.250 11.106996
1148 4 0 25.300 11.366980
1149 4 0 25.350 11.556990
1150 4 0 25.400 11.694435
1151 4 0 25.450 11.791054
1152 4 0 25.500 11.855730
1153 4 0 25.550 11.896010
1154 4 0 25.600 11.918992
1155 4 0 25.650 11.931772
1156 4 0 25.700 11.941479
1157 4 0 25.750 11.954863
1158 4 0 25.800 11.977477
1159 4 0 25.850 12.012732
1160 4 0 25.900 12.061254
1161 4 0 25.950 12.120919
1162 4 0 26.000 12.187575
1163 4 0 26.050 12.256117
1164 4 0 26.100 12.321473
1165 4 0 26.150 12.379266
1166 4 0 26.200 12.426131
1167 4 0 26.250 12.459797
1168 4 0 26.300 12.479058
1169 4 0 26.350 12.483741
1170 4 0 26.400 12.474700
1171 4 0 26.450 12.453858
1172 4 0 26.500 12.424254
1173 4 0 26.550 12.390023
1174 4 0 26.600 12.356188
1175 4 0 26.650 12.328129
1176 4 0 26.700 12.310698
1177 4 0 26.750 12.307151
1178 4 0 26.800 12.318285
1179 4 0 26.850 12.342232
1180 4 0 26.900 12.375008
1181 4 0 26.950 12.411576
1182 4 0 27.000 12.446970
1183 4 0 27.050 12.477167
1184 4 0 27.100 12.499654
1185 4 0 27.150 12.513766
1186 4 0 27.200 12.520925
1187 4 0 27.250 12.524793
1188 4 0 27.300 12.531225
1189 4 0 27.350 12.547741
1190 4 0 27.400 12.582209
1191 4 0 27.450 12.640792
1192 4 0 27.500 12.725861
1193 4 0 27.550 12.835036
1194 4 0 27.600 12.961966
1195 4 0 27.650 13.098294
1196 4 0 27.700 13.235638
1197 4 0 27.750 13.366828
1198 4 0 27.800 13.486315
1199 4 0 27.850 13.590061
1200 4 0 27.900 13.675207
1201 4 0 27.950 13.739712
1202 4 0 28.000 13.782043
1203 4 0 28.050 13.800933
1204 4 0 28.100 13.795191
1205 4 0 28.150 13.763565
1206 4 0 28.200 13.704618
1207 4 0 28.250 13.616637
1208 4 0 28.300 13.497555
1209 4 0 28.350 13.344923
1210 4 0 28.400 13.156014
1211 4 0 28.450 12.928272
1212 4 0 28.500 12.660681
1213 4 0 28.550 12.357443
1214 4 0 28.600 12.036796
1215 4 0 28.650 11.746843
1216 4 0 28.700 11.572415
1217 4 0 28.750 11.583621
1218 4 0 28.800 11.755328
1219 4 0 28.850 11.998872
1220 4 0 28.900 12.244881
1221 4 0 28.950 12.461261
1222 4 0 29.000 12.637666
1223 4 0 29.050 12.772757
1224 4 0 29.100 12.868241
1225 4 0 29.150 12.926548
1226 4 0 29.200 12.950012
1227 4 0 29.250 12.940658
1228 4 0 29.300 12.900221
1229 4 0 29.350 12.830283
1230 4 0 29.400 12.732489
1231 4 0 29.450 12.608858
1232 4 0 29.500 12.462219
1233 4 0 29.550 12.296782
1234 4 0 29.600 12.118796
1235 4 0 29.650 11.937018
1236 4 0 29.700 11.762452
1237 4 0 29.750 11.606564
1238 4 0 29.800 11.477773
1239 4 0 29.850 11.377649
1240 4 0 29.900 11.299387
1241 4 0 29.950 11.229725
1242 4 0 30.000 11.152507
1243 4 0 30.050 11.051311
1244 4 0 30.100 10.909934
1245 4 0 30.150 10.710798
1246 4 0 30.200 10.431129
1247 4 0 30.250 10.034875
1248 4 0 30.300 9.451897
1249 4 0 30.350 8.502967
1250 4 0 30.400 6.357917
1251 4 0 30.450 6.418522
1252 4 0 30.500 8.632238
1253 4 0 30.550 9.661027
1254 4 0 30.600 10.326256
1255 4 0 30.650 10.806026
1256 4 0 30.700 11.169484
1257 4 0 30.750 11.450893
1258 4 0 30.800 11.669821
1259 4 0 30.850 11.838578
1260 4 0 30.900 11.965497
1261 4 0 30.950 12.056584
1262 4 0 31.000 12.116441
1263 4 0 31.050 12.148826
1264 4 0 31.100 12.157036
1265 4 0 31.150 12.144178
1266 4 0 31.200 12.113372
1267 4 0 31.250 12.067904
1268 4 0 31.300 12.011308
1269 4 0 31.350 11.947351
1270 4 0 31.400 11.879901
1271 4 0 31.450 11.812651
1272 4 0 31.500 11.748737
1273 4 0 31.550 11.690345
1274 4 0 31.600 11.638426
1275 4 0 31.650 11.592667
1276 4 0 31.700 11.551726
1277 4 0 31.750 11.513672
1278 4 0 31.800 11.476495
1279 4 0 31.850 11.438558
1280 4 0 31.900 11.398902
1281 4 0 31.950 11.357391
1282 4 0 32.000 11.314671
1283 4 0 32.050 11.271967
1284 4 0 32.100 11.230704
1285 4 0 32.150 11.192017
1286 4 0 32.200 11.156224
1287 4 0 32.250 11.122406
1288 4 0 32.300 11.088188
1289 4 0 32.350 11.049777
1290 4 0 32.400 11.002162
1291 4 0 32.450 10.939338
1292 4 0 32.500 10.854391
1293 4 0 32.550 10.739291
1294 4 0 32.600 10.584244
1295 4 0 32.650 10.376303
1296 4 0 32.700 10.096527
1297 4 0 32.750 9.713698
1298 4 0 32.800 9.168018
1299 4 0 32.850 8.315773
1300 4 0 32.900 6.604350
1301 4 0 32.950 4.951701
1302 4 0 33.000 7.918532
1303 4 0 33.050 9.082067
1304 4 0 33.100 9.813262
1305 4 0 33.150 10.338632
1306 4 0 33.200 10.739596
1307 4 0 33.250 11.054793
1308 4 0 33.300 11.305597
1309 4 0 33.350 11.505047
1310 4 0 33.400 11.661651
1311 4 0 33.450 11.781234
1312 4 0 33.500 11.867929
1313 4 0 33.550 11.924749
1314 4 0 33.600 11.953939
1315 4 0 33.650 11.957218
1316 4 0 33.700 11.935959
1317 4 0 33.750 11.891352
1318 4 0 33.800 11.824595
1319 4 0 33.850 11.737142
1320 4 0 33.900 11.631097
1321 4 0 33.950 11.509810
1322 4 0 34.000 11.378782
1323 4 0 34.050 11.246846
1324 4 0 34.100 11.127248
1325 4 0 34.150 11.037474
1326 4 0 34.200 10.996016
1327 4 0 34.250 11.015653
1328 4 0 34.300 11.097082
1329 4 0 34.350 11.228703
1330 4 0 34.400 11.392780
1331 4 0 34.450 11.572272
1332 4 0 34.500 11.754257
1333 4 0 34.550 11.930230
1334 4 0 34.600 12.095061
1335 4 0 34.650 12.245816
1336 4 0 34.700 12.380874
1337 4 0 34.750 12.499334
1338 4 0 34.800 12.600672
1339 4 0 34.850 12.684529
1340 4 0 34.900 12.750597
1341 4 0 34.950 12.798550
1342 4 0 35.000 12.828007
1343 4 0 35.050 12.838502
1344 4 0 35.100 12.829467
1345 4 0 35.150 12.800223
1346 4 0 35.200 12.749959
1347 4 0 35.250 12.677735
1348 4 0 35.300 12.582489
1349 4 0 35.350 12.463069
1350 4 0 35.400 12.318332
1351 4 0 35.450 12.147367
1352 4 0 35.500 11.949960
1353 4 0 35.550 11.727550
1354 4 0 35.600 11.485064
1355 4 0 35.650 11.234047
1356 4 0 35.700 10.996676
1357 4 0 35.750 10.806915
1358 4 0 35.800 10.700512
1359 4 0 35.850 10.692569
1360 4 0 35.900 10.764908
1361 4 0 35.950 10.880638
1362 4 0 36.000 11.006104
1363 4 0 36.050 11.119685
1364 4 0 36.100 11.210155
1365 4 0 36.150 11.272720
1366 4 0 36.200 11.306083
1367 4 0 36.250 11.310827
1368 4 0 36.300 11.288701
1369 4 0 36.350 11.242445
1370 4 0 36.400 11.175948
1371 4 0 36.450 11.094571
1372 4 0 36.500 11.005460
1373 4 0 36.550 10.917519
1374 4 0 36.600 10.840613
1375 4 0 36.650 10.783669
1376 4 0 36.700 10.752097
1377 4 0 36.750 10.745813
1378 4 0 36.800 10.759204
1379 4 0 36.850 10.783063
1380 4 0 36.900 10.807130
1381 4 0 36.950 10.821948
1382 4 0 37.000 10.819600
1383 4 0 37.050 10.793606
1384 4 0 37.100 10.738401
1385 4 0 37.150 10.648634
1386 4 0 37.200 10.518346
1387 4 0 37.250 10.339931
1388 4 0 37.300 10.102540
1389 4 0 37.350 9.789184
1390 4 0 37.400 9.370562
1391 4 0 37.450 8.789151
1392 4 0 37.500 7.905658
1393 4 0 37.550 6.190710
1394 4 0 37.600 4.285524
1395 4 0 37.650 7.328633
1396 4 0 37.700 8.471097
1397 4 0 37.750 9.174853
1398 4 0 37.800 9.673239
1399 4 0 37.850 10.049645
1400 4 0 37.900 10.343639
1401 4 0 37.950 10.577155
1402 4 0 38.000 10.763610
1403 4 0 38.050 10.911780
1404 4 0 38.100 11.027682
1405 4 0 38.150 11.115591
1406 4 0 38.200 11.178656
1407 4 0 38.250 11.219300
1408 4 0 38.300 11.239548
1409 4 0 38.350 11.241315
1410 4 0 38.400 11.226728
1411 4 0 38.450 11.198512
1412 4 0 38.500 11.160440
1413 4 0 38.550 11.117824
1414 4 0 38.600 11.077871
1415 4 0 38.650 11.049586
1416 4 0 38.700 11.042732
1417 4 0 38.750 11.065669
1418 4 0 38.800 11.122681
1419 4 0 38.850 11.212307
1420 4 0 38.900 11.327881
1421 4 0 38.950 11.459874
1422 4 0 39.000 11.598504
1423 4 0 39.050 11.735430
1424 4 0 39.100 11.864327
1425 4 0 39.150 11.980769
1426 4 0 39.200 12.081815
1427 4 0 39.250 12.165581
1428 4 0 39.300 12.230886
1429 4 0 39.350 12.276993
1430 4 0 39.400 12.303434
1431 4 0 39.450 12.309899
1432 4 0 39.500 12.296166
1433 4 0 39.550 12.262072
1434 4 0 39.600 12.207510
1435 4 0 39.650 12.132463
1436 4 0 39.700 12.037065
1437 4 0 39.750 11.921721
1438 4 0 39.800 11.787287
1439 4 0 39.850 11.635348
1440 4 0 39.900 11.468588
1441 4 0 39.950 11.291246
1442 4 0 40.000 11.109523
1443 4 0 40.050 10.931646
1444 4 0 40.100 10.767097
1445 4 0 40.150 10.624624
1446 4 0 40.200 10.509363
1447 4 0 40.250 10.420505
1448 4 0 40.300 10.351093
1449 4 0 40.350 10.290039
1450 4 0 40.400 10.224849
1451 4 0 40.450 10.143517
1452 4 0 40.500 10.035053
1453 4 0 40.550 9.888931
1454 4 0 40.600 9.693743
1455 4 0 40.650 9.434975
1456 4 0 40.700 9.091021
1457 4 0 40.750 8.624578
1458 4 0 40.800 7.959107
1459 4 0 40.850 6.888427
1460 4 0 40.900 4.307117
1461 4 0 40.950 5.317984
1462 4 0 41.000 7.201771
1463 4 0 41.050 8.124414
1464 4 0 41.100 8.720427
1465 4 0 41.150 9.145223
1466 4 0 41.200 9.461774
1467 4 0 41.250 9.702142
1468 4 0 41.300 9.885083
1469 4 0 41.350 10.022705
1470 4 0 41.400 10.123447
1471 4 0 41.450 10.193587
1472 4 0 41.500 10.238065
1473 4 0 41.550 10.260975
1474 4 0 41.600 10.265860
1475 4 0 41.650 10.255918
1476 4 0 41.700 10.234151
1477 4 0 41.750 10.203489
1478 4 0 41.800 10.166917
1479 4 0 41.850 10.127606
1480 4 0 41.900 10.089025
1481 4 0 41.950 10.054988
1482 4 0 42.000 10.029569
1483 4 0 42.050 10.016786
1484 4 0 42.100 10.020041
1485 4 0 42.150 10.041416
1486 4 0 42.200 10.081056
1487 4 0 42.250 10.136946
1488 4 0 42.300 10.205184
1489 4 0 42.350 10.280648
1490 4 0 42.400 10.357767
1491 4 0 42.450 10.431157
1492 4 0 42.500 10.495979
1493 4 0 42.550 10.548058
1494 4 0 42.600 10.583835
1495 4 0 42.650 10.600210
1496 4 0 42.700 10.594351
1497 4 0 42.750 10.563476
1498 4 0 42.800 10.504613
1499 4 0 42.850 10.414317
1500 4 0 42.900 10.288297
1501 4 0 42.950 10.120864

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())