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 14 of 34 · 500/page · 16560 rows next →
# alambda_tagzlogK
6502 8 0 17.000 -690.775528
6503 8 0 17.050 -690.775528
6504 8 0 17.100 -690.775528
6505 8 0 17.150 -690.775528
6506 8 0 17.200 -690.775528
6507 8 0 17.250 -690.775528
6508 8 0 17.300 -690.775528
6509 8 0 17.350 -690.775528
6510 8 0 17.400 -690.775528
6511 8 0 17.450 -690.775528
6512 8 0 17.500 -690.775528
6513 8 0 17.550 -690.775528
6514 8 0 17.600 -690.775528
6515 8 0 17.650 -690.775528
6516 8 0 17.700 -690.775528
6517 8 0 17.750 -690.775528
6518 8 0 17.800 -690.775528
6519 8 0 17.850 -690.775528
6520 8 0 17.900 -690.775528
6521 8 0 17.950 -690.775528
6522 8 0 18.000 -690.775528
6523 8 0 18.050 11.377570
6524 8 0 18.100 12.516975
6525 8 0 18.150 12.983596
6526 8 0 18.200 13.216708
6527 8 0 18.250 13.302506
6528 8 0 18.300 13.264240
6529 8 0 18.350 13.094597
6530 8 0 18.400 12.745421
6531 8 0 18.450 12.028429
6532 8 0 18.500 -690.775528
6533 8 0 18.550 -690.775528
6534 8 0 18.600 -690.775528
6535 8 0 18.650 -690.775528
6536 8 0 18.700 -690.775528
6537 8 0 18.750 -690.775528
6538 8 0 18.800 -690.775528
6539 8 0 18.850 -690.775528
6540 8 0 18.900 9.348268
6541 8 0 18.950 11.692183
6542 8 0 19.000 12.162200
6543 8 0 19.050 12.278093
6544 8 0 19.100 12.133789
6545 8 0 19.150 11.594912
6546 8 0 19.200 -690.775528
6547 8 0 19.250 -690.775528
6548 8 0 19.300 -690.775528
6549 8 0 19.350 -690.775528
6550 8 0 19.400 -690.775528
6551 8 0 19.450 -690.775528
6552 8 0 19.500 -690.775528
6553 8 0 19.550 -690.775528
6554 8 0 19.600 -690.775528
6555 8 0 19.650 -690.775528
6556 8 0 19.700 10.649129
6557 8 0 19.750 12.019166
6558 8 0 19.800 12.438672
6559 8 0 19.850 12.598088
6560 8 0 19.900 12.612181
6561 8 0 19.950 12.526169
6562 8 0 20.000 12.370997
6563 8 0 20.050 12.182183
6564 8 0 20.100 12.007595
6565 8 0 20.150 11.895041
6566 8 0 20.200 11.855932
6567 8 0 20.250 11.844760
6568 8 0 20.300 11.778010
6569 8 0 20.350 11.532030
6570 8 0 20.400 10.723167
6571 8 0 20.450 -690.775528
6572 8 0 20.500 -690.775528
6573 8 0 20.550 -690.775528
6574 8 0 20.600 -690.775528
6575 8 0 20.650 -690.775528
6576 8 0 20.700 -690.775528
6577 8 0 20.750 -690.775528
6578 8 0 20.800 -690.775528
6579 8 0 20.850 -690.775528
6580 8 0 20.900 -690.775528
6581 8 0 20.950 -690.775528
6582 8 0 21.000 -690.775528
6583 8 0 21.050 -690.775528
6584 8 0 21.100 -690.775528
6585 8 0 21.150 9.826041
6586 8 0 21.200 11.408641
6587 8 0 21.250 12.273122
6588 8 0 21.300 12.827723
6589 8 0 21.350 13.181910
6590 8 0 21.400 13.379873
6591 8 0 21.450 13.438565
6592 8 0 21.500 13.356104
6593 8 0 21.550 13.106080
6594 8 0 21.600 12.600394
6595 8 0 21.650 11.392337
6596 8 0 21.700 -690.775528
6597 8 0 21.750 -690.775528
6598 8 0 21.800 -690.775528
6599 8 0 21.850 -690.775528
6600 8 0 21.900 -690.775528
6601 8 0 21.950 -690.775528
6602 8 0 22.000 10.903114
6603 8 0 22.050 11.736675
6604 8 0 22.100 11.994713
6605 8 0 22.150 12.007714
6606 8 0 22.200 11.832055
6607 8 0 22.250 11.439207
6608 8 0 22.300 10.636640
6609 8 0 22.350 -690.775528
6610 8 0 22.400 -690.775528
6611 8 0 22.450 -690.775528
6612 8 0 22.500 -690.775528
6613 8 0 22.550 -690.775528
6614 8 0 22.600 8.672210
6615 8 0 22.650 10.560689
6616 8 0 22.700 11.051099
6617 8 0 22.750 11.184037
6618 8 0 22.800 11.035137
6619 8 0 22.850 10.437548
6620 8 0 22.900 -690.775528
6621 8 0 22.950 -690.775528
6622 8 0 23.000 -690.775528
6623 8 0 23.050 -690.775528
6624 8 0 23.100 -690.775528
6625 8 0 23.150 -690.775528
6626 8 0 23.200 -690.775528
6627 8 0 23.250 -690.775528
6628 8 0 23.300 8.002488
6629 8 0 23.350 10.848308
6630 8 0 23.400 11.379158
6631 8 0 23.450 11.546082
6632 8 0 23.500 11.458232
6633 8 0 23.550 11.022074
6634 8 0 23.600 8.900405
6635 8 0 23.650 -690.775528
6636 8 0 23.700 -690.775528
6637 8 0 23.750 -690.775528
6638 8 0 23.800 -690.775528
6639 8 0 23.850 -690.775528
6640 8 0 23.900 -690.775528
6641 8 0 23.950 -690.775528
6642 8 0 24.000 -690.775528
6643 8 0 24.050 -690.775528
6644 8 0 24.100 10.568564
6645 8 0 24.150 11.137701
6646 8 0 24.200 11.165224
6647 8 0 24.250 10.728709
6648 8 0 24.300 -690.775528
6649 8 0 24.350 -690.775528
6650 8 0 24.400 -690.775528
6651 8 0 24.450 -690.775528
6652 8 0 24.500 -690.775528
6653 8 0 24.550 -690.775528
6654 8 0 24.600 -690.775528
6655 8 0 24.650 -690.775528
6656 8 0 24.700 -690.775528
6657 8 0 24.750 -690.775528
6658 8 0 24.800 -690.775528
6659 8 0 24.850 -690.775528
6660 8 0 24.900 -690.775528
6661 8 0 24.950 -690.775528
6662 8 0 25.000 -690.775528
6663 8 0 25.050 -690.775528
6664 8 0 25.100 -690.775528
6665 8 0 25.150 -690.775528
6666 8 0 25.200 -690.775528
6667 8 0 25.250 9.914876
6668 8 0 25.300 10.906684
6669 8 0 25.350 11.303235
6670 8 0 25.400 11.362142
6671 8 0 25.450 11.058090
6672 8 0 25.500 9.891236
6673 8 0 25.550 -690.775528
6674 8 0 25.600 -690.775528
6675 8 0 25.650 -690.775528
6676 8 0 25.700 9.030832
6677 8 0 25.750 11.509088
6678 8 0 25.800 12.233784
6679 8 0 25.850 12.606346
6680 8 0 25.900 12.776513
6681 8 0 25.950 12.791893
6682 8 0 26.000 12.670057
6683 8 0 26.050 12.417067
6684 8 0 26.100 12.042784
6685 8 0 26.150 11.601457
6686 8 0 26.200 11.279972
6687 8 0 26.250 11.314418
6688 8 0 26.300 11.598937
6689 8 0 26.350 11.885412
6690 8 0 26.400 12.071095
6691 8 0 26.450 12.135891
6692 8 0 26.500 12.077654
6693 8 0 26.550 11.890436
6694 8 0 26.600 11.553536
6695 8 0 26.650 11.010686
6696 8 0 26.700 10.078620
6697 8 0 26.750 -690.775528
6698 8 0 26.800 -690.775528
6699 8 0 26.850 -690.775528
6700 8 0 26.900 9.118531
6701 8 0 26.950 10.190751
6702 8 0 27.000 10.661013
6703 8 0 27.050 10.877695
6704 8 0 27.100 10.922724
6705 8 0 27.150 10.819399
6706 8 0 27.200 10.560946
6707 8 0 27.250 10.105718
6708 8 0 27.300 9.327526
6709 8 0 27.350 7.605553
6710 8 0 27.400 -690.775528
6711 8 0 27.450 7.543231
6712 8 0 27.500 9.237739
6713 8 0 27.550 9.974837
6714 8 0 27.600 10.383341
6715 8 0 27.650 10.586694
6716 8 0 27.700 10.619008
6717 8 0 27.750 10.467442
6718 8 0 27.800 10.041103
6719 8 0 27.850 8.771586
6720 8 0 27.900 -690.775528
6721 8 0 27.950 -690.775528
6722 8 0 28.000 -690.775528
6723 8 0 28.050 -690.775528
6724 8 0 28.100 -690.775528
6725 8 0 28.150 -690.775528
6726 8 0 28.200 -690.775528
6727 8 0 28.250 9.550955
6728 8 0 28.300 10.478516
6729 8 0 28.350 10.870929
6730 8 0 28.400 10.994610
6731 8 0 28.450 10.829737
6732 8 0 28.500 9.959777
6733 8 0 28.550 -690.775528
6734 8 0 28.600 -690.775528
6735 8 0 28.650 -690.775528
6736 8 0 28.700 -690.775528
6737 8 0 28.750 -690.775528
6738 8 0 28.800 -690.775528
6739 8 0 28.850 -690.775528
6740 8 0 28.900 -690.775528
6741 8 0 28.950 -690.775528
6742 8 0 29.000 -690.775528
6743 8 0 29.050 -690.775528
6744 8 0 29.100 -690.775528
6745 8 0 29.150 -690.775528
6746 8 0 29.200 -690.775528
6747 8 0 29.250 -690.775528
6748 8 0 29.300 -690.775528
6749 8 0 29.350 -690.775528
6750 8 0 29.400 -690.775528
6751 8 0 29.450 -690.775528
6752 8 0 29.500 -690.775528
6753 8 0 29.550 -690.775528
6754 8 0 29.600 -690.775528
6755 8 0 29.650 -690.775528
6756 8 0 29.700 -690.775528
6757 8 0 29.750 -690.775528
6758 8 0 29.800 -690.775528
6759 8 0 29.850 -690.775528
6760 8 0 29.900 -690.775528
6761 8 0 29.950 -690.775528
6762 8 0 30.000 -690.775528
6763 8 0 30.050 -690.775528
6764 8 0 30.100 -690.775528
6765 8 0 30.150 -690.775528
6766 8 0 30.200 -690.775528
6767 8 0 30.250 -690.775528
6768 8 0 30.300 -690.775528
6769 8 0 30.350 -690.775528
6770 8 0 30.400 -690.775528
6771 8 0 30.450 -690.775528
6772 8 0 30.500 -690.775528
6773 8 0 30.550 -690.775528
6774 8 0 30.600 -690.775528
6775 8 0 30.650 -690.775528
6776 8 0 30.700 -690.775528
6777 8 0 30.750 -690.775528
6778 8 0 30.800 -690.775528
6779 8 0 30.850 -690.775528
6780 8 0 30.900 -690.775528
6781 8 0 30.950 -690.775528
6782 8 0 31.000 -690.775528
6783 8 0 31.050 -690.775528
6784 8 0 31.100 -690.775528
6785 8 0 31.150 -690.775528
6786 8 0 31.200 11.645333
6787 8 0 31.250 12.257143
6788 8 0 31.300 11.865269
6789 8 0 31.350 -690.775528
6790 8 0 31.400 -690.775528
6791 8 0 31.450 -690.775528
6792 8 0 31.500 -690.775528
6793 8 0 31.550 -690.775528
6794 8 0 31.600 -690.775528
6795 8 0 31.650 -690.775528
6796 8 0 31.700 -690.775528
6797 8 0 31.750 -690.775528
6798 8 0 31.800 10.703317
6799 8 0 31.850 11.535182
6800 8 0 31.900 -690.775528
6801 8 0 31.950 -690.775528
6802 8 0 32.000 -690.775528
6803 8 0 32.050 -690.775528
6804 8 0 32.100 -690.775528
6805 8 0 32.150 -690.775528
6806 8 0 32.200 -690.775528
6807 8 0 32.250 -690.775528
6808 8 0 32.300 -690.775528
6809 8 0 32.350 -690.775528
6810 8 0 32.400 -690.775528
6811 8 0 32.450 -690.775528
6812 8 0 32.500 -690.775528
6813 8 0 32.550 10.363226
6814 8 0 32.600 -690.775528
6815 8 0 32.650 -690.775528
6816 8 0 32.700 -690.775528
6817 8 0 32.750 -690.775528
6818 8 0 32.800 -690.775528
6819 8 0 32.850 -690.775528
6820 8 0 32.900 -690.775528
6821 8 0 32.950 -690.775528
6822 8 0 33.000 -690.775528
6823 8 0 33.050 -690.775528
6824 8 0 33.100 -690.775528
6825 8 0 33.150 -690.775528
6826 8 0 33.200 -690.775528
6827 8 0 33.250 -690.775528
6828 8 0 33.300 -690.775528
6829 8 0 33.350 -690.775528
6830 8 0 33.400 -690.775528
6831 8 0 33.450 -690.775528
6832 8 0 33.500 -690.775528
6833 8 0 33.550 -690.775528
6834 8 0 33.600 -690.775528
6835 8 0 33.650 -690.775528
6836 8 0 33.700 -690.775528
6837 8 0 33.750 -690.775528
6838 8 0 33.800 9.432414
6839 8 0 33.850 10.659972
6840 8 0 33.900 -690.775528
6841 8 0 33.950 -690.775528
6842 8 0 34.000 -690.775528
6843 8 0 34.050 -690.775528
6844 8 0 34.100 -690.775528
6845 8 0 34.150 -690.775528
6846 8 0 34.200 -690.775528
6847 8 0 34.250 -690.775528
6848 8 0 34.300 -690.775528
6849 8 0 34.350 -690.775528
6850 8 0 34.400 -690.775528
6851 8 0 34.450 -690.775528
6852 8 0 34.500 -690.775528
6853 8 0 34.550 -690.775528
6854 8 0 34.600 -690.775528
6855 8 0 34.650 -690.775528
6856 8 0 34.700 -690.775528
6857 8 0 34.750 -690.775528
6858 8 0 34.800 -690.775528
6859 8 0 34.850 -690.775528
6860 8 0 34.900 -690.775528
6861 8 0 34.950 -690.775528
6862 8 0 35.000 -690.775528
6863 8 0 35.050 -690.775528
6864 8 0 35.100 -690.775528
6865 8 0 35.150 -690.775528
6866 8 0 35.200 -690.775528
6867 8 0 35.250 -690.775528
6868 8 0 35.300 -690.775528
6869 8 0 35.350 -690.775528
6870 8 0 35.400 -690.775528
6871 8 0 35.450 -690.775528
6872 8 0 35.500 -690.775528
6873 8 0 35.550 -690.775528
6874 8 0 35.600 -690.775528
6875 8 0 35.650 -690.775528
6876 8 0 35.700 -690.775528
6877 8 0 35.750 -690.775528
6878 8 0 35.800 -690.775528
6879 8 0 35.850 -690.775528
6880 8 0 35.900 -690.775528
6881 8 0 35.950 8.971919
6882 8 0 36.000 9.713580
6883 8 0 36.050 9.754530
6884 8 0 36.100 9.413814
6885 8 0 36.150 8.329473
6886 8 0 36.200 -690.775528
6887 8 0 36.250 -690.775528
6888 8 0 36.300 -690.775528
6889 8 0 36.350 -690.775528
6890 8 0 36.400 -690.775528
6891 8 0 36.450 -690.775528
6892 8 0 36.500 -690.775528
6893 8 0 36.550 -690.775528
6894 8 0 36.600 8.269598
6895 8 0 36.650 9.053138
6896 8 0 36.700 9.159776
6897 8 0 36.750 8.771996
6898 8 0 36.800 -690.775528
6899 8 0 36.850 -690.775528
6900 8 0 36.900 -690.775528
6901 8 0 36.950 -690.775528
6902 8 0 37.000 -690.775528
6903 8 0 37.050 -690.775528
6904 8 0 37.100 -690.775528
6905 8 0 37.150 -690.775528
6906 8 0 37.200 -690.775528
6907 8 0 37.250 -690.775528
6908 8 0 37.300 -690.775528
6909 8 0 37.350 -690.775528
6910 8 0 37.400 -690.775528
6911 8 0 37.450 7.649152
6912 8 0 37.500 7.381949
6913 8 0 37.550 5.928589
6914 8 0 37.600 4.082582
6915 8 0 37.650 6.980074
6916 8 0 37.700 7.663326
6917 8 0 37.750 6.325141
6918 8 0 37.800 -690.775528
6919 8 0 37.850 -690.775528
6920 8 0 37.900 -690.775528
6921 8 0 37.950 -690.775528
6922 8 0 38.000 -690.775528
6923 8 0 38.050 -690.775528
6924 8 0 38.100 -690.775528
6925 8 0 38.150 -690.775528
6926 8 0 38.200 -690.775528
6927 8 0 38.250 -690.775528
6928 8 0 38.300 -690.775528
6929 8 0 38.350 -690.775528
6930 8 0 38.400 8.962751
6931 8 0 38.450 10.299832
6932 8 0 38.500 10.682616
6933 8 0 38.550 10.814875
6934 8 0 38.600 10.822868
6935 8 0 38.650 10.772902
6936 8 0 38.700 10.725911
6937 8 0 38.750 10.736828
6938 8 0 38.800 10.826638
6939 8 0 38.850 10.969426
6940 8 0 38.900 11.118655
6941 8 0 38.950 11.235718
6942 8 0 39.000 11.295932
6943 8 0 39.050 11.281740
6944 8 0 39.100 11.172517
6945 8 0 39.150 10.928115
6946 8 0 39.200 10.435835
6947 8 0 39.250 9.013926
6948 8 0 39.300 -690.775528
6949 8 0 39.350 -690.775528
6950 8 0 39.400 -690.775528
6951 8 0 39.450 -690.775528
6952 8 0 39.500 -690.775528
6953 8 0 39.550 -690.775528
6954 8 0 39.600 -690.775528
6955 8 0 39.650 -690.775528
6956 8 0 39.700 9.787729
6957 8 0 39.750 10.416512
6958 8 0 39.800 10.630065
6959 8 0 39.850 10.675528
6960 8 0 39.900 10.659729
6961 8 0 39.950 10.663828
6962 8 0 40.000 10.726123
6963 8 0 40.050 10.818326
6964 8 0 40.100 10.874591
6965 8 0 40.150 10.827993
6966 8 0 40.200 10.605244
6967 8 0 40.250 10.051264
6968 8 0 40.300 7.878695
6969 8 0 40.350 -690.775528
6970 8 0 40.400 -690.775528
6971 8 0 40.450 -690.775528
6972 8 0 40.500 -690.775528
6973 8 0 40.550 -690.775528
6974 8 0 40.600 8.793165
6975 8 0 40.650 9.552434
6976 8 0 40.700 9.604907
6977 8 0 40.750 9.257586
6978 8 0 40.800 8.449168
6979 8 0 40.850 6.724879
6980 8 0 40.900 -690.775528
6981 8 0 40.950 -690.775528
6982 8 0 41.000 -690.775528
6983 8 0 41.050 -690.775528
6984 8 0 41.100 -690.775528
6985 8 0 41.150 -690.775528
6986 8 0 41.200 -690.775528
6987 8 0 41.250 -690.775528
6988 8 0 41.300 -690.775528
6989 8 0 41.350 -690.775528
6990 8 0 41.400 -690.775528
6991 8 0 41.450 -690.775528
6992 8 0 41.500 -690.775528
6993 8 0 41.550 -690.775528
6994 8 0 41.600 -690.775528
6995 8 0 41.650 8.767570
6996 8 0 41.700 10.104260
6997 8 0 41.750 10.092408
6998 8 0 41.800 9.298595
6999 8 0 41.850 -690.775528
7000 8 0 41.900 -690.775528
7001 8 0 41.950 -690.775528

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

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

Source code

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

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

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

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

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

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

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

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

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

H = E16.H_MAIN
LAM0 = E16.LAM_SHIFT          # -1.0 baseline
A_LIST = [4.0, 8.0, 12.0]
LADDER_REL = [0.0, 0.5, 0.9, 0.99, 0.999]   # x lambda_a (plus lam=-1)
Z_MAX = 300.0
Z_METRIC = 280.0
N_GRID = 40000
XN = E16.XN
mp.mp.dps = 40


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

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

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


def xi_real(z):
    """Xi(z) = xi(1/2 - i z) via flint (real on R)."""
    flint.ctx.prec = 120
    out = np.empty(len(z))
    for i, zz in enumerate(z):
        s = flint.acb(0.5, -float(zz))
        val = (0.5 * s * (s - 1) * flint.acb.pi() ** (-s / 2)
               * (s / 2).gamma() * s.zeta())
        out[i] = float(val.real)
    return out


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

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

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


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


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

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

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

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

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

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

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

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

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

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

            def K1(z, _tc=tc, _u1=u1, _s1=s1, _chk=False):
                bz = E16.hat_FT(np.array([z]), h)[0] * np.exp(-1j * z * x)
                u0 = scipy.linalg.solve_toeplitz((_tc, _tc), bz)
                v = u0 - (u0.sum() / _s1) * _u1
                kv = float(np.real(np.conj(bz) @ v))
                if _chk:
                    Tm = scipy.linalg.toeplitz(_tc)
                    rs = float(np.max(np.abs(
                        Tm @ v + (u0.sum() / _s1) * np.ones(n) - bz))
                        / max(1.0, float(np.max(np.abs(bz)))))
                    return kv, rs
                return kv, 0.0

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

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

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

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

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

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

    meta = {
        "experiment": "E-025",
        "task": "2.13: lambda-flow numerics (ground-state channel)",
        "script": "research/numerics/scripts/E-025-lambda-flow.py",
        "parameters": {"a_list": A_LIST, "ladder_rel": LADDER_REL,
                       "z_max": Z_MAX},
        "checks": checks,
        "key_values": report["per_a"],
        "elapsed_seconds": round(time.time() - t0, 1),
        "timestamp_utc": datetime.now(timezone.utc).isoformat(),
    }
    JSON.write_text(json.dumps(meta, indent=2))
    print(f"wrote {CSV.name}, {JSON.name}; elapsed "
          f"{meta['elapsed_seconds']}s", flush=True)
    return 0 if all(checks.values()) else 1


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