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 26 of 34 · 500/page · 16560 rows next →
# alambda_tagzlogK
12502 12 0 41.000 -690.775528
12503 12 0 41.050 -690.775528
12504 12 0 41.100 7.250818
12505 12 0 41.150 9.170352
12506 12 0 41.200 9.505466
12507 12 0 41.250 8.993603
12508 12 0 41.300 -690.775528
12509 12 0 41.350 -690.775528
12510 12 0 41.400 -690.775528
12511 12 0 41.450 -690.775528
12512 12 0 41.500 -690.775528
12513 12 0 41.550 -690.775528
12514 12 0 41.600 -690.775528
12515 12 0 41.650 7.407198
12516 12 0 41.700 9.509858
12517 12 0 41.750 9.421998
12518 12 0 41.800 7.777572
12519 12 0 41.850 -690.775528
12520 12 0 41.900 -690.775528
12521 12 0 41.950 -690.775528
12522 12 0 42.000 -690.775528
12523 12 0 42.050 -690.775528
12524 12 0 42.100 -690.775528
12525 12 0 42.150 -690.775528
12526 12 0 42.200 -690.775528
12527 12 0 42.250 7.117185
12528 12 0 42.300 9.655982
12529 12 0 42.350 -690.775528
12530 12 0 42.400 -690.775528
12531 12 0 42.450 -690.775528
12532 12 0 42.500 -690.775528
12533 12 0 42.550 -690.775528
12534 12 0 42.600 -690.775528
12535 12 0 42.650 -690.775528
12536 12 0 42.700 -690.775528
12537 12 0 42.750 -690.775528
12538 12 0 42.800 -690.775528
12539 12 0 42.850 6.325297
12540 12 0 42.900 -690.775528
12541 12 0 42.950 -690.775528
12542 12 0 43.000 -690.775528
12543 12 0 43.050 -690.775528
12544 12 0 43.100 -690.775528
12545 12 0 43.150 -690.775528
12546 12 0 43.200 -690.775528
12547 12 0 43.250 -690.775528
12548 12 0 43.300 -690.775528
12549 12 0 43.350 -690.775528
12550 12 0 43.400 -690.775528
12551 12 0 43.450 -690.775528
12552 12 0 43.500 -690.775528
12553 12 0 43.550 8.815178
12554 12 0 43.600 9.270153
12555 12 0 43.650 9.000075
12556 12 0 43.700 -690.775528
12557 12 0 43.750 -690.775528
12558 12 0 43.800 -690.775528
12559 12 0 43.850 -690.775528
12560 12 0 43.900 -690.775528
12561 12 0 43.950 -690.775528
12562 12 0 44.000 -690.775528
12563 12 0 44.050 -690.775528
12564 12 0 44.100 8.169924
12565 12 0 44.150 9.373912
12566 12 0 44.200 9.416304
12567 12 0 44.250 8.856872
12568 12 0 44.300 -690.775528
12569 12 0 44.350 -690.775528
12570 12 0 44.400 -690.775528
12571 12 0 44.450 -690.775528
12572 12 0 44.500 -690.775528
12573 12 0 44.550 -690.775528
12574 12 0 44.600 8.789915
12575 12 0 44.650 9.395169
12576 12 0 44.700 9.547482
12577 12 0 44.750 9.416506
12578 12 0 44.800 8.802626
12579 12 0 44.850 -690.775528
12580 12 0 44.900 -690.775528
12581 12 0 44.950 -690.775528
12582 12 0 45.000 -690.775528
12583 12 0 45.050 -690.775528
12584 12 0 45.100 -690.775528
12585 12 0 45.150 -690.775528
12586 12 0 45.200 8.569137
12587 12 0 45.250 9.180491
12588 12 0 45.300 9.240685
12589 12 0 45.350 9.070500
12590 12 0 45.400 8.545802
12591 12 0 45.450 -690.775528
12592 12 0 45.500 -690.775528
12593 12 0 45.550 -690.775528
12594 12 0 45.600 -690.775528
12595 12 0 45.650 -690.775528
12596 12 0 45.700 8.022844
12597 12 0 45.750 9.213903
12598 12 0 45.800 9.548364
12599 12 0 45.850 9.702054
12600 12 0 45.900 9.830761
12601 12 0 45.950 9.896237
12602 12 0 46.000 9.740505
12603 12 0 46.050 8.964878
12604 12 0 46.100 -690.775528
12605 12 0 46.150 -690.775528
12606 12 0 46.200 -690.775528
12607 12 0 46.250 -690.775528
12608 12 0 46.300 -690.775528
12609 12 0 46.350 -690.775528
12610 12 0 46.400 8.322849
12611 12 0 46.450 8.763476
12612 12 0 46.500 8.367082
12613 12 0 46.550 -690.775528
12614 12 0 46.600 -690.775528
12615 12 0 46.650 -690.775528
12616 12 0 46.700 -690.775528
12617 12 0 46.750 -690.775528
12618 12 0 46.800 7.417620
12619 12 0 46.850 9.079240
12620 12 0 46.900 9.515555
12621 12 0 46.950 9.535583
12622 12 0 47.000 9.114600
12623 12 0 47.050 6.829563
12624 12 0 47.100 -690.775528
12625 12 0 47.150 -690.775528
12626 12 0 47.200 -690.775528
12627 12 0 47.250 -690.775528
12628 12 0 47.300 -690.775528
12629 12 0 47.350 -690.775528
12630 12 0 47.400 -690.775528
12631 12 0 47.450 -690.775528
12632 12 0 47.500 -690.775528
12633 12 0 47.550 8.687414
12634 12 0 47.600 9.323373
12635 12 0 47.650 8.877355
12636 12 0 47.700 -690.775528
12637 12 0 47.750 -690.775528
12638 12 0 47.800 -690.775528
12639 12 0 47.850 -690.775528
12640 12 0 47.900 -690.775528
12641 12 0 47.950 -690.775528
12642 12 0 48.000 -690.775528
12643 12 0 48.050 -690.775528
12644 12 0 48.100 -690.775528
12645 12 0 48.150 -690.775528
12646 12 0 48.200 -690.775528
12647 12 0 48.250 7.921260
12648 12 0 48.300 9.022808
12649 12 0 48.350 9.155880
12650 12 0 48.400 8.743926
12651 12 0 48.450 7.009230
12652 12 0 48.500 -690.775528
12653 12 0 48.550 -690.775528
12654 12 0 48.600 -690.775528
12655 12 0 48.650 -690.775528
12656 12 0 48.700 -690.775528
12657 12 0 48.750 7.697556
12658 12 0 48.800 8.859215
12659 12 0 48.850 9.236551
12660 12 0 48.900 9.381887
12661 12 0 48.950 9.570610
12662 12 0 49.000 9.923251
12663 12 0 49.050 10.288470
12664 12 0 49.100 10.498618
12665 12 0 49.150 10.482887
12666 12 0 49.200 10.257482
12667 12 0 49.250 10.075490
12668 12 0 49.300 10.401520
12669 12 0 49.350 10.990076
12670 12 0 49.400 11.433744
12671 12 0 49.450 11.639264
12672 12 0 49.500 11.599010
12673 12 0 49.550 11.301685
12674 12 0 49.600 10.712221
12675 12 0 49.650 9.760470
12676 12 0 49.700 8.329235
12677 12 0 49.750 5.883315
12678 12 0 49.800 6.426109
12679 12 0 49.850 9.094016
12680 12 0 49.900 10.507581
12681 12 0 49.950 11.400435
12682 12 0 50.000 11.952085
12683 12 0 50.050 12.234902
12684 12 0 50.100 12.273223
12685 12 0 50.150 12.050407
12686 12 0 50.200 11.467826
12687 12 0 50.250 9.903001
12688 12 0 50.300 -690.775528
12689 12 0 50.350 -690.775528
12690 12 0 50.400 -690.775528
12691 12 0 50.450 -690.775528
12692 12 0 50.500 9.603448
12693 12 0 50.550 9.974929
12694 12 0 50.600 9.959676
12695 12 0 50.650 9.790935
12696 12 0 50.700 9.497297
12697 12 0 50.750 8.898290
12698 12 0 50.800 -690.775528
12699 12 0 50.850 -690.775528
12700 12 0 50.900 -690.775528
12701 12 0 50.950 -690.775528
12702 12 0 51.000 -690.775528
12703 12 0 51.050 -690.775528
12704 12 0 51.100 7.201970
12705 12 0 51.150 8.490313
12706 12 0 51.200 8.837193
12707 12 0 51.250 8.887055
12708 12 0 51.300 8.576669
12709 12 0 51.350 6.523204
12710 12 0 51.400 -690.775528
12711 12 0 51.450 -690.775528
12712 12 0 51.500 -690.775528
12713 12 0 51.550 7.926169
12714 12 0 51.600 9.810571
12715 12 0 51.650 10.398856
12716 12 0 51.700 10.620893
12717 12 0 51.750 10.635077
12718 12 0 51.800 10.548441
12719 12 0 51.850 10.467415
12720 12 0 51.900 10.429023
12721 12 0 51.950 10.343143
12722 12 0 52.000 10.036054
12723 12 0 52.050 9.091148
12724 12 0 52.100 -690.775528
12725 12 0 52.150 -690.775528
12726 12 0 52.200 -690.775528
12727 12 0 52.250 -690.775528
12728 12 0 52.300 -690.775528
12729 12 0 52.350 8.911968
12730 12 0 52.400 9.502230
12731 12 0 52.450 9.625531
12732 12 0 52.500 9.282975
12733 12 0 52.550 -690.775528
12734 12 0 52.600 -690.775528
12735 12 0 52.650 -690.775528
12736 12 0 52.700 -690.775528
12737 12 0 52.750 -690.775528
12738 12 0 52.800 -690.775528
12739 12 0 52.850 -690.775528
12740 12 0 52.900 -690.775528
12741 12 0 52.950 4.253487
12742 12 0 53.000 6.160794
12743 12 0 53.050 8.439644
12744 12 0 53.100 9.378838
12745 12 0 53.150 9.713785
12746 12 0 53.200 9.524184
12747 12 0 53.250 8.229422
12748 12 0 53.300 -690.775528
12749 12 0 53.350 -690.775528
12750 12 0 53.400 -690.775528
12751 12 0 53.450 5.751096
12752 12 0 53.500 9.017974
12753 12 0 53.550 9.395636
12754 12 0 53.600 9.419638
12755 12 0 53.650 9.372256
12756 12 0 53.700 9.358579
12757 12 0 53.750 9.266440
12758 12 0 53.800 8.803540
12759 12 0 53.850 -690.775528
12760 12 0 53.900 -690.775528
12761 12 0 53.950 -690.775528
12762 12 0 54.000 -690.775528
12763 12 0 54.050 -690.775528
12764 12 0 54.100 -690.775528
12765 12 0 54.150 -690.775528
12766 12 0 54.200 7.953925
12767 12 0 54.250 8.208000
12768 12 0 54.300 -690.775528
12769 12 0 54.350 -690.775528
12770 12 0 54.400 -690.775528
12771 12 0 54.450 -690.775528
12772 12 0 54.500 -690.775528
12773 12 0 54.550 -690.775528
12774 12 0 54.600 -690.775528
12775 12 0 54.650 -690.775528
12776 12 0 54.700 8.681542
12777 12 0 54.750 8.507508
12778 12 0 54.800 -690.775528
12779 12 0 54.850 -690.775528
12780 12 0 54.900 -690.775528
12781 12 0 54.950 -690.775528
12782 12 0 55.000 -690.775528
12783 12 0 55.050 -690.775528
12784 12 0 55.100 -690.775528
12785 12 0 55.150 -690.775528
12786 12 0 55.200 -690.775528
12787 12 0 55.250 -690.775528
12788 12 0 55.300 -690.775528
12789 12 0 55.350 -690.775528
12790 12 0 55.400 -690.775528
12791 12 0 55.450 -690.775528
12792 12 0 55.500 -690.775528
12793 12 0 55.550 -690.775528
12794 12 0 55.600 -690.775528
12795 12 0 55.650 -690.775528
12796 12 0 55.700 8.477254
12797 12 0 55.750 9.249274
12798 12 0 55.800 8.292529
12799 12 0 55.850 -690.775528
12800 12 0 55.900 -690.775528
12801 12 0 55.950 -690.775528
12802 12 0 56.000 7.328836
12803 12 0 56.050 9.133527
12804 12 0 56.100 9.297241
12805 12 0 56.150 8.992014
12806 12 0 56.200 8.527244
12807 12 0 56.250 8.367887
12808 12 0 56.300 8.419940
12809 12 0 56.350 8.155840
12810 12 0 56.400 7.067557
12811 12 0 56.450 2.319647
12812 12 0 56.500 7.538659
12813 12 0 56.550 8.669214
12814 12 0 56.600 9.099932
12815 12 0 56.650 9.156998
12816 12 0 56.700 9.024102
12817 12 0 56.750 8.927931
12818 12 0 56.800 8.963002
12819 12 0 56.850 8.906477
12820 12 0 56.900 8.335956
12821 12 0 56.950 -690.775528
12822 12 0 57.000 -690.775528
12823 12 0 57.050 -690.775528
12824 12 0 57.100 -690.775528
12825 12 0 57.150 -690.775528
12826 12 0 57.200 6.256553
12827 12 0 57.250 8.440453
12828 12 0 57.300 8.972465
12829 12 0 57.350 9.252612
12830 12 0 57.400 9.371811
12831 12 0 57.450 9.284146
12832 12 0 57.500 8.809178
12833 12 0 57.550 -690.775528
12834 12 0 57.600 -690.775528
12835 12 0 57.650 -690.775528
12836 12 0 57.700 -690.775528
12837 12 0 57.750 -690.775528
12838 12 0 57.800 -690.775528
12839 12 0 57.850 9.139027
12840 12 0 57.900 9.886309
12841 12 0 57.950 10.103311
12842 12 0 58.000 10.037451
12843 12 0 58.050 9.757202
12844 12 0 58.100 9.321594
12845 12 0 58.150 8.854233
12846 12 0 58.200 8.519111
12847 12 0 58.250 8.259708
12848 12 0 58.300 7.687657
12849 12 0 58.350 -690.775528
12850 12 0 58.400 -690.775528
12851 12 0 58.450 -690.775528
12852 12 0 58.500 -690.775528
12853 12 0 58.550 -690.775528
12854 12 0 58.600 6.968920
12855 12 0 58.650 8.444819
12856 12 0 58.700 8.890064
12857 12 0 58.750 8.936418
12858 12 0 58.800 8.444818
12859 12 0 58.850 -690.775528
12860 12 0 58.900 -690.775528
12861 12 0 58.950 -690.775528
12862 12 0 59.000 -690.775528
12863 12 0 59.050 -690.775528
12864 12 0 59.100 -690.775528
12865 12 0 59.150 -690.775528
12866 12 0 59.200 -690.775528
12867 12 0 59.250 -690.775528
12868 12 0 59.300 -690.775528
12869 12 0 59.350 -690.775528
12870 12 0 59.400 -690.775528
12871 12 0 59.450 -690.775528
12872 12 0 59.500 -690.775528
12873 12 0 59.550 -690.775528
12874 12 0 59.600 -690.775528
12875 12 0 59.650 -690.775528
12876 12 0 59.700 7.774703
12877 12 0 59.750 9.286320
12878 12 0 59.800 9.727191
12879 12 0 59.850 9.849487
12880 12 0 59.900 9.766426
12881 12 0 59.950 9.468135
12882 12 0.5 14.000 6.076910
12883 12 0.5 14.050 5.357666
12884 12 0.5 14.100 3.707843
12885 12 0.5 14.150 2.179088
12886 12 0.5 14.200 4.894815
12887 12 0.5 14.250 5.857272
12888 12 0.5 14.300 6.318930
12889 12 0.5 14.350 6.516215
12890 12 0.5 14.400 6.558998
12891 12 0.5 14.450 6.532768
12892 12 0.5 14.500 6.507988
12893 12 0.5 14.550 6.514678
12894 12 0.5 14.600 6.537129
12895 12 0.5 14.650 6.549392
12896 12 0.5 14.700 6.545347
12897 12 0.5 14.750 6.537963
12898 12 0.5 14.800 6.540566
12899 12 0.5 14.850 6.552246
12900 12 0.5 14.900 6.561781
12901 12 0.5 14.950 6.561509
12902 12 0.5 15.000 6.553929
12903 12 0.5 15.050 6.546759
12904 12 0.5 15.100 6.544261
12905 12 0.5 15.150 6.544592
12906 12 0.5 15.200 6.544639
12907 12 0.5 15.250 6.544830
12908 12 0.5 15.300 6.548025
12909 12 0.5 15.350 6.554783
12910 12 0.5 15.400 6.561489
12911 12 0.5 15.450 6.563690
12912 12 0.5 15.500 6.560417
12913 12 0.5 15.550 6.554751
12914 12 0.5 15.600 6.550491
12915 12 0.5 15.650 6.548861
12916 12 0.5 15.700 6.548646
12917 12 0.5 15.750 6.548807
12918 12 0.5 15.800 6.549910
12919 12 0.5 15.850 6.552791
12920 12 0.5 15.900 6.556579
12921 12 0.5 15.950 6.558858
12922 12 0.5 16.000 6.557938
12923 12 0.5 16.050 6.554608
12924 12 0.5 16.100 6.551469
12925 12 0.5 16.150 6.550603
12926 12 0.5 16.200 6.552012
12927 12 0.5 16.250 6.554166
12928 12 0.5 16.300 6.555630
12929 12 0.5 16.350 6.555924
12930 12 0.5 16.400 6.555214
12931 12 0.5 16.450 6.553820
12932 12 0.5 16.500 6.552287
12933 12 0.5 16.550 6.551578
12934 12 0.5 16.600 6.552540
12935 12 0.5 16.650 6.554903
12936 12 0.5 16.700 6.557024
12937 12 0.5 16.750 6.557071
12938 12 0.5 16.800 6.554685
12939 12 0.5 16.850 6.551466
12940 12 0.5 16.900 6.549698
12941 12 0.5 16.950 6.550453
12942 12 0.5 17.000 6.552894
12943 12 0.5 17.050 6.555308
12944 12 0.5 17.100 6.556631
12945 12 0.5 17.150 6.556961
12946 12 0.5 17.200 6.556865
12947 12 0.5 17.250 6.556522
12948 12 0.5 17.300 6.555680
12949 12 0.5 17.350 6.554266
12950 12 0.5 17.400 6.552763
12951 12 0.5 17.450 6.551837
12952 12 0.5 17.500 6.551705
12953 12 0.5 17.550 6.552001
12954 12 0.5 17.600 6.552297
12955 12 0.5 17.650 6.552609
12956 12 0.5 17.700 6.553298
12957 12 0.5 17.750 6.554517
12958 12 0.5 17.800 6.555919
12959 12 0.5 17.850 6.556946
12960 12 0.5 17.900 6.557314
12961 12 0.5 17.950 6.557065
12962 12 0.5 18.000 6.556178
12963 12 0.5 18.050 6.554407
12964 12 0.5 18.100 6.551780
12965 12 0.5 18.150 6.549267
12966 12 0.5 18.200 6.548608
12967 12 0.5 18.250 6.550961
12968 12 0.5 18.300 6.555454
12969 12 0.5 18.350 6.559298
12970 12 0.5 18.400 6.559736
12971 12 0.5 18.450 6.556274
12972 12 0.5 18.500 6.551231
12973 12 0.5 18.550 6.548050
12974 12 0.5 18.600 6.548730
12975 12 0.5 18.650 6.552601
12976 12 0.5 18.700 6.557290
12977 12 0.5 18.750 6.560557
12978 12 0.5 18.800 6.561226
12979 12 0.5 18.850 6.558984
12980 12 0.5 18.900 6.554164
12981 12 0.5 18.950 6.548180
12982 12 0.5 19.000 6.543803
12983 12 0.5 19.050 6.543970
12984 12 0.5 19.100 6.549347
12985 12 0.5 19.150 6.557017
12986 12 0.5 19.200 6.562181
12987 12 0.5 19.250 6.561711
12988 12 0.5 19.300 6.556434
12989 12 0.5 19.350 6.550242
12990 12 0.5 19.400 6.546942
12991 12 0.5 19.450 6.547743
12992 12 0.5 19.500 6.551391
12993 12 0.5 19.550 6.555914
12994 12 0.5 19.600 6.559583
12995 12 0.5 19.650 6.560645
12996 12 0.5 19.700 6.557534
12997 12 0.5 19.750 6.550500
12998 12 0.5 19.800 6.542920
12999 12 0.5 19.850 6.539685
13000 12 0.5 19.900 6.542973
13001 12 0.5 19.950 6.549840

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