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 15 of 34 · 500/page · 16560 rows next →
# alambda_tagzlogK
7002 8 0 42.000 -690.775528
7003 8 0 42.050 -690.775528
7004 8 0 42.100 -690.775528
7005 8 0 42.150 -690.775528
7006 8 0 42.200 -690.775528
7007 8 0 42.250 -690.775528
7008 8 0 42.300 -690.775528
7009 8 0 42.350 -690.775528
7010 8 0 42.400 -690.775528
7011 8 0 42.450 -690.775528
7012 8 0 42.500 -690.775528
7013 8 0 42.550 -690.775528
7014 8 0 42.600 -690.775528
7015 8 0 42.650 -690.775528
7016 8 0 42.700 -690.775528
7017 8 0 42.750 -690.775528
7018 8 0 42.800 -690.775528
7019 8 0 42.850 -690.775528
7020 8 0 42.900 -690.775528
7021 8 0 42.950 -690.775528
7022 8 0 43.000 -690.775528
7023 8 0 43.050 -690.775528
7024 8 0 43.100 -690.775528
7025 8 0 43.150 -690.775528
7026 8 0 43.200 -690.775528
7027 8 0 43.250 6.453991
7028 8 0 43.300 5.171061
7029 8 0 43.350 4.709030
7030 8 0 43.400 4.493236
7031 8 0 43.450 -690.775528
7032 8 0 43.500 -690.775528
7033 8 0 43.550 -690.775528
7034 8 0 43.600 -690.775528
7035 8 0 43.650 -690.775528
7036 8 0 43.700 -690.775528
7037 8 0 43.750 -690.775528
7038 8 0 43.800 -690.775528
7039 8 0 43.850 -690.775528
7040 8 0 43.900 -690.775528
7041 8 0 43.950 -690.775528
7042 8 0 44.000 -690.775528
7043 8 0 44.050 -690.775528
7044 8 0 44.100 10.264410
7045 8 0 44.150 10.165380
7046 8 0 44.200 -690.775528
7047 8 0 44.250 -690.775528
7048 8 0 44.300 -690.775528
7049 8 0 44.350 -690.775528
7050 8 0 44.400 -690.775528
7051 8 0 44.450 -690.775528
7052 8 0 44.500 -690.775528
7053 8 0 44.550 -690.775528
7054 8 0 44.600 -690.775528
7055 8 0 44.650 -690.775528
7056 8 0 44.700 -690.775528
7057 8 0 44.750 -690.775528
7058 8 0 44.800 -690.775528
7059 8 0 44.850 -690.775528
7060 8 0 44.900 -690.775528
7061 8 0 44.950 -690.775528
7062 8 0 45.000 -690.775528
7063 8 0 45.050 6.836399
7064 8 0 45.100 9.307155
7065 8 0 45.150 9.803187
7066 8 0 45.200 9.822164
7067 8 0 45.250 9.134895
7068 8 0 45.300 -690.775528
7069 8 0 45.350 -690.775528
7070 8 0 45.400 -690.775528
7071 8 0 45.450 -690.775528
7072 8 0 45.500 -690.775528
7073 8 0 45.550 -690.775528
7074 8 0 45.600 -690.775528
7075 8 0 45.650 -690.775528
7076 8 0 45.700 -690.775528
7077 8 0 45.750 -690.775528
7078 8 0 45.800 -690.775528
7079 8 0 45.850 -690.775528
7080 8 0 45.900 -690.775528
7081 8 0 45.950 -690.775528
7082 8 0 46.000 -690.775528
7083 8 0 46.050 -690.775528
7084 8 0 46.100 -690.775528
7085 8 0 46.150 -690.775528
7086 8 0 46.200 -690.775528
7087 8 0 46.250 -690.775528
7088 8 0 46.300 9.821482
7089 8 0 46.350 -690.775528
7090 8 0 46.400 -690.775528
7091 8 0 46.450 -690.775528
7092 8 0 46.500 -690.775528
7093 8 0 46.550 -690.775528
7094 8 0 46.600 -690.775528
7095 8 0 46.650 -690.775528
7096 8 0 46.700 -690.775528
7097 8 0 46.750 -690.775528
7098 8 0 46.800 -690.775528
7099 8 0 46.850 -690.775528
7100 8 0 46.900 -690.775528
7101 8 0 46.950 -690.775528
7102 8 0 47.000 -690.775528
7103 8 0 47.050 -690.775528
7104 8 0 47.100 -690.775528
7105 8 0 47.150 -690.775528
7106 8 0 47.200 -690.775528
7107 8 0 47.250 -690.775528
7108 8 0 47.300 -690.775528
7109 8 0 47.350 -690.775528
7110 8 0 47.400 -690.775528
7111 8 0 47.450 -690.775528
7112 8 0 47.500 -690.775528
7113 8 0 47.550 -690.775528
7114 8 0 47.600 -690.775528
7115 8 0 47.650 -690.775528
7116 8 0 47.700 -690.775528
7117 8 0 47.750 -690.775528
7118 8 0 47.800 -690.775528
7119 8 0 47.850 7.984300
7120 8 0 47.900 7.044960
7121 8 0 47.950 -690.775528
7122 8 0 48.000 -690.775528
7123 8 0 48.050 -690.775528
7124 8 0 48.100 -690.775528
7125 8 0 48.150 -690.775528
7126 8 0 48.200 -690.775528
7127 8 0 48.250 -690.775528
7128 8 0 48.300 -690.775528
7129 8 0 48.350 -690.775528
7130 8 0 48.400 -690.775528
7131 8 0 48.450 -690.775528
7132 8 0 48.500 -690.775528
7133 8 0 48.550 -690.775528
7134 8 0 48.600 -690.775528
7135 8 0 48.650 -690.775528
7136 8 0 48.700 -690.775528
7137 8 0 48.750 -690.775528
7138 8 0 48.800 -690.775528
7139 8 0 48.850 -690.775528
7140 8 0 48.900 -690.775528
7141 8 0 48.950 -690.775528
7142 8 0 49.000 -690.775528
7143 8 0 49.050 -690.775528
7144 8 0 49.100 -690.775528
7145 8 0 49.150 -690.775528
7146 8 0 49.200 7.595336
7147 8 0 49.250 9.411381
7148 8 0 49.300 9.774278
7149 8 0 49.350 9.551455
7150 8 0 49.400 6.593158
7151 8 0 49.450 -690.775528
7152 8 0 49.500 -690.775528
7153 8 0 49.550 -690.775528
7154 8 0 49.600 -690.775528
7155 8 0 49.650 -690.775528
7156 8 0 49.700 -690.775528
7157 8 0 49.750 -690.775528
7158 8 0 49.800 -690.775528
7159 8 0 49.850 -690.775528
7160 8 0 49.900 -690.775528
7161 8 0 49.950 -690.775528
7162 8 0 50.000 -690.775528
7163 8 0 50.050 -690.775528
7164 8 0 50.100 -690.775528
7165 8 0 50.150 -690.775528
7166 8 0 50.200 -690.775528
7167 8 0 50.250 -690.775528
7168 8 0 50.300 -690.775528
7169 8 0 50.350 -690.775528
7170 8 0 50.400 -690.775528
7171 8 0 50.450 -690.775528
7172 8 0 50.500 -690.775528
7173 8 0 50.550 -690.775528
7174 8 0 50.600 -690.775528
7175 8 0 50.650 -690.775528
7176 8 0 50.700 -690.775528
7177 8 0 50.750 -690.775528
7178 8 0 50.800 -690.775528
7179 8 0 50.850 -690.775528
7180 8 0 50.900 -690.775528
7181 8 0 50.950 -690.775528
7182 8 0 51.000 -690.775528
7183 8 0 51.050 -690.775528
7184 8 0 51.100 -690.775528
7185 8 0 51.150 -690.775528
7186 8 0 51.200 -690.775528
7187 8 0 51.250 -690.775528
7188 8 0 51.300 8.582350
7189 8 0 51.350 9.052029
7190 8 0 51.400 9.143661
7191 8 0 51.450 9.106383
7192 8 0 51.500 9.013322
7193 8 0 51.550 8.804646
7194 8 0 51.600 7.900780
7195 8 0 51.650 -690.775528
7196 8 0 51.700 -690.775528
7197 8 0 51.750 -690.775528
7198 8 0 51.800 -690.775528
7199 8 0 51.850 -690.775528
7200 8 0 51.900 -690.775528
7201 8 0 51.950 -690.775528
7202 8 0 52.000 -690.775528
7203 8 0 52.050 -690.775528
7204 8 0 52.100 -690.775528
7205 8 0 52.150 -690.775528
7206 8 0 52.200 -690.775528
7207 8 0 52.250 -690.775528
7208 8 0 52.300 -690.775528
7209 8 0 52.350 -690.775528
7210 8 0 52.400 -690.775528
7211 8 0 52.450 9.056816
7212 8 0 52.500 9.050057
7213 8 0 52.550 -690.775528
7214 8 0 52.600 -690.775528
7215 8 0 52.650 -690.775528
7216 8 0 52.700 -690.775528
7217 8 0 52.750 -690.775528
7218 8 0 52.800 -690.775528
7219 8 0 52.850 -690.775528
7220 8 0 52.900 -690.775528
7221 8 0 52.950 -690.775528
7222 8 0 53.000 -690.775528
7223 8 0 53.050 -690.775528
7224 8 0 53.100 -690.775528
7225 8 0 53.150 -690.775528
7226 8 0 53.200 -690.775528
7227 8 0 53.250 -690.775528
7228 8 0 53.300 -690.775528
7229 8 0 53.350 -690.775528
7230 8 0 53.400 -690.775528
7231 8 0 53.450 -690.775528
7232 8 0 53.500 -690.775528
7233 8 0 53.550 9.309570
7234 8 0 53.600 6.269866
7235 8 0 53.650 -690.775528
7236 8 0 53.700 -690.775528
7237 8 0 53.750 -690.775528
7238 8 0 53.800 -690.775528
7239 8 0 53.850 -690.775528
7240 8 0 53.900 -690.775528
7241 8 0 53.950 -690.775528
7242 8 0 54.000 -690.775528
7243 8 0 54.050 -690.775528
7244 8 0 54.100 -690.775528
7245 8 0 54.150 -690.775528
7246 8 0 54.200 -690.775528
7247 8 0 54.250 -690.775528
7248 8 0 54.300 -690.775528
7249 8 0 54.350 -690.775528
7250 8 0 54.400 -690.775528
7251 8 0 54.450 -690.775528
7252 8 0 54.500 -690.775528
7253 8 0 54.550 -690.775528
7254 8 0 54.600 -690.775528
7255 8 0 54.650 7.332124
7256 8 0 54.700 9.328544
7257 8 0 54.750 8.219786
7258 8 0 54.800 -690.775528
7259 8 0 54.850 -690.775528
7260 8 0 54.900 -690.775528
7261 8 0 54.950 -690.775528
7262 8 0 55.000 -690.775528
7263 8 0 55.050 -690.775528
7264 8 0 55.100 -690.775528
7265 8 0 55.150 10.366727
7266 8 0 55.200 11.150424
7267 8 0 55.250 11.198878
7268 8 0 55.300 10.528038
7269 8 0 55.350 -690.775528
7270 8 0 55.400 -690.775528
7271 8 0 55.450 -690.775528
7272 8 0 55.500 -690.775528
7273 8 0 55.550 -690.775528
7274 8 0 55.600 -690.775528
7275 8 0 55.650 -690.775528
7276 8 0 55.700 -690.775528
7277 8 0 55.750 -690.775528
7278 8 0 55.800 8.503806
7279 8 0 55.850 8.865741
7280 8 0 55.900 -690.775528
7281 8 0 55.950 -690.775528
7282 8 0 56.000 -690.775528
7283 8 0 56.050 -690.775528
7284 8 0 56.100 -690.775528
7285 8 0 56.150 -690.775528
7286 8 0 56.200 -690.775528
7287 8 0 56.250 -690.775528
7288 8 0 56.300 1.403854
7289 8 0 56.350 6.683171
7290 8 0 56.400 5.652736
7291 8 0 56.450 1.043138
7292 8 0 56.500 5.471332
7293 8 0 56.550 1.615458
7294 8 0 56.600 -690.775528
7295 8 0 56.650 -690.775528
7296 8 0 56.700 -690.775528
7297 8 0 56.750 -690.775528
7298 8 0 56.800 -690.775528
7299 8 0 56.850 -690.775528
7300 8 0 56.900 -690.775528
7301 8 0 56.950 -690.775528
7302 8 0 57.000 -690.775528
7303 8 0 57.050 -690.775528
7304 8 0 57.100 -690.775528
7305 8 0 57.150 -690.775528
7306 8 0 57.200 -690.775528
7307 8 0 57.250 -690.775528
7308 8 0 57.300 -690.775528
7309 8 0 57.350 -690.775528
7310 8 0 57.400 -690.775528
7311 8 0 57.450 -690.775528
7312 8 0 57.500 -690.775528
7313 8 0 57.550 -690.775528
7314 8 0 57.600 -690.775528
7315 8 0 57.650 -690.775528
7316 8 0 57.700 -690.775528
7317 8 0 57.750 -690.775528
7318 8 0 57.800 -690.775528
7319 8 0 57.850 -690.775528
7320 8 0 57.900 -690.775528
7321 8 0 57.950 -690.775528
7322 8 0 58.000 -690.775528
7323 8 0 58.050 -690.775528
7324 8 0 58.100 7.616699
7325 8 0 58.150 8.486805
7326 8 0 58.200 8.561492
7327 8 0 58.250 8.289620
7328 8 0 58.300 7.591337
7329 8 0 58.350 1.372148
7330 8 0 58.400 -690.775528
7331 8 0 58.450 -690.775528
7332 8 0 58.500 -690.775528
7333 8 0 58.550 7.814748
7334 8 0 58.600 8.721500
7335 8 0 58.650 9.218835
7336 8 0 58.700 9.506884
7337 8 0 58.750 9.643373
7338 8 0 58.800 9.648393
7339 8 0 58.850 9.524295
7340 8 0 58.900 9.258706
7341 8 0 58.950 8.816966
7342 8 0 59.000 8.107111
7343 8 0 59.050 6.734787
7344 8 0 59.100 -690.775528
7345 8 0 59.150 -690.775528
7346 8 0 59.200 -690.775528
7347 8 0 59.250 -690.775528
7348 8 0 59.300 -690.775528
7349 8 0 59.350 0.186250
7350 8 0 59.400 5.034442
7351 8 0 59.450 6.830270
7352 8 0 59.500 7.926527
7353 8 0 59.550 8.690672
7354 8 0 59.600 9.249032
7355 8 0 59.650 9.659281
7356 8 0 59.700 9.950694
7357 8 0 59.750 10.137660
7358 8 0 59.800 10.224869
7359 8 0 59.850 10.208767
7360 8 0 59.900 10.075960
7361 8 0 59.950 9.796168
7362 8 0.5 14.000 5.915900
7363 8 0.5 14.050 5.085359
7364 8 0.5 14.100 3.381363
7365 8 0.5 14.150 1.878719
7366 8 0.5 14.200 4.594212
7367 8 0.5 14.250 5.648681
7368 8 0.5 14.300 6.249699
7369 8 0.5 14.350 6.619827
7370 8 0.5 14.400 6.842678
7371 8 0.5 14.450 6.962252
7372 8 0.5 14.500 7.008987
7373 8 0.5 14.550 7.009282
7374 8 0.5 14.600 6.988394
7375 8 0.5 14.650 6.968438
7376 8 0.5 14.700 6.963245
7377 8 0.5 14.750 6.974780
7378 8 0.5 14.800 6.995390
7379 8 0.5 14.850 7.014427
7380 8 0.5 14.900 7.024218
7381 8 0.5 14.950 7.022655
7382 8 0.5 15.000 7.012790
7383 8 0.5 15.050 7.000623
7384 8 0.5 15.100 6.992100
7385 8 0.5 15.150 6.990505
7386 8 0.5 15.200 6.995467
7387 8 0.5 15.250 7.003934
7388 8 0.5 15.300 7.012205
7389 8 0.5 15.350 7.017686
7390 8 0.5 15.400 7.019590
7391 8 0.5 15.450 7.018636
7392 8 0.5 15.500 7.016204
7393 8 0.5 15.550 7.013513
7394 8 0.5 15.600 7.011208
7395 8 0.5 15.650 7.009442
7396 8 0.5 15.700 7.008218
7397 8 0.5 15.750 7.007665
7398 8 0.5 15.800 7.008037
7399 8 0.5 15.850 7.009469
7400 8 0.5 15.900 7.011721
7401 8 0.5 15.950 7.014135
7402 8 0.5 16.000 7.015881
7403 8 0.5 16.050 7.016354
7404 8 0.5 16.100 7.015487
7405 8 0.5 16.150 7.013797
7406 8 0.5 16.200 7.012121
7407 8 0.5 16.250 7.011197
7408 8 0.5 16.300 7.011312
7409 8 0.5 16.350 7.012221
7410 8 0.5 16.400 7.013345
7411 8 0.5 16.450 7.014132
7412 8 0.5 16.500 7.014328
7413 8 0.5 16.550 7.014044
7414 8 0.5 16.600 7.013597
7415 8 0.5 16.650 7.013250
7416 8 0.5 16.700 7.013048
7417 8 0.5 16.750 7.012829
7418 8 0.5 16.800 7.012406
7419 8 0.5 16.850 7.011776
7420 8 0.5 16.900 7.011203
7421 8 0.5 16.950 7.011112
7422 8 0.5 17.000 7.011841
7423 8 0.5 17.050 7.013401
7424 8 0.5 17.100 7.015403
7425 8 0.5 17.150 7.017198
7426 8 0.5 17.200 7.018157
7427 8 0.5 17.250 7.017934
7428 8 0.5 17.300 7.016591
7429 8 0.5 17.350 7.014530
7430 8 0.5 17.400 7.012297
7431 8 0.5 17.450 7.010391
7432 8 0.5 17.500 7.009145
7433 8 0.5 17.550 7.008743
7434 8 0.5 17.600 7.009267
7435 8 0.5 17.650 7.010715
7436 8 0.5 17.700 7.012932
7437 8 0.5 17.750 7.015523
7438 8 0.5 17.800 7.017839
7439 8 0.5 17.850 7.019132
7440 8 0.5 17.900 7.018851
7441 8 0.5 17.950 7.016947
7442 8 0.5 18.000 7.014009
7443 8 0.5 18.050 7.011102
7444 8 0.5 18.100 7.009338
7445 8 0.5 18.150 7.009340
7446 8 0.5 18.200 7.010909
7447 8 0.5 18.250 7.013108
7448 8 0.5 18.300 7.014734
7449 8 0.5 18.350 7.014955
7450 8 0.5 18.400 7.013755
7451 8 0.5 18.450 7.011961
7452 8 0.5 18.500 7.010801
7453 8 0.5 18.550 7.011214
7454 8 0.5 18.600 7.013284
7455 8 0.5 18.650 7.016126
7456 8 0.5 18.700 7.018327
7457 8 0.5 18.750 7.018668
7458 8 0.5 18.800 7.016770
7459 8 0.5 18.850 7.013295
7460 8 0.5 18.900 7.009630
7461 8 0.5 18.950 7.007201
7462 8 0.5 19.000 7.006765
7463 8 0.5 19.050 7.008096
7464 8 0.5 19.100 7.010216
7465 8 0.5 19.150 7.012003
7466 8 0.5 19.200 7.012812
7467 8 0.5 19.250 7.012732
7468 8 0.5 19.300 7.012385
7469 8 0.5 19.350 7.012425
7470 8 0.5 19.400 7.013049
7471 8 0.5 19.450 7.013864
7472 8 0.5 19.500 7.014164
7473 8 0.5 19.550 7.013418
7474 8 0.5 19.600 7.011645
7475 8 0.5 19.650 7.009401
7476 8 0.5 19.700 7.007394
7477 8 0.5 19.750 7.005990
7478 8 0.5 19.800 7.004993
7479 8 0.5 19.850 7.003897
7480 8 0.5 19.900 7.002494
7481 8 0.5 19.950 7.001369
7482 8 0.5 20.000 7.001822
7483 8 0.5 20.050 7.005041
7484 8 0.5 20.100 7.010901
7485 8 0.5 20.150 7.017199
7486 8 0.5 20.200 7.020084
7487 8 0.5 20.250 7.015724
7488 8 0.5 20.300 7.002595
7489 8 0.5 20.350 6.983389
7490 8 0.5 20.400 6.965396
7491 8 0.5 20.450 6.958098
7492 8 0.5 20.500 6.967728
7493 8 0.5 20.550 6.991444
7494 8 0.5 20.600 7.015541
7495 8 0.5 20.650 7.018803
7496 8 0.5 20.700 6.977142
7497 8 0.5 20.750 6.865413
7498 8 0.5 20.800 6.654865
7499 8 0.5 20.850 6.304742
7500 8 0.5 20.900 5.739931
7501 8 0.5 20.950 4.770702

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