Current task: —

E-024-theta-sweep.py

Experiments: E-024 · script updated 08-19-2026

E-024-theta-sweep.csv — 700.6 KB, updated 08-19-2026

← prev page 22 of 30 · 500/page · 14949 rows next →
# atheta_over_pikz_kw_k
10502 12 0.3333 892 233.691100656736 1.0436567030e+00
10503 12 0.3333 893 233.904549277176 5.4083194841e-02
10504 12 0.3333 894 234.176341612235 4.7226398179e-02
10505 12 0.3333 895 234.439956285262 4.8452238956e-02
10506 12 0.3333 896 234.719651954611 5.8650704468e-02
10507 12 0.3333 897 234.915141290080 1.6718588562e-01
10508 12 0.3333 898 235.213958736465 5.1144879652e-02
10509 12 0.3333 899 235.485920438149 4.8535862232e-02
10510 12 0.3333 900 235.749816643069 5.3224985178e-02
10511 12 0.3333 901 236.054597942782 1.7756250826e-01
10512 12 0.3333 902 236.267083776220 5.3781950445e-02
10513 12 0.3333 903 236.524964780984 1.0483845378e+00
10514 12 0.3333 904 236.839743306848 1.7633522129e-01
10515 12 0.3333 905 237.043679005375 5.5138800268e-02
10516 12 0.3333 906 237.317840851800 5.4790229157e-02
10517 12 0.3333 907 237.610408487643 6.5559375538e-02
10518 12 0.3333 908 237.774264729796 1.0269879213e+00
10519 12 0.3333 909 238.094828970837 5.8744745846e-02
10520 12 0.3333 910 238.367441161798 4.9753745150e-02
10521 12 0.3333 911 238.630367480304 4.8717202480e-02
10522 12 0.3333 912 238.905232374764 5.0435208305e-02
10523 12 0.3333 913 239.178264622071 5.3169753864e-02
10524 12 0.3333 914 239.490875459617 4.4579353163e-01
10525 12 0.3333 915 239.574957520332 7.9275813023e-01
10526 12 0.3333 916 239.926221343283 5.0307040804e-02
10527 12 0.3333 917 240.202704893558 5.3334934798e-02
10528 12 0.3333 918 240.462760692697 5.4236711226e-02
10529 12 0.3333 919 240.732431883650 5.2832100628e-02
10530 12 0.3333 920 241.049004207268 1.1532305312e+00
10531 12 0.3333 921 241.200161334329 8.8374933411e-02
10532 12 0.3333 922 241.498594174983 5.1705789648e-02
10533 12 0.3333 923 241.774398764605 4.9907427970e-02
10534 12 0.3333 924 242.039280324915 5.4081313091e-02
10535 12 0.3333 925 242.337973744767 7.6636237280e-02
10536 12 0.3333 926 242.495142306462 1.7710808295e-01
10537 12 0.3333 927 242.822655570091 1.0502871987e+00
10538 12 0.3333 928 243.078347078460 5.3050143498e-02
10539 12 0.3333 929 243.359572544648 2.0703655774e-01
10540 12 0.3333 930 243.610560901489 5.5822006010e-02
10541 12 0.3333 931 243.890315439440 6.4577910606e-02
10542 12 0.3333 932 244.074987120454 1.0378199951e+00
10543 12 0.3333 933 244.384142751874 5.2104953367e-02
10544 12 0.3333 934 244.663020173743 5.4912278914e-02
10545 12 0.3333 935 244.883546209973 2.1548494482e-01
10546 12 0.3333 936 245.178934243602 5.1570010440e-02
10547 12 0.3333 937 245.450400160456 5.2966437301e-02
10548 12 0.3333 938 245.698424255199 5.1218548402e-02
10549 12 0.3333 939 245.972880597694 5.5730339230e-02
10550 12 0.3333 940 246.234419360530 4.9646959652e-02
10551 12 0.3333 941 246.505133462253 5.3555206217e-02
10552 12 0.3333 942 246.818093051518 2.2409271930e-01
10553 12 0.3333 943 247.109453606979 6.5635134651e-01
10554 12 0.3333 944 247.178408509407 4.3952699835e-01
10555 12 0.3333 945 247.527675070061 5.5212758675e-02
10556 12 0.3333 946 247.795572558403 5.9399033052e-02
10557 12 0.3333 947 248.100084817589 1.0499108749e+00
10558 12 0.3333 948 248.372011649952 1.4351723575e-01
10559 12 0.3333 949 248.514214836062 1.4342968895e-01
10560 12 0.3333 950 248.824734086312 5.2561083265e-02
10561 12 0.3333 951 249.098500057952 5.4142755986e-02
10562 12 0.3333 952 249.371576257944 6.0113267347e-02
10563 12 0.3333 953 249.576455246459 1.0449246686e+00
10564 12 0.3333 954 249.882567571088 2.4220887523e-01
10565 12 0.3333 955 250.156019816159 5.0840871814e-02
10566 12 0.3333 956 250.419486931231 5.2758316171e-02
10567 12 0.3333 957 250.690591459735 5.1358666668e-02
10568 12 0.3333 958 251.009640356948 1.0315920819e+00
10569 12 0.3333 959 251.163449470361 7.4796527494e-02
10570 12 0.3333 960 251.455999606766 5.4224676273e-02
10571 12 0.3333 961 251.722127225232 5.1414720706e-02
10572 12 0.3333 962 251.992901124519 2.5600705504e-01
10573 12 0.3333 963 252.250913803532 5.3064732869e-02
10574 12 0.3333 964 252.497991081060 2.6060924552e-01
10575 12 0.3333 965 252.779945548045 5.2984143237e-02
10576 12 0.3333 966 253.068535525815 1.0485929673e+00
10577 12 0.3333 967 253.304871861876 5.6773960498e-02
10578 12 0.3333 968 253.569257171824 5.0934833479e-02
10579 12 0.3333 969 253.830955335286 5.5946227850e-02
10580 12 0.3333 970 254.107415977015 6.0664971960e-02
10581 12 0.3333 971 254.420511515504 2.2490110069e-01
10582 12 0.3333 972 254.571533001540 8.9217455978e-02
10583 12 0.3333 973 254.876350275517 5.4682116303e-02
10584 12 0.3333 974 255.196751806890 1.8035780162e-01
10585 12 0.3333 975 255.308959618906 1.1481488810e+00
10586 12 0.3333 976 255.648437615643 5.2738586333e-02
10587 12 0.3333 977 255.909288361760 6.3265694230e-02
10588 12 0.3333 978 256.198779574627 6.0384877240e-02
10589 12 0.3333 979 256.384423905453 1.0401387408e+00
10590 12 0.3333 980 256.695860684960 5.4302212399e-02
10591 12 0.3333 981 256.957774130846 6.3420408205e-02
10592 12 0.3333 982 257.227724307052 5.4522888815e-02
10593 12 0.3333 983 257.498683696896 5.2888235695e-02
10594 12 0.3333 984 257.762420502719 5.6678857525e-02
10595 12 0.3333 985 258.028392421484 5.3900075546e-02
10596 12 0.3333 986 258.272168570759 2.8986093396e-01
10597 12 0.3333 987 258.605366501980 1.0405094872e+00
10598 12 0.3333 988 258.777594570813 6.8080220070e-02
10599 12 0.3333 989 259.064426060251 5.8954655102e-02
10600 12 0.3333 990 259.345438029452 2.9679375677e-01
10601 12 0.3333 991 259.589683526931 5.4399209069e-02
10602 12 0.3333 992 259.873565576720 1.0545958183e+00
10603 12 0.3333 993 260.137204330509 7.0052622218e-02
10604 12 0.3333 994 260.338832522873 2.9627556652e-01
10605 12 0.3333 995 260.680100205961 1.0028922527e-01
10606 12 0.3333 996 260.812633504166 1.0025330619e+00
10607 12 0.3333 997 261.152727671843 5.6493288001e-02
10608 12 0.3333 998 261.419674173758 6.2814968005e-02
10609 12 0.3333 999 261.690922758925 5.5295248001e-02
10610 12 0.3333 1000 261.997589969942 1.0440330164e-01
10611 12 0.3333 1001 262.137795270676 2.6446684554e-01
10612 12 0.3333 1002 262.465209744051 6.3944377004e-02
10613 12 0.3333 1003 262.730931388363 5.5221384197e-02
10614 12 0.3333 1004 262.998113653497 5.5851242616e-02
10615 12 0.3333 1005 263.267970999834 5.7157529467e-02
10616 12 0.3333 1006 263.572761958072 1.3183789268e+00
10617 12 0.3333 1007 263.767110426892 6.5117451049e-02
10618 12 0.3333 1008 264.041242232374 6.5431231780e-02
10619 12 0.3333 1009 264.309482794951 5.6511585455e-02
10620 12 0.3333 1010 264.579904195122 5.7132556892e-02
10621 12 0.3333 1011 264.882055160513 1.1787255101e-01
10622 12 0.3333 1012 265.020275284075 2.7621268155e-01
10623 12 0.3333 1013 265.348972309709 6.6650396116e-02
10624 12 0.3333 1014 265.561230226363 1.0468933533e+00
10625 12 0.3333 1015 265.868157295991 5.6290573146e-02
10626 12 0.3333 1016 266.138345301259 5.5830616874e-02
10627 12 0.3333 1017 266.422978665601 7.3516563707e-02
10628 12 0.3333 1018 266.618387088143 1.0500644833e+00
10629 12 0.3333 1019 266.995333346249 2.8463539558e-01
10630 12 0.3333 1020 267.121948532140 1.2805663273e-01
10631 12 0.3333 1021 267.440383710639 6.0054482945e-02
10632 12 0.3333 1022 267.711007726450 6.4680276242e-02
10633 12 0.3333 1023 267.924850263189 1.0502234751e+00
10634 12 0.3333 1024 268.239878122965 6.5532125136e-02
10635 12 0.3333 1025 268.556782812851 3.4278378930e-01
10636 12 0.3333 1026 268.719485285456 7.7362577211e-02
10637 12 0.3333 1027 269.014421527283 5.6977298872e-02
10638 12 0.3333 1028 269.278100459389 5.9408057110e-02
10639 12 0.3333 1029 269.557128787773 5.8519913326e-02
10640 12 0.3333 1030 269.873026548570 1.5028894278e-01
10641 12 0.3333 1031 269.981932803754 9.6314231206e-01
10642 12 0.3333 1032 270.358191090619 3.7821585830e-01
10643 12 0.3333 1033 270.577901985958 6.7499688423e-02
10644 12 0.3333 1034 270.859677724324 6.5619098112e-02
10645 12 0.3333 1035 271.160579368947 3.8881741283e-01
10646 12 0.3333 1036 271.470516065173 7.6233967448e-01
10647 12 0.3333 1037 271.546258793785 3.5989885282e-01
10648 12 0.3333 1038 271.894066614921 6.2950871391e-02
10649 12 0.3333 1039 272.214438701480 1.4620101319e-01
10650 12 0.3333 1040 272.336855489259 3.0588682353e-01
10651 12 0.3333 1041 272.657172720560 6.5697077847e-02
10652 12 0.3333 1042 272.937749580870 6.2261996671e-02
10653 12 0.3333 1043 273.191897935506 5.8454050628e-02
10654 12 0.3333 1044 273.459585327650 1.0602157299e+00
10655 12 0.3333 1045 273.729244569892 5.9495268830e-02
10656 12 0.3333 1046 273.987690637480 6.5706907879e-02
10657 12 0.3333 1047 274.255379245661 6.4028499708e-02
10658 12 0.3333 1048 274.520555976095 6.0012163423e-02
10659 12 0.3333 1049 274.821010658584 4.2574450307e-01
10660 12 0.3333 1050 275.029754389609 6.2309988306e-02
10661 12 0.3333 1051 275.307820926990 6.7272685340e-02
10662 12 0.3333 1052 275.586251738902 1.0576161279e+00
10663 12 0.3333 1053 275.838046007142 6.0636468026e-02
10664 12 0.3333 1054 276.095822593963 6.8924550496e-02
10665 12 0.3333 1055 276.441322658713 1.3701920131e+00
10666 12 0.3333 1056 276.561253081372 1.2932288387e-01
10667 12 0.3333 1057 276.861522458233 5.8067623108e-02
10668 12 0.3333 1058 277.138201321784 6.1406243355e-02
10669 12 0.3333 1059 277.400816214521 6.7346476896e-02
10670 12 0.3333 1060 277.664118452449 6.1646223235e-02
10671 12 0.3333 1061 277.911970909795 4.6313501969e-01
10672 12 0.3333 1062 278.246315356917 1.0469471805e+00
10673 12 0.3333 1063 278.432509941185 6.8716748325e-02
10674 12 0.3333 1064 278.707860731716 6.3726676159e-02
10675 12 0.3333 1065 278.998423373890 4.6521558890e-01
10676 12 0.3333 1066 279.229873077554 1.0659647769e+00
10677 12 0.3333 1067 279.489906235409 6.5892270755e-02
10678 12 0.3333 1068 279.755252612259 6.5479756242e-02
10679 12 0.5000 1 0.320641219016 4.2900322882e-02
10680 12 0.5000 2 0.586924487270 4.2084238240e-02
10681 12 0.5000 3 0.850601529775 4.1882093234e-02
10682 12 0.5000 4 1.113470459481 4.1801955728e-02
10683 12 0.5000 5 1.375982840207 4.1762324917e-02
10684 12 0.5000 6 1.638305872345 4.1739614136e-02
10685 12 0.5000 7 1.900516979012 4.1725657383e-02
10686 12 0.5000 8 2.162655514944 4.1716221993e-02
10687 12 0.5000 9 2.424745502703 4.1709927161e-02
10688 12 0.5000 10 2.686800421336 4.1704881564e-02
10689 12 0.5000 11 2.948829341805 4.1701688610e-02
10690 12 0.5000 12 3.210840689861 4.1699105565e-02
10691 12 0.5000 13 3.472835225288 4.1696477981e-02
10692 12 0.5000 14 3.734819396423 4.1695417386e-02
10693 12 0.5000 15 3.996793588089 4.1694131155e-02
10694 12 0.5000 16 4.258763484792 4.1692597097e-02
10695 12 0.5000 17 4.520721845264 4.1692092152e-02
10696 12 0.5000 18 4.782678387091 4.1690831450e-02
10697 12 0.5000 19 5.044631555767 4.1691612895e-02
10698 12 0.5000 20 5.306580863493 4.1689159127e-02
10699 12 0.5000 21 5.568527775251 4.1691185222e-02
10700 12 0.5000 22 5.830468945980 4.1687812923e-02
10701 12 0.5000 23 6.092416242836 4.1691103388e-02
10702 12 0.5000 24 6.354353575959 4.1688046697e-02
10703 12 0.5000 25 6.616295459010 4.1689094754e-02
10704 12 0.5000 26 6.878236682992 4.1689633457e-02
10705 12 0.5000 27 7.140175456407 4.1689076631e-02
10706 12 0.5000 28 7.402116770477 4.1687889694e-02
10707 12 0.5000 29 7.664059118182 4.1691670039e-02
10708 12 0.5000 30 7.926000580463 4.1687514795e-02
10709 12 0.5000 31 8.187944762534 4.1690395291e-02
10710 12 0.5000 32 8.449892722587 4.1691066264e-02
10711 12 0.5000 33 8.711839137139 4.1690350866e-02
10712 12 0.5000 34 8.973798722731 4.1689996084e-02
10713 12 0.5000 35 9.235740185657 4.1693832455e-02
10714 12 0.5000 36 9.497712465347 4.1690912413e-02
10715 12 0.5000 37 9.759677679360 4.1696143310e-02
10716 12 0.5000 38 10.021652536151 4.1693332725e-02
10717 12 0.5000 39 10.283625772951 4.1696301078e-02
10718 12 0.5000 40 10.545622428904 4.1697174440e-02
10719 12 0.5000 41 10.807617675044 4.1702170477e-02
10720 12 0.5000 42 11.069641924336 4.1701346715e-02
10721 12 0.5000 43 11.331688408502 4.1708182772e-02
10722 12 0.5000 44 11.593744343148 4.1712672836e-02
10723 12 0.5000 45 11.855857684379 4.1715736097e-02
10724 12 0.5000 46 12.118010850141 4.1732302268e-02
10725 12 0.5000 47 12.380234655181 4.1740143019e-02
10726 12 0.5000 48 12.642596740955 4.1770309122e-02
10727 12 0.5000 49 12.905143246068 4.1806190355e-02
10728 12 0.5000 50 13.168035779123 4.1888358117e-02
10729 12 0.5000 51 13.431746436033 4.2080897325e-02
10730 12 0.5000 52 13.697834148180 4.2804558216e-02
10731 12 0.5000 53 13.984670250280 5.7973386665e-02
10732 12 0.5000 54 14.138983023402 1.0204162002e+00
10733 12 0.5000 55 14.461656818977 4.3008368243e-02
10734 12 0.5000 56 14.728337132139 4.2129530094e-02
10735 12 0.5000 57 14.992224535677 4.1894980869e-02
10736 12 0.5000 58 15.255156930788 4.1824749519e-02
10737 12 0.5000 59 15.517779274835 4.1763414417e-02
10738 12 0.5000 60 15.780122810979 4.1752456380e-02
10739 12 0.5000 61 16.042397237805 4.1729191189e-02
10740 12 0.5000 62 16.304545615014 4.1718555436e-02
10741 12 0.5000 63 16.566665044761 4.1717438206e-02
10742 12 0.5000 64 16.828767441668 4.1710999888e-02
10743 12 0.5000 65 17.090799330811 4.1702086226e-02
10744 12 0.5000 66 17.352841984174 4.1702625477e-02
10745 12 0.5000 67 17.614848310636 4.1703100759e-02
10746 12 0.5000 68 17.876852881486 4.1694586685e-02
10747 12 0.5000 69 18.138862195707 4.1704041327e-02
10748 12 0.5000 70 18.400842561193 4.1688894842e-02
10749 12 0.5000 71 18.662789255419 4.1696583891e-02
10750 12 0.5000 72 18.924819761117 4.1699856712e-02
10751 12 0.5000 73 19.186740662885 4.1685106808e-02
10752 12 0.5000 74 19.448724012474 4.1704280250e-02
10753 12 0.5000 75 19.710745075604 4.1692021052e-02
10754 12 0.5000 76 19.972661728147 4.1697274396e-02
10755 12 0.5000 77 20.234693657635 4.1691940351e-02
10756 12 0.5000 78 20.496608401379 4.1695168353e-02
10757 12 0.5000 79 20.758604552700 4.1692209318e-02
10758 12 0.5000 80 21.021979487285 1.0416919821e+00
10759 12 0.5000 81 21.282584092081 4.1712258096e-02
10760 12 0.5000 82 21.544590621857 4.1689157846e-02
10761 12 0.5000 83 21.806525712545 4.1695116237e-02
10762 12 0.5000 84 22.068582374346 4.1715219067e-02
10763 12 0.5000 85 22.330600328568 4.1701123062e-02
10764 12 0.5000 86 22.592657543852 4.1702486858e-02
10765 12 0.5000 87 22.854708182408 4.1727743493e-02
10766 12 0.5000 88 23.116888882807 4.1715220448e-02
10767 12 0.5000 89 23.379057707167 4.1739389860e-02
10768 12 0.5000 90 23.641342069756 4.1760016291e-02
10769 12 0.5000 91 23.903812307985 4.1779949983e-02
10770 12 0.5000 92 24.166502160046 4.1855851216e-02
10771 12 0.5000 93 24.429883427384 4.2012850689e-02
10772 12 0.5000 94 24.695482394805 4.2713656551e-02
10773 12 0.5000 95 25.007817196206 1.0307529928e+00
10774 12 0.5000 96 25.189169812895 4.9009175831e-02
10775 12 0.5000 97 25.465352779534 4.2448708040e-02
10776 12 0.5000 98 25.730186638440 4.1970679680e-02
10777 12 0.5000 99 25.993401713580 4.1838786242e-02
10778 12 0.5000 100 26.256062796547 4.1778667832e-02
10779 12 0.5000 101 26.518488504052 4.1762761680e-02
10780 12 0.5000 102 26.780737588100 4.1718540954e-02
10781 12 0.5000 103 27.042980467493 4.1747583308e-02
10782 12 0.5000 104 27.305008530399 4.1697294701e-02
10783 12 0.5000 105 27.567266482202 4.1734159770e-02
10784 12 0.5000 106 27.829294259151 4.1727343278e-02
10785 12 0.5000 107 28.091525260690 4.1707203700e-02
10786 12 0.5000 108 28.353613497293 4.1725986203e-02
10787 12 0.5000 109 28.615681468432 4.1714664774e-02
10788 12 0.5000 110 28.877779236194 4.1713547193e-02
10789 12 0.5000 111 29.140048249869 4.1765575740e-02
10790 12 0.5000 112 29.402161898605 4.1699228303e-02
10791 12 0.5000 113 29.664549861399 4.1786738939e-02
10792 12 0.5000 114 29.927039449588 4.1837648075e-02
10793 12 0.5000 115 30.190843879429 4.2283567811e-02
10794 12 0.5000 116 30.425919657277 1.0404371973e+00
10795 12 0.5000 117 30.710523311142 4.2018097615e-02
10796 12 0.5000 118 30.973815883561 4.1837476044e-02
10797 12 0.5000 119 31.236493423322 4.1804023786e-02
10798 12 0.5000 120 31.499350048420 4.1874326096e-02
10799 12 0.5000 121 31.762541745120 4.1903983662e-02
10800 12 0.5000 122 32.026092842829 4.2033836785e-02
10801 12 0.5000 123 32.291141212779 4.2382541350e-02
10802 12 0.5000 124 32.560366674634 4.3698909002e-02
10803 12 0.5000 125 32.907392172841 5.5767229253e-01
10804 12 0.5000 126 32.964982329982 5.1770843091e-01
10805 12 0.5000 127 33.311214679310 4.3685670223e-02
10806 12 0.5000 128 33.580553793999 4.2366033784e-02
10807 12 0.5000 129 33.845442639865 4.2031515904e-02
10808 12 0.5000 130 34.109061490647 4.1927563346e-02
10809 12 0.5000 131 34.372199005748 4.1816227898e-02
10810 12 0.5000 132 34.634916129418 4.1850551049e-02
10811 12 0.5000 133 34.897423519380 4.1723193107e-02
10812 12 0.5000 134 35.159925616231 4.1785410291e-02
10813 12 0.5000 135 35.422174360897 4.1771095151e-02
10814 12 0.5000 136 35.684747111019 4.1761082567e-02
10815 12 0.5000 137 35.947141217220 4.1795177848e-02
10816 12 0.5000 138 36.209527305542 4.1796945536e-02
10817 12 0.5000 139 36.472430858484 4.1811669517e-02
10818 12 0.5000 140 36.735257672145 4.1946619982e-02
10819 12 0.5000 141 36.998951105331 4.2026272643e-02
10820 12 0.5000 142 37.265273342050 4.2953122634e-02
10821 12 0.5000 143 37.582619613034 1.0267107711e+00
10822 12 0.5000 144 37.751700750825 5.2397911035e-02
10823 12 0.5000 145 38.032447159801 4.2665782384e-02
10824 12 0.5000 146 38.298237856736 4.2034489512e-02
10825 12 0.5000 147 38.561500392929 4.1852519589e-02
10826 12 0.5000 148 38.824249788077 4.1791104326e-02
10827 12 0.5000 149 39.086835158522 4.1799943981e-02
10828 12 0.5000 150 39.349185501549 4.1735143420e-02
10829 12 0.5000 151 39.611450439969 4.1730626018e-02
10830 12 0.5000 152 39.873654213715 4.1748532502e-02
10831 12 0.5000 153 40.135878284320 4.1738911030e-02
10832 12 0.5000 154 40.397943915949 4.1700361807e-02
10833 12 0.5000 155 40.660019485129 4.1763744802e-02
10834 12 0.5000 156 40.918855677745 1.0416704662e+00
10835 12 0.5000 157 41.184256161057 4.1772146750e-02
10836 12 0.5000 158 41.446437222278 4.1693507645e-02
10837 12 0.5000 159 41.708559098941 4.1792768144e-02
10838 12 0.5000 160 41.970796257328 4.1704559107e-02
10839 12 0.5000 161 42.233136845776 4.1815705294e-02
10840 12 0.5000 162 42.495570662709 4.1824001059e-02
10841 12 0.5000 163 42.758791668324 4.1908496645e-02
10842 12 0.5000 164 43.022991852296 4.2410031133e-02
10843 12 0.5000 165 43.324928159368 1.0362112826e+00
10844 12 0.5000 166 43.529682867352 4.4886972435e-02
10845 12 0.5000 167 43.798721247415 4.2118303458e-02
10846 12 0.5000 168 44.062492172382 4.1886680212e-02
10847 12 0.5000 169 44.324951108577 4.1765672448e-02
10848 12 0.5000 170 44.587665891250 4.1802985955e-02
10849 12 0.5000 171 44.849788362634 4.1752642472e-02
10850 12 0.5000 172 45.112125352924 4.1716515251e-02
10851 12 0.5000 173 45.374044650295 4.1786877744e-02
10852 12 0.5000 174 45.636394843020 4.1656093963e-02
10853 12 0.5000 175 45.898297142962 4.1751693163e-02
10854 12 0.5000 176 46.160257599003 4.1685457571e-02
10855 12 0.5000 177 46.422518863602 4.1847675532e-02
10856 12 0.5000 178 46.684685171291 4.1611093124e-02
10857 12 0.5000 179 46.946487703825 4.1779724944e-02
10858 12 0.5000 180 47.208627662330 4.1670222170e-02
10859 12 0.5000 181 47.470927939778 4.1753741373e-02
10860 12 0.5000 182 47.732937658157 4.1808135102e-02
10861 12 0.5000 183 48.004745526053 1.0415352809e+00
10862 12 0.5000 184 48.256819176408 4.1881127375e-02
10863 12 0.5000 185 48.518976057310 4.1710261075e-02
10864 12 0.5000 186 48.782024127179 4.1908386081e-02
10865 12 0.5000 187 49.044789079577 4.1901677558e-02
10866 12 0.5000 188 49.308807303092 4.2285994059e-02
10867 12 0.5000 189 49.580567003330 4.6202974638e-02
10868 12 0.5000 190 49.776306451334 1.0343991338e+00
10869 12 0.5000 191 50.082339449279 4.2551260610e-02
10870 12 0.5000 192 50.347378743040 4.1958055342e-02
10871 12 0.5000 193 50.610713717559 4.1893620318e-02
10872 12 0.5000 194 50.873187743825 4.1726278344e-02
10873 12 0.5000 195 51.135809339137 4.1787643779e-02
10874 12 0.5000 196 51.397513724456 4.1778914368e-02
10875 12 0.5000 197 51.660050832472 4.1761090472e-02
10876 12 0.5000 198 51.922247118352 4.1752788938e-02
10877 12 0.5000 199 52.184363137606 4.1670285753e-02
10878 12 0.5000 200 52.446244849961 4.1785578844e-02
10879 12 0.5000 201 52.708404412816 4.1716631137e-02
10880 12 0.5000 202 52.970325029106 1.0417423205e+00
10881 12 0.5000 203 53.232430734175 4.1764319538e-02
10882 12 0.5000 204 53.494797400442 4.1792583413e-02
10883 12 0.5000 205 53.756902765486 4.1774398157e-02
10884 12 0.5000 206 54.019000015611 4.1619489851e-02
10885 12 0.5000 207 54.281118944444 4.1896555154e-02
10886 12 0.5000 208 54.543617950921 4.1713726086e-02
10887 12 0.5000 209 54.805615016471 4.1831025849e-02
10888 12 0.5000 210 55.068143018301 4.1770821612e-02
10889 12 0.5000 211 55.330771230242 4.1885615626e-02
10890 12 0.5000 212 55.594207562794 4.1951955071e-02
10891 12 0.5000 213 55.857766633067 4.2153333607e-02
10892 12 0.5000 214 56.124147495619 4.3004715565e-02
10893 12 0.5000 215 56.442570751095 1.0256876348e+00
10894 12 0.5000 216 56.609205476084 5.3357394146e-02
10895 12 0.5000 217 56.890884105184 4.2717583223e-02
10896 12 0.5000 218 57.157143447244 4.2056126049e-02
10897 12 0.5000 219 57.420847843738 4.2004690306e-02
10898 12 0.5000 220 57.683911526093 4.1819764736e-02
10899 12 0.5000 221 57.947042929278 4.1925580141e-02
10900 12 0.5000 222 58.210523073018 4.2160850982e-02
10901 12 0.5000 223 58.473974561423 4.1818668671e-02
10902 12 0.5000 224 58.738379896814 4.2411336652e-02
10903 12 0.5000 225 59.006548628227 4.3322379565e-02
10904 12 0.5000 226 59.340668443110 9.9517938714e-01
10905 12 0.5000 227 59.461190150172 8.2034966616e-02
10906 12 0.5000 228 59.765007624560 4.3306651745e-02
10907 12 0.5000 229 60.032688600659 4.2250262151e-02
10908 12 0.5000 230 60.297158286148 4.1930340265e-02
10909 12 0.5000 231 60.560328390216 4.2072496845e-02
10910 12 0.5000 232 60.831424933542 1.0416757359e+00
10911 12 0.5000 233 61.085463884573 4.1919560276e-02
10912 12 0.5000 234 61.348126511258 4.1838497760e-02
10913 12 0.5000 235 61.610567030768 4.1840021691e-02
10914 12 0.5000 236 61.873092037849 4.1827404103e-02
10915 12 0.5000 237 62.135366025758 4.1870342082e-02
10916 12 0.5000 238 62.397789354861 4.1623173948e-02
10917 12 0.5000 239 62.659896733610 4.1909562704e-02
10918 12 0.5000 240 62.922460745017 4.1756092651e-02
10919 12 0.5000 241 63.185325333756 4.1774254969e-02
10920 12 0.5000 242 63.447403104349 4.1878855487e-02
10921 12 0.5000 243 63.710680399982 4.1896817580e-02
10922 12 0.5000 244 63.973084109767 4.1940153053e-02
10923 12 0.5000 245 64.236195704739 4.2286358164e-02
10924 12 0.5000 246 64.501351393346 4.2235717600e-02
10925 12 0.5000 247 64.769173938446 4.3405096697e-02
10926 12 0.5000 248 65.105455399557 9.8517902479e-01
10927 12 0.5000 249 65.218089375989 9.1663578132e-02
10928 12 0.5000 250 65.526418493525 4.3387519543e-02
10929 12 0.5000 251 65.794453758085 4.2567483337e-02
10930 12 0.5000 252 66.059059770924 4.1902345999e-02
10931 12 0.5000 253 66.323052384391 4.2124864679e-02
10932 12 0.5000 254 66.586138118723 4.2004594636e-02
10933 12 0.5000 255 66.851730906768 4.2581298485e-02
10934 12 0.5000 256 67.081091235232 1.0401619006e+00
10935 12 0.5000 257 67.369907560195 4.1947537511e-02
10936 12 0.5000 258 67.633891343099 4.2128416466e-02
10937 12 0.5000 259 67.896936608105 4.1845545705e-02
10938 12 0.5000 260 68.159208348221 4.1950744344e-02
10939 12 0.5000 261 68.422306594172 4.2051286487e-02
10940 12 0.5000 262 68.685863141445 4.1984820289e-02
10941 12 0.5000 263 68.950195828071 4.2336739698e-02
10942 12 0.5000 264 69.217180459133 4.3234538349e-02
10943 12 0.5000 265 69.541857914074 1.0174936270e+00
10944 12 0.5000 266 69.690807249925 6.0694044912e-02
10945 12 0.5000 267 69.980571432701 4.2947436885e-02
10946 12 0.5000 268 70.247149001461 4.2206530620e-02
10947 12 0.5000 269 70.510996491526 4.1768957488e-02
10948 12 0.5000 270 70.773837803944 4.2418456211e-02
10949 12 0.5000 271 71.037327074456 4.1808817391e-02
10950 12 0.5000 272 71.299939560489 4.1882619093e-02
10951 12 0.5000 273 71.561880779751 4.2092765712e-02
10952 12 0.5000 274 71.825924114941 4.1982908333e-02
10953 12 0.5000 275 72.067929365205 1.0412258185e+00
10954 12 0.5000 276 72.347630730432 4.1834283691e-02
10955 12 0.5000 277 72.609656901309 4.2222208482e-02
10956 12 0.5000 278 72.872987581215 4.1696503277e-02
10957 12 0.5000 279 73.134561772845 4.1901229937e-02
10958 12 0.5000 280 73.397239793588 4.1735893043e-02
10959 12 0.5000 281 73.659559668270 4.1829127675e-02
10960 12 0.5000 282 73.922442264984 4.1969663407e-02
10961 12 0.5000 283 74.184431911654 4.1753573816e-02
10962 12 0.5000 284 74.447633641344 4.2003932095e-02
10963 12 0.5000 285 74.709432073953 4.2031963531e-02
10964 12 0.5000 286 74.972932965242 4.1923914186e-02
10965 12 0.5000 287 75.238090471088 4.2492584291e-02
10966 12 0.5000 288 75.509449935726 4.6012696121e-02
10967 12 0.5000 289 75.707142906687 1.0349196419e+00
10968 12 0.5000 290 76.013246703040 4.2710281178e-02
10969 12 0.5000 291 76.279788788049 4.2713197672e-02
10970 12 0.5000 292 76.545214792658 4.2176024356e-02
10971 12 0.5000 293 76.812548594518 4.3469020769e-02
10972 12 0.5000 294 77.140006080480 1.0150694357e+00
10973 12 0.5000 295 77.285205970071 6.3408178693e-02
10974 12 0.5000 296 77.576275460883 4.3281055576e-02
10975 12 0.5000 297 77.844330117942 4.2248836857e-02
10976 12 0.5000 298 78.108591805308 4.2225379927e-02
10977 12 0.5000 299 78.373179366685 4.2136307751e-02
10978 12 0.5000 300 78.638780609126 4.2412400155e-02
10979 12 0.5000 301 78.904896648474 4.3281865774e-02
10980 12 0.5000 302 79.196901661633 6.3032432219e-02
10981 12 0.5000 303 79.342175964524 1.0152024660e+00
10982 12 0.5000 304 79.668519085224 4.3140782907e-02
10983 12 0.5000 305 79.936512463376 4.2614680394e-02
10984 12 0.5000 306 80.200507408763 4.1867611303e-02
10985 12 0.5000 307 80.464012178007 4.2608971998e-02
10986 12 0.5000 308 80.727546885997 4.1744714355e-02
10987 12 0.5000 309 80.990039676027 4.2005222618e-02
10988 12 0.5000 310 81.253763576484 4.2457450211e-02
10989 12 0.5000 311 81.516072720431 4.1871751671e-02
10990 12 0.5000 312 81.779754368305 4.1995546781e-02
10991 12 0.5000 313 82.043153204131 4.2037024086e-02
10992 12 0.5000 314 82.307195129924 4.2223785703e-02
10993 12 0.5000 315 82.576832299501 4.3940225061e-02
10994 12 0.5000 316 82.904989850353 1.0085784746e+00
10995 12 0.5000 317 83.040535328307 6.9343259112e-02
10996 12 0.5000 318 83.337361381826 4.3265755537e-02
10997 12 0.5000 319 83.605184648250 4.2579101551e-02
10998 12 0.5000 320 83.870633584431 4.2354655656e-02
10999 12 0.5000 321 84.135319406644 4.2870274033e-02
11000 12 0.5000 322 84.404016706889 4.3400676408e-02
11001 12 0.5000 323 84.730760176117 1.0157611825e+00

E-024-theta-sweep.json — 10.3 KB, updated 08-19-2026

JSON sidecar (click to expand)
{
  "experiment": "E-024",
  "task": "2.12: theta-flow numerics (theta-independence test)",
  "script": "research/numerics/scripts/E-024-theta-sweep.py",
  "parameters": {
    "a_list": [
      4.0,
      8.0,
      12.0
    ],
    "thetas_over_pi": [
      0.0,
      0.1667,
      0.3333,
      0.5,
      0.6667,
      0.8333,
      1.0
    ],
    "z_max": 300.0,
    "z_metric": 280.0
  },
  "checks": {
    "V1_lattice_all_theta": true,
    "V2_theta_pi_matches_E022": true,
    "V3_weights_positive": true
  },
  "key_values": {
    "a4_th0.0000pi": {
      "theta_over_pi": 0.0,
      "n_zeros": 381,
      "z1_times_a": 3.1471258584711514,
      "mass_total": 184.1835959613851,
      "mass_pm0.1": 119.4128093530634,
      "mass_pm0.05": 91.94966918355006,
      "residual": 48.76433809073876,
      "valley_mass_mean": 1.0747560148463995,
      "plateau_weight_mean": 0.21201886126408157,
      "Delta_eff": 1.6231737129268227
    },
    "a4_th0.1667pi": {
      "theta_over_pi": 0.1667,
      "n_zeros": 381,
      "z1_times_a": 3.4619359298190293,
      "mass_total": 184.18630284387328,
      "mass_pm0.1": 118.29623992508816,
      "mass_pm0.05": 86.87180322997308,
      "residual": 48.931287590873524,
      "valley_mass_mean": 1.0734525020079346,
      "plateau_weight_mean": 0.2127447286559719,
      "Delta_eff": 1.6185423804514978
    },
    "a4_th0.3333pi": {
      "theta_over_pi": 0.3333,
      "n_zeros": 381,
      "z1_times_a": 3.7176915045337466,
      "mass_total": 183.9726782811009,
      "mass_pm0.1": 113.57262540386267,
      "mass_pm0.05": 85.73049725879235,
      "residual": 50.41888852750091,
      "valley_mass_mean": 1.0599507123301588,
      "plateau_weight_mean": 0.22016981889738385,
      "Delta_eff": 1.5715785355566734
    },
    "a4_th0.5000pi": {
      "theta_over_pi": 0.5,
      "n_zeros": 381,
      "z1_times_a": 3.934163190177167,
      "mass_total": 183.98559583483848,
      "mass_pm0.1": 113.33711825061624,
      "mass_pm0.05": 89.82793793217617,
      "residual": 50.618934373720066,
      "valley_mass_mean": 1.0584655671517333,
      "plateau_weight_mean": 0.22104338154462916,
      "Delta_eff": 1.566216581357752
    },
    "a4_th0.6667pi": {
      "theta_over_pi": 0.6667,
      "n_zeros": 381,
      "z1_times_a": 4.128324562896003,
      "mass_total": 183.9983973653932,
      "mass_pm0.1": 119.75726561744686,
      "mass_pm0.05": 95.81754097212591,
      "residual": 48.13040632212352,
      "valley_mass_mean": 1.078317389232299,
      "plateau_weight_mean": 0.21017644682150013,
      "Delta_eff": 1.6352097313960756
    },
    "a4_th0.8333pi": {
      "theta_over_pi": 0.8333,
      "n_zeros": 381,
      "z1_times_a": 4.314182529701571,
      "mass_total": 184.01134904950752,
      "mass_pm0.1": 120.40026511109403,
      "mass_pm0.05": 90.96419878254113,
      "residual": 47.43102136203055,
      "valley_mass_mean": 1.0839708546625155,
      "plateau_weight_mean": 0.20712236402633416,
      "Delta_eff": 1.6550765456169134
    },
    "a4_th1.0000pi": {
      "theta_over_pi": 1.0,
      "n_zeros": 381,
      "z1_times_a": 4.504293602793437,
      "mass_total": 184.02432245308052,
      "mass_pm0.1": 116.64777135239572,
      "mass_pm0.05": 93.33647263205195,
      "residual": 48.30754760742576,
      "valley_mass_mean": 1.0771172606797996,
      "plateau_weight_mean": 0.2109499895520775,
      "Delta_eff": 1.6304224593273315
    },
    "a8_th0.0000pi": {
      "theta_over_pi": 0.0,
      "n_zeros": 763,
      "z1_times_a": 3.1437903681267265,
      "mass_total": 184.1082994928043,
      "mass_pm0.1": 134.20929653000076,
      "mass_pm0.05": 123.1835197830814,
      "residual": 57.73718018875971,
      "valley_mass_mean": 1.002945391301941,
      "plateau_weight_mean": 0.09852761124361722,
      "Delta_eff": 2.320359515027157
    },
    "a8_th0.1667pi": {
      "theta_over_pi": 0.1667,
      "n_zeros": 763,
      "z1_times_a": 3.418119179475546,
      "mass_total": 184.11283914170593,
      "mass_pm0.1": 131.8317519020843,
      "mass_pm0.05": 126.78097971430489,
      "residual": 56.7356526846647,
      "valley_mass_mean": 1.010930051246359,
      "plateau_weight_mean": 0.09681851993970085,
      "Delta_eff": 2.3457877312638367
    },
    "a8_th0.3333pi": {
      "theta_over_pi": 0.3333,
      "n_zeros": 763,
      "z1_times_a": 3.654042277120252,
      "mass_total": 184.11760264338506,
      "mass_pm0.1": 132.1490251381983,
      "mass_pm0.05": 124.0292094105938,
      "residual": 58.16107071439245,
      "valley_mass_mean": 0.9996550153094651,
      "plateau_weight_mean": 0.09925097391534557,
      "Delta_eff": 2.3097585025024654
    },
    "a8_th0.5000pi": {
      "theta_over_pi": 0.5,
      "n_zeros": 763,
      "z1_times_a": 3.867441949623103,
      "mass_total": 184.12212186389277,
      "mass_pm0.1": 133.24139728241443,
      "mass_pm0.05": 121.15410070178395,
      "residual": 59.85047462666191,
      "valley_mass_mean": 0.9862829145811973,
      "plateau_weight_mean": 0.10213391574515683,
      "Delta_eff": 2.26765839342186
    },
    "a8_th0.6667pi": {
      "theta_over_pi": 0.6667,
      "n_zeros": 763,
      "z1_times_a": 4.071478758632688,
      "mass_total": 184.1262503654809,
      "mass_pm0.1": 132.29513175105507,
      "mass_pm0.05": 122.51608044758039,
      "residual": 57.48114969555114,
      "valley_mass_mean": 1.0051198465867441,
      "plateau_weight_mean": 0.09809069913916582,
      "Delta_eff": 2.3269695116402334
    },
    "a8_th0.8333pi": {
      "theta_over_pi": 0.8333,
      "n_zeros": 763,
      "z1_times_a": 4.27766402464752,
      "mass_total": 184.12992169567084,
      "mass_pm0.1": 131.99007596810569,
      "mass_pm0.05": 124.30470833176733,
      "residual": 57.28031602287514,
      "valley_mass_mean": 1.0067429021650454,
      "plateau_weight_mean": 0.09774797956122035,
      "Delta_eff": 2.332083020259487
    },
    "a8_th1.0000pi": {
      "theta_over_pi": 1.0,
      "n_zeros": 763,
      "z1_times_a": 4.4968101024775144,
      "mass_total": 184.13312237431055,
      "mass_pm0.1": 133.51693635274228,
      "mass_pm0.05": 124.28962039506533,
      "residual": 58.6511497935264,
      "valley_mass_mean": 0.9958886712760646,
      "plateau_weight_mean": 0.10008728633707581,
      "Delta_eff": 2.297592806874823
    },
    "a12_th0.0000pi": {
      "theta_over_pi": 0.0,
      "n_zeros": 1145,
      "z1_times_a": 3.1428501414881977,
      "mass_total": 184.16007157245687,
      "mass_pm0.1": 133.61538092090012,
      "mass_pm0.05": 128.10759866335772,
      "residual": 60.30642315719122,
      "valley_mass_mean": 0.9829654636132195,
      "plateau_weight_mean": 0.06395166824728656,
      "Delta_eff": 2.732446371442262
    },
    "a12_th0.1667pi": {
      "theta_over_pi": 0.1667,
      "n_zeros": 1145,
      "z1_times_a": 3.405992501692748,
      "mass_total": 184.1639822094043,
      "mass_pm0.1": 133.36866840406773,
      "mass_pm0.05": 129.35521418242917,
      "residual": 60.3669918644722,
      "valley_mass_mean": 0.9825157963883501,
      "plateau_weight_mean": 0.06401589805352302,
      "Delta_eff": 2.73098496176509
    },
    "a12_th0.3333pi": {
      "theta_over_pi": 0.3333,
      "n_zeros": 1145,
      "z1_times_a": 3.635830555925344,
      "mass_total": 184.09580595481827,
      "mass_pm0.1": 133.41942035595872,
      "mass_pm0.05": 129.05415843419973,
      "residual": 58.57426551897014,
      "valley_mass_mean": 0.9962027018718106,
      "plateau_weight_mean": 0.06218074895856703,
      "Delta_eff": 2.7739053032480143
    },
    "a12_th0.5000pi": {
      "theta_over_pi": 0.5,
      "n_zeros": 1145,
      "z1_times_a": 3.8476946281889486,
      "mass_total": 184.09881987373944,
      "mass_pm0.1": 132.95788338488353,
      "mass_pm0.05": 129.3505890774291,
      "residual": 58.94147251618104,
      "valley_mass_mean": 0.9933122806155429,
      "plateau_weight_mean": 0.06257056530380153,
      "Delta_eff": 2.764750131884173
    },
    "a12_th0.6667pi": {
      "theta_over_pi": 0.6667,
      "n_zeros": 1145,
      "z1_times_a": 4.05423555082551,
      "mass_total": 184.10127816912785,
      "mass_pm0.1": 133.37160860447023,
      "mass_pm0.05": 129.68837121321633,
      "residual": 58.35802636312266,
      "valley_mass_mean": 0.9979623159206761,
      "plateau_weight_mean": 0.06195119571456758,
      "Delta_eff": 2.7793686068267633
    },
    "a12_th0.8333pi": {
      "theta_over_pi": 0.8333,
      "n_zeros": 1145,
      "z1_times_a": 4.2666373857585445,
      "mass_total": 184.1032513640804,
      "mass_pm0.1": 133.09565694496038,
      "mass_pm0.05": 129.3399679137547,
      "residual": 58.63289108937627,
      "valley_mass_mean": 0.9957965101166993,
      "plateau_weight_mean": 0.062242984171312424,
      "Delta_eff": 2.7724971046813764
    },
    "a12_th1.0000pi": {
      "theta_over_pi": 1.0,
      "n_zeros": 1145,
      "z1_times_a": 4.495304974166889,
      "mass_total": 184.10483484645468,
      "mass_pm0.1": 133.31147006007708,
      "mass_pm0.05": 129.13788187469896,
      "residual": 57.594257954705384,
      "valley_mass_mean": 1.004052197553566,
      "plateau_weight_mean": 0.06114040122580191,
      "Delta_eff": 2.7986264096434
    },
    "V4_theta_spread": {
      "a4": {
        "residual_minmax": [
          47.43102136203055,
          50.618934373720066
        ],
        "residual_spread_pct": 2.234095821084676,
        "mass_pm01_spread_pct": 2.302784187513983,
        "z1_times_a_range": [
          3.1471258584711514,
          4.504293602793437
        ]
      },
      "a8": {
        "residual_minmax": [
          56.7356526846647,
          59.85047462666191
        ],
        "residual_spread_pct": 1.6396401999266315,
        "mass_pm01_spread_pct": 0.6333372523281642,
        "z1_times_a_range": [
          3.1437903681267265,
          4.4968101024775144
        ]
      },
      "a12": {
        "residual_minmax": [
          57.594257954705384,
          60.3669918644722
        ],
        "residual_spread_pct": 1.6057262581418954,
        "mass_pm01_spread_pct": 0.15063835179687926,
        "z1_times_a_range": [
          3.1428501414881977,
          4.495304974166889
        ]
      }
    }
  },
  "elapsed_seconds": 212.6,
  "timestamp_utc": "2026-08-19T18:19:09.910473+00:00"
}

Source code

Python script (click to expand)
"""E-024 — task 2.12: theta-flow numerics (D-041 §5/§8, D-038 §5).

Theory (de Branges/Clark): the model space's kernel K_a(z,z) is
theta-INDEPENDENT; the extension choice theta only phase-shifts the
atom lattice z_k(theta). PREDICTION (to be tested): consolidation
statistics (valley-captured mass, residual) are theta-independent —
if confirmed, no theta(a) flow can fix consolidation and the
obstruction is entirely the K-saturation (D-040 F6); if refuted,
the theta-flow channel is alive.

For theta in {0, pi/6, pi/3, pi/2, 2pi/3, 5pi/6, pi} and a in {4,8,12}:
  - zeros of W(a,theta;z) on (0, Z_MAX] via the real gauge
        g_theta(z) = Re[ e^{-i theta/2} (z - i) V_+(z) ]
    (e^{-i theta/2} W = 2 Re[e^{-i theta/2}(z-i)V_+] on the real line,
    using Vm = conj(Vp); reduces to z ImV - ReV at theta=pi);
  - Clark weights w_k = 1/K_a(z_k,z_k) (E-022 Schur-Toeplitz route);
  - metrics: n_zeros, z1*a, mass within +/-0.1 and +/-0.05 of true
    gammas, residual R(a,theta) = total - captured, mean valley mass,
    effective depth Delta_eff = log(mean valley weight / mean plateau
    weight).

Checks:
  V1. all zeros real & count = maximal lattice a*Z_MAX/pi +/- 2,
      every theta (self-adjointness).
  V2. theta=pi reproduces E-022: |z1*a - 4.4953| < 0.05 at a=12 and
      mass(+/-0.1) within 1% of E-022 value.
  V3. weights positive, all theta.
  V4. headline: theta-spread of residual R and mass(+/-0.1) reported
      per a (small spread = theta-independence confirmed).

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

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-024-theta-sweep.csv"
JSON = DATA / "E-024-theta-sweep.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
LAM = E16.LAM_SHIFT
A_LIST = [4.0, 8.0, 12.0]
THETAS = [0.0, np.pi / 6, np.pi / 3, np.pi / 2, 2 * np.pi / 3,
          5 * np.pi / 6, np.pi]
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 locate_zeros_theta(cp, x, h, theta, z_max=Z_MAX, n_grid=N_GRID):
    zg = np.linspace(1e-3, z_max, n_grid)
    E = np.exp(1j * np.outer(zg, x))
    V = E16.hat_FT(zg, h) * (E @ cp)
    f = np.exp(-0.5j * theta) * (zg - 1j) * V
    g = f.real

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

    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 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]

    rows = []
    report = {"per_a_theta": {}}
    v1_ok = v3_ok = True
    v2 = {}
    for a in A_LIST:
        ta = time.time()
        x, h, Q, M, b = E16.build(a, H)
        n = len(x)
        cp, _ = E16.solve_v(Q, M, b[+1.0], LAM, n)
        # Toeplitz bordered solver for weights (theta-independent K)
        mc = np.zeros(n)
        mc[0] = 2 * h / 3
        mc[1] = h / 6
        tc = Q[:, 0] - LAM * mc
        u1 = scipy.linalg.solve_toeplitz((tc, tc), np.ones(n))
        s1 = u1.sum()

        def K1(z):
            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
            return float(np.real(np.conj(bz) @ v))

        for th in THETAS:
            zeros = locate_zeros_theta(cp, x, h, th)
            lat = a * Z_MAX / np.pi
            if abs(len(zeros) - lat) > 2:
                v1_ok = False
            zm = zeros[zeros <= Z_METRIC]
            ws = np.array([1.0 / K1(z) for z in zm])
            if np.any(ws <= 0):
                v3_ok = False
            tot = float(ws.sum())
            idx = np.clip(np.searchsorted(gam, zm), 1, len(gam) - 1)
            d = np.minimum(np.abs(zm - gam[idx - 1]),
                           np.abs(zm - gam[idx]))
            m01 = float(ws[d <= 0.1].sum())
            m005 = float(ws[d <= 0.05].sum())
            # valley atoms = nearest to each gamma; plateau = rest
            near_idx = np.array([np.argmin(np.abs(zm - g)) for g in gam])
            valley_mass = ws[near_idx]
            mask_pl = np.ones(len(zm), bool)
            mask_pl[near_idx] = False
            pl = ws[mask_pl]
            d_eff = float(np.log(valley_mass.mean() / pl.mean()))
            key = f"a{a:g}_th{th / np.pi:.4f}pi"
            report["per_a_theta"][key] = {
                "theta_over_pi": round(th / np.pi, 4),
                "n_zeros": int(len(zeros)),
                "z1_times_a": float(zeros[0] * a),
                "mass_total": tot,
                "mass_pm0.1": m01, "mass_pm0.05": m005,
                "residual": tot - float(valley_mass.sum()),
                "valley_mass_mean": float(valley_mass.mean()),
                "plateau_weight_mean": float(pl.mean()),
                "Delta_eff": d_eff,
            }
            for k, (zz, ww) in enumerate(zip(zm, ws), 1):
                rows.append((a, th / np.pi, k, zz, ww))
        print(f"a={a:g} done ({time.time() - ta:.0f}s)", flush=True)

    # V2: theta=pi cross-check vs E-022
    e022 = report["per_a_theta"]["a12_th1.0000pi"]
    v2 = {"z1_times_a_ok": bool(abs(e022["z1_times_a"] - 4.4953) < 0.05)}
    # V4: theta-spread per a
    v4 = {}
    for a in A_LIST:
        vals = [report["per_a_theta"][f"a{a:g}_th{th / np.pi:.4f}pi"]
                for th in THETAS]
        res = np.array([v["residual"] for v in vals])
        m01 = np.array([v["mass_pm0.1"] for v in vals])
        z1a = np.array([v["z1_times_a"] for v in vals])
        v4[f"a{a:g}"] = {
            "residual_minmax": [float(res.min()), float(res.max())],
            "residual_spread_pct": float(100 * res.std() / res.mean()),
            "mass_pm01_spread_pct": float(100 * m01.std() / m01.mean()),
            "z1_times_a_range": [float(z1a.min()), float(z1a.max())],
        }
        print(f"a={a:g}: residual spread {v4[f'a{a:g}']['residual_spread_pct']:.2f}%, "
              f"mass01 spread {v4[f'a{a:g}']['mass_pm01_spread_pct']:.2f}%, "
              f"z1a in [{z1a.min():.3f},{z1a.max():.3f}]", flush=True)

    checks = {"V1_lattice_all_theta": v1_ok,
              "V2_theta_pi_matches_E022": v2["z1_times_a_ok"],
              "V3_weights_positive": v3_ok}

    import csv as csvmod
    with open(CSV, "w", newline="") as f:
        w = csvmod.writer(f)
        w.writerow(["a", "theta_over_pi", "k", "z_k", "w_k"])
        for a, thp, k, zz, ww in rows:
            w.writerow([f"{a:g}", f"{thp:.4f}", k, f"{zz:.12f}",
                        f"{ww:.10e}"])

    meta = {
        "experiment": "E-024",
        "task": "2.12: theta-flow numerics (theta-independence test)",
        "script": "research/numerics/scripts/E-024-theta-sweep.py",
        "parameters": {"a_list": A_LIST,
                       "thetas_over_pi": [round(t / np.pi, 4)
                                          for t in THETAS],
                       "z_max": Z_MAX, "z_metric": Z_METRIC},
        "checks": checks,
        "key_values": {**report["per_a_theta"], "V4_theta_spread": v4},
        "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())