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 2 of 34 · 500/page · 16560 rows next →
# alambda_tagzlogK
502 4 -1 39.000 2.045604
503 4 -1 39.050 2.053064
504 4 -1 39.100 2.059821
505 4 -1 39.150 2.065292
506 4 -1 39.200 2.069024
507 4 -1 39.250 2.070706
508 4 -1 39.300 2.070178
509 4 -1 39.350 2.067439
510 4 -1 39.400 2.062656
511 4 -1 39.450 2.056179
512 4 -1 39.500 2.048535
513 4 -1 39.550 2.040427
514 4 -1 39.600 2.032694
515 4 -1 39.650 2.026251
516 4 -1 39.700 2.021989
517 4 -1 39.750 2.020649
518 4 -1 39.800 2.022681
519 4 -1 39.850 2.028117
520 4 -1 39.900 2.036478
521 4 -1 39.950 2.046741
522 4 -1 40.000 2.057377
523 4 -1 40.050 2.066438
524 4 -1 40.100 2.071674
525 4 -1 40.150 2.070652
526 4 -1 40.200 2.060854
527 4 -1 40.250 2.039738
528 4 -1 40.300 2.004759
529 4 -1 40.350 1.953357
530 4 -1 40.400 1.882915
531 4 -1 40.450 1.790693
532 4 -1 40.500 1.673766
533 4 -1 40.550 1.528990
534 4 -1 40.600 1.353071
535 4 -1 40.650 1.142960
536 4 -1 40.700 0.897061
537 4 -1 40.750 0.618548
538 4 -1 40.800 0.323390
539 4 -1 40.850 0.055412
540 4 -1 40.900 -0.104219
541 4 -1 40.950 -0.079987
542 4 -1 41.000 0.114790
543 4 -1 41.050 0.394949
544 4 -1 41.100 0.687803
545 4 -1 41.150 0.958276
546 4 -1 41.200 1.194826
547 4 -1 41.250 1.396029
548 4 -1 41.300 1.564063
549 4 -1 41.350 1.702104
550 4 -1 41.400 1.813392
551 4 -1 41.450 1.900951
552 4 -1 41.500 1.967545
553 4 -1 41.550 2.015723
554 4 -1 41.600 2.047890
555 4 -1 41.650 2.066367
556 4 -1 41.700 2.073448
557 4 -1 41.750 2.071443
558 4 -1 41.800 2.062687
559 4 -1 41.850 2.049528
560 4 -1 41.900 2.034284
561 4 -1 41.950 2.019153
562 4 -1 42.000 2.006104
563 4 -1 42.050 1.996744
564 4 -1 42.100 1.992186
565 4 -1 42.150 1.992957
566 4 -1 42.200 1.998946
567 4 -1 42.250 2.009428
568 4 -1 42.300 2.023134
569 4 -1 42.350 2.038375
570 4 -1 42.400 2.053166
571 4 -1 42.450 2.065353
572 4 -1 42.500 2.072704
573 4 -1 42.550 2.072976
574 4 -1 42.600 2.063941
575 4 -1 42.650 2.043390
576 4 -1 42.700 2.009108
577 4 -1 42.750 1.958832
578 4 -1 42.800 1.890194
579 4 -1 42.850 1.800655
580 4 -1 42.900 1.687444
581 4 -1 42.950 1.547516
582 4 -1 43.000 1.377605
583 4 -1 43.050 1.174533
584 4 -1 43.100 0.936217
585 4 -1 43.150 0.664451
586 4 -1 43.200 0.371827
587 4 -1 43.250 0.095691
588 4 -1 43.300 -0.088629
589 4 -1 43.350 -0.097708
590 4 -1 43.400 0.074444
591 4 -1 43.450 0.348637
592 4 -1 43.500 0.645555
593 4 -1 43.550 0.923782
594 4 -1 43.600 1.168619
595 4 -1 43.650 1.377384
596 4 -1 43.700 1.551807
597 4 -1 43.750 1.694940
598 4 -1 43.800 1.810029
599 4 -1 43.850 1.900169
600 4 -1 43.900 1.968251
601 4 -1 43.950 2.017012
602 4 -1 44.000 2.049108
603 4 -1 44.050 2.067191
604 4 -1 44.100 2.073959
605 4 -1 44.150 2.072165
606 4 -1 44.200 2.064587
607 4 -1 44.250 2.053935
608 4 -1 44.300 2.042703
609 4 -1 44.350 2.032999
610 4 -1 44.400 2.026362
611 4 -1 44.450 2.023651
612 4 -1 44.500 2.025008
613 4 -1 44.550 2.029935
614 4 -1 44.600 2.037461
615 4 -1 44.650 2.046357
616 4 -1 44.700 2.055346
617 4 -1 44.750 2.063291
618 4 -1 44.800 2.069325
619 4 -1 44.850 2.072921
620 4 -1 44.900 2.073919
621 4 -1 44.950 2.072507
622 4 -1 45.000 2.069169
623 4 -1 45.050 2.064606
624 4 -1 45.100 2.059638
625 4 -1 45.150 2.055087
626 4 -1 45.200 2.051667
627 4 -1 45.250 2.049890
628 4 -1 45.300 2.049993
629 4 -1 45.350 2.051916
630 4 -1 45.400 2.055326
631 4 -1 45.450 2.059680
632 4 -1 45.500 2.064313
633 4 -1 45.550 2.068538
634 4 -1 45.600 2.071748
635 4 -1 45.650 2.073490
636 4 -1 45.700 2.073521
637 4 -1 45.750 2.071841
638 4 -1 45.800 2.068687
639 4 -1 45.850 2.064505
640 4 -1 45.900 2.059897
641 4 -1 45.950 2.055540
642 4 -1 46.000 2.052092
643 4 -1 46.050 2.050088
644 4 -1 46.100 2.049858
645 4 -1 46.150 2.051462
646 4 -1 46.200 2.054668
647 4 -1 46.250 2.058981
648 4 -1 46.300 2.063701
649 4 -1 46.350 2.068027
650 4 -1 46.400 2.071162
651 4 -1 46.450 2.072424
652 4 -1 46.500 2.071348
653 4 -1 46.550 2.067760
654 4 -1 46.600 2.061830
655 4 -1 46.650 2.054086
656 4 -1 46.700 2.045390
657 4 -1 46.750 2.036863
658 4 -1 46.800 2.029748
659 4 -1 46.850 2.025235
660 4 -1 46.900 2.024236
661 4 -1 46.950 2.027183
662 4 -1 47.000 2.033858
663 4 -1 47.050 2.043330
664 4 -1 47.100 2.053988
665 4 -1 47.150 2.063658
666 4 -1 47.200 2.069780
667 4 -1 47.250 2.069583
668 4 -1 47.300 2.060218
669 4 -1 47.350 2.038851
670 4 -1 47.400 2.002687
671 4 -1 47.450 1.948956
672 4 -1 47.500 1.874857
673 4 -1 47.550 1.777481
674 4 -1 47.600 1.653744
675 4 -1 47.650 1.500354
676 4 -1 47.700 1.313941
677 4 -1 47.750 1.091605
678 4 -1 47.800 0.832576
679 4 -1 47.850 0.542649
680 4 -1 47.900 0.244489
681 4 -1 47.950 -0.005720
682 4 -1 48.000 -0.118652
683 4 -1 48.050 -0.038215
684 4 -1 48.100 0.190489
685 4 -1 48.150 0.477261
686 4 -1 48.200 0.761020
687 4 -1 48.250 1.016076
688 4 -1 48.300 1.235475
689 4 -1 48.350 1.419750
690 4 -1 48.400 1.571959
691 4 -1 48.450 1.695788
692 4 -1 48.500 1.794903
693 4 -1 48.550 1.872757
694 4 -1 48.600 1.932560
695 4 -1 48.650 1.977274
696 4 -1 48.700 2.009590
697 4 -1 48.750 2.031878
698 4 -1 48.800 2.046095
699 4 -1 48.850 2.053689
700 4 -1 48.900 2.055501
701 4 -1 48.950 2.051700
702 4 -1 49.000 2.041776
703 4 -1 49.050 2.024576
704 4 -1 49.100 1.998394
705 4 -1 49.150 1.961067
706 4 -1 49.200 1.910083
707 4 -1 49.250 1.842641
708 4 -1 49.300 1.755697
709 4 -1 49.350 1.645971
710 4 -1 49.400 1.509952
711 4 -1 49.450 1.343980
712 4 -1 49.500 1.144586
713 4 -1 49.550 0.909536
714 4 -1 49.600 0.640732
715 4 -1 49.650 0.351401
716 4 -1 49.700 0.080387
717 4 -1 49.750 -0.095278
718 4 -1 49.800 -0.093494
719 4 -1 49.850 0.086945
720 4 -1 49.900 0.364746
721 4 -1 49.950 0.661986
722 4 -1 50.000 0.938891
723 4 -1 50.050 1.181678
724 4 -1 50.100 1.388092
725 4 -1 50.150 1.560076
726 4 -1 50.200 1.700806
727 4 -1 50.250 1.813619
728 4 -1 50.300 1.901685
729 4 -1 50.350 1.967959
730 4 -1 50.400 2.015223
731 4 -1 50.450 2.046162
732 4 -1 50.500 2.063426
733 4 -1 50.550 2.069677
734 4 -1 50.600 2.067594
735 4 -1 50.650 2.059853
736 4 -1 50.700 2.049035
737 4 -1 50.750 2.037518
738 4 -1 50.800 2.027321
739 4 -1 50.850 2.019964
740 4 -1 50.900 2.016360
741 4 -1 50.950 2.016785
742 4 -1 51.000 2.020922
743 4 -1 51.050 2.027987
744 4 -1 51.100 2.036892
745 4 -1 51.150 2.046427
746 4 -1 51.200 2.055413
747 4 -1 51.250 2.062824
748 4 -1 51.300 2.067874
749 4 -1 51.350 2.070059
750 4 -1 51.400 2.069186
751 4 -1 51.450 2.065371
752 4 -1 51.500 2.059029
753 4 -1 51.550 2.050847
754 4 -1 51.600 2.041740
755 4 -1 51.650 2.032779
756 4 -1 51.700 2.025096
757 4 -1 51.750 2.019757
758 4 -1 51.800 2.017616
759 4 -1 51.850 2.019171
760 4 -1 51.900 2.024439
761 4 -1 51.950 2.032889
762 4 -1 52.000 2.043429
763 4 -1 52.050 2.054469
764 4 -1 52.100 2.064018
765 4 -1 52.150 2.069814
766 4 -1 52.200 2.069435
767 4 -1 52.250 2.060390
768 4 -1 52.300 2.040173
769 4 -1 52.350 2.006272
770 4 -1 52.400 1.956151
771 4 -1 52.450 1.887205
772 4 -1 52.500 1.796688
773 4 -1 52.550 1.681651
774 4 -1 52.600 1.538893
775 4 -1 52.650 1.365026
776 4 -1 52.700 1.156828
777 4 -1 52.750 0.912392
778 4 -1 52.800 0.634315
779 4 -1 52.850 0.337593
780 4 -1 52.900 0.064928
781 4 -1 52.950 -0.101970
782 4 -1 53.000 -0.083387
783 4 -1 53.050 0.110801
784 4 -1 53.100 0.393817
785 4 -1 53.150 0.690203
786 4 -1 53.200 0.963530
787 4 -1 53.250 1.201887
788 4 -1 53.300 1.403845
789 4 -1 53.350 1.571673
790 4 -1 53.400 1.708669
791 4 -1 53.450 1.818221
792 4 -1 53.500 1.903528
793 4 -1 53.550 1.967579
794 4 -1 53.600 2.013203
795 4 -1 53.650 2.043139
796 4 -1 53.700 2.060088
797 4 -1 53.750 2.066747
798 4 -1 53.800 2.065790
799 4 -1 53.850 2.059814
800 4 -1 53.900 2.051240
801 4 -1 53.950 2.042185
802 4 -1 54.000 2.034327
803 4 -1 54.050 2.028807
804 4 -1 54.100 2.026182
805 4 -1 54.150 2.026466
806 4 -1 54.200 2.029234
807 4 -1 54.250 2.033780
808 4 -1 54.300 2.039283
809 4 -1 54.350 2.044954
810 4 -1 54.400 2.050151
811 4 -1 54.450 2.054434
812 4 -1 54.500 2.057581
813 4 -1 54.550 2.059563
814 4 -1 54.600 2.060496
815 4 -1 54.650 2.060572
816 4 -1 54.700 2.059998
817 4 -1 54.750 2.058939
818 4 -1 54.800 2.057486
819 4 -1 54.850 2.055652
820 4 -1 54.900 2.053388
821 4 -1 54.950 2.050632
822 4 -1 55.000 2.047359
823 4 -1 55.050 2.043639
824 4 -1 55.100 2.039681
825 4 -1 55.150 2.035845
826 4 -1 55.200 2.032626
827 4 -1 55.250 2.030590
828 4 -1 55.300 2.030276
829 4 -1 55.350 2.032067
830 4 -1 55.400 2.036054
831 4 -1 55.450 2.041920
832 4 -1 55.500 2.048869
833 4 -1 55.550 2.055614
834 4 -1 55.600 2.060421
835 4 -1 55.650 2.061196
836 4 -1 55.700 2.055591
837 4 -1 55.750 2.041096
838 4 -1 55.800 2.015108
839 4 -1 55.850 1.974963
840 4 -1 55.900 1.917930
841 4 -1 55.950 1.841174
842 4 -1 56.000 1.741695
843 4 -1 56.050 1.616271
844 4 -1 56.100 1.461443
845 4 -1 56.150 1.273663
846 4 -1 56.200 1.049907
847 4 -1 56.250 0.789530
848 4 -1 56.300 0.499224
849 4 -1 56.350 0.204493
850 4 -1 56.400 -0.032745
851 4 -1 56.450 -0.119317
852 4 -1 56.500 -0.007672
853 4 -1 56.550 0.244238
854 4 -1 56.600 0.544220
855 4 -1 56.650 0.835050
856 4 -1 56.700 1.094088
857 4 -1 56.750 1.315776
858 4 -1 56.800 1.501084
859 4 -1 56.850 1.653046
860 4 -1 56.900 1.775120
861 4 -1 56.950 1.870667
862 4 -1 57.000 1.942846
863 4 -1 57.050 1.994648
864 4 -1 57.100 2.028989
865 4 -1 57.150 2.048782
866 4 -1 57.200 2.056989
867 4 -1 57.250 2.056630
868 4 -1 57.300 2.050719
869 4 -1 57.350 2.042136
870 4 -1 57.400 2.033444
871 4 -1 57.450 2.026669
872 4 -1 57.500 2.023116
873 4 -1 57.550 2.023268
874 4 -1 57.600 2.026817
875 4 -1 57.650 2.032812
876 4 -1 57.700 2.039913
877 4 -1 57.750 2.046660
878 4 -1 57.800 2.051732
879 4 -1 57.850 2.054150
880 4 -1 57.900 2.053406
881 4 -1 57.950 2.049531
882 4 -1 58.000 2.043095
883 4 -1 58.050 2.035141
884 4 -1 58.100 2.027057
885 4 -1 58.150 2.020367
886 4 -1 58.200 2.016478
887 4 -1 58.250 2.016402
888 4 -1 58.300 2.020504
889 4 -1 58.350 2.028357
890 4 -1 58.400 2.038712
891 4 -1 58.450 2.049608
892 4 -1 58.500 2.058568
893 4 -1 58.550 2.062822
894 4 -1 58.600 2.059498
895 4 -1 58.650 2.045764
896 4 -1 58.700 2.018890
897 4 -1 58.750 1.976259
898 4 -1 58.800 1.915320
899 4 -1 58.850 1.833527
900 4 -1 58.900 1.728257
901 4 -1 58.950 1.596753
902 4 -1 59.000 1.436127
903 4 -1 59.050 1.243564
904 4 -1 59.100 1.017017
905 4 -1 59.150 0.757155
906 4 -1 59.200 0.472230
907 4 -1 59.250 0.188454
908 4 -1 59.300 -0.036028
909 4 -1 59.350 -0.119299
910 4 -1 59.400 -0.021057
911 4 -1 59.450 0.209683
912 4 -1 59.500 0.491814
913 4 -1 59.550 0.771651
914 4 -1 59.600 1.026073
915 4 -1 59.650 1.248311
916 4 -1 59.700 1.438287
917 4 -1 59.750 1.598183
918 4 -1 59.800 1.730669
919 4 -1 59.850 1.838241
920 4 -1 59.900 1.923014
921 4 -1 59.950 1.986659
922 4 0 14.000 12.193984
923 4 0 14.050 11.285609
924 4 0 14.100 9.510847
925 4 0 14.150 7.866652
926 4 0 14.200 10.757226
927 4 0 14.250 11.868235
928 4 0 14.300 12.549265
929 4 0 14.350 13.024681
930 4 0 14.400 13.375167
931 4 0 14.450 13.639103
932 4 0 14.500 13.838000
933 4 0 14.550 13.985570
934 4 0 14.600 14.091791
935 4 0 14.650 14.165176
936 4 0 14.700 14.214307
937 4 0 14.750 14.249012
938 4 0 14.800 14.281056
939 4 0 14.850 14.323849
940 4 0 14.900 14.390524
941 4 0 14.950 14.490503
942 4 0 15.000 14.626246
943 4 0 15.050 14.792632
944 4 0 15.100 14.979524
945 4 0 15.150 15.175526
946 4 0 15.200 15.370733
947 4 0 15.250 15.557790
948 4 0 15.300 15.731799
949 4 0 15.350 15.889761
950 4 0 15.400 16.029988
951 4 0 15.450 16.151624
952 4 0 15.500 16.254307
953 4 0 15.550 16.337944
954 4 0 15.600 16.402568
955 4 0 15.650 16.448246
956 4 0 15.700 16.475017
957 4 0 15.750 16.482856
958 4 0 15.800 16.471641
959 4 0 15.850 16.441141
960 4 0 15.900 16.390989
961 4 0 15.950 16.320674
962 4 0 16.000 16.229521
963 4 0 16.050 16.116688
964 4 0 16.100 15.981167
965 4 0 16.150 15.821815
966 4 0 16.200 15.637456
967 4 0 16.250 15.427106
968 4 0 16.300 15.190503
969 4 0 16.350 14.929208
970 4 0 16.400 14.648820
971 4 0 16.450 14.362894
972 4 0 16.500 14.098028
973 4 0 16.550 13.894775
974 4 0 16.600 13.792968
975 4 0 16.650 13.803041
976 4 0 16.700 13.896569
977 4 0 16.750 14.030133
978 4 0 16.800 14.169450
979 4 0 16.850 14.294935
980 4 0 16.900 14.397584
981 4 0 16.950 14.474228
982 4 0 17.000 14.524547
983 4 0 17.050 14.549512
984 4 0 17.100 14.550676
985 4 0 17.150 14.529891
986 4 0 17.200 14.489254
987 4 0 17.250 14.431177
988 4 0 17.300 14.358542
989 4 0 17.350 14.274888
990 4 0 17.400 14.184599
991 4 0 17.450 14.093009
992 4 0 17.500 14.006284
993 4 0 17.550 13.930957
994 4 0 17.600 13.873032
995 4 0 17.650 13.836837
996 4 0 17.700 13.824046
997 4 0 17.750 13.833367
998 4 0 17.800 13.861071
999 4 0 17.850 13.902074
1000 4 0 17.900 13.951054
1001 4 0 17.950 14.003245

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