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 26 of 30 · 500/page · 14949 rows next →
# atheta_over_pikz_kw_k
12502 12 0.6667 756 198.017199918244 1.0779791719e+00
12503 12 0.6667 757 198.325745332365 4.5968005511e-02
12504 12 0.6667 758 198.595466127049 4.6735303475e-02
12505 12 0.6667 759 198.858218787099 4.6758846499e-02
12506 12 0.6667 760 199.126214342396 4.2455174618e-02
12507 12 0.6667 761 199.388784685609 4.5231432333e-02
12508 12 0.6667 762 199.649312263319 4.5826798164e-02
12509 12 0.6667 763 199.916805767428 4.6065583051e-02
12510 12 0.6667 764 200.183542847971 9.4539504024e-02
12511 12 0.6667 765 200.438292249632 4.4421070387e-02
12512 12 0.6667 766 200.714206523436 4.6742497248e-02
12513 12 0.6667 767 201.010758858588 7.0396205038e-02
12514 12 0.6667 768 201.259075811205 1.0503188286e+00
12515 12 0.6667 769 201.446858146523 5.7253581353e-02
12516 12 0.6667 770 201.731347454625 4.8524268619e-02
12517 12 0.6667 771 202.000891726968 4.6630614200e-02
12518 12 0.6667 772 202.278451025546 4.5801746716e-02
12519 12 0.6667 773 202.495607879729 1.0449747532e+00
12520 12 0.6667 774 202.791951142458 4.5087859693e-02
12521 12 0.6667 775 203.068292041710 4.8714044935e-02
12522 12 0.6667 776 203.287894740976 9.3479136538e-02
12523 12 0.6667 777 203.571172991786 4.6354510151e-02
12524 12 0.6667 778 203.847963381247 4.8414959034e-02
12525 12 0.6667 779 204.183252557559 1.0001218854e+00
12526 12 0.6667 780 204.311209101792 8.2859991497e-02
12527 12 0.6667 781 204.610737408643 1.0348593135e-01
12528 12 0.6667 782 204.879623461946 4.5963818722e-02
12529 12 0.6667 783 205.145573276437 4.5695505263e-02
12530 12 0.6667 784 205.395323563353 1.0448872649e+00
12531 12 0.6667 785 205.675525633588 4.5311729914e-02
12532 12 0.6667 786 205.941626252163 4.5752649486e-02
12533 12 0.6667 787 206.226390161498 1.0063890515e-01
12534 12 0.6667 788 206.456831437866 4.8906668130e-02
12535 12 0.6667 789 206.725625636055 4.5062382748e-02
12536 12 0.6667 790 206.994269580656 4.7394982168e-02
12537 12 0.6667 791 207.267656584293 4.6009009048e-02
12538 12 0.6667 792 207.569387515032 7.4043234057e-02
12539 12 0.6667 793 207.815741898820 2.0470557652e-01
12540 12 0.6667 794 207.920031393796 9.0727092428e-01
12541 12 0.6667 795 208.292541304017 5.7423631420e-02
12542 12 0.6667 796 208.501215780628 9.7672598320e-02
12543 12 0.6667 797 208.800592734859 4.7078802090e-02
12544 12 0.6667 798 209.062955850411 4.8658869983e-02
12545 12 0.6667 799 209.336607504819 4.7639440979e-02
12546 12 0.6667 800 209.577664111172 1.0453517021e+00
12547 12 0.6667 801 209.893975381381 1.0364318531e-01
12548 12 0.6667 802 210.102654059838 5.1525131226e-02
12549 12 0.6667 803 210.380825834964 4.6056171391e-02
12550 12 0.6667 804 210.642035472040 4.4600201515e-02
12551 12 0.6667 805 210.907842211669 4.5213666086e-02
12552 12 0.6667 806 211.172013998719 5.0795882911e-02
12553 12 0.6667 807 211.438239668728 4.5185651936e-02
12554 12 0.6667 808 211.691195492469 1.0456324757e+00
12555 12 0.6667 809 211.964889020868 4.7067029876e-02
12556 12 0.6667 810 212.231360205365 4.6893096133e-02
12557 12 0.6667 811 212.501176990979 4.5577082901e-02
12558 12 0.6667 812 212.792824069555 9.5104987611e-02
12559 12 0.6667 813 212.985687945137 6.7749662060e-02
12560 12 0.6667 814 213.337643693571 1.0585118296e+00
12561 12 0.6667 815 213.464346284721 9.6649799284e-02
12562 12 0.6667 816 213.767438557898 4.9319301580e-02
12563 12 0.6667 817 214.046203312810 4.8591972691e-02
12564 12 0.6667 818 214.310654426164 4.5575842818e-02
12565 12 0.6667 819 214.548358461246 1.0444198097e+00
12566 12 0.6667 820 214.841669708437 4.7943435151e-02
12567 12 0.6667 821 215.070550031224 1.1698784347e-01
12568 12 0.6667 822 215.361410521703 4.6598019785e-02
12569 12 0.6667 823 215.625353339199 4.6638535999e-02
12570 12 0.6667 824 215.890186450035 5.0223633541e-02
12571 12 0.6667 825 216.169585476970 1.0503017480e+00
12572 12 0.6667 826 216.378001327247 1.2003639984e-01
12573 12 0.6667 827 216.670499275991 4.6041173000e-02
12574 12 0.6667 828 216.934915631236 4.6435003098e-02
12575 12 0.6667 829 217.201269273304 4.7068448294e-02
12576 12 0.6667 830 217.474646431880 4.8075013725e-02
12577 12 0.6667 831 217.767587087175 1.1464585745e-01
12578 12 0.6667 832 217.962154300147 5.7068790927e-02
12579 12 0.6667 833 218.242702888301 4.6834067451e-02
12580 12 0.6667 834 218.516129061407 4.8386691072e-02
12581 12 0.6667 835 218.776153847949 4.6205364234e-02
12582 12 0.6667 836 219.066459057212 1.0450845558e+00
12583 12 0.6667 837 219.337998912279 1.2064958808e-01
12584 12 0.6667 838 219.553408078413 5.7815836396e-02
12585 12 0.6667 839 219.814982952417 4.7165105830e-02
12586 12 0.6667 840 220.092746105886 5.1254356095e-02
12587 12 0.6667 841 220.355997655500 5.0066948515e-02
12588 12 0.6667 842 220.704166889195 9.7357349410e-01
12589 12 0.6667 843 220.787558956895 1.9805547117e-01
12590 12 0.6667 844 221.115983064612 4.8186902372e-02
12591 12 0.6667 845 221.428581860479 1.0445528721e+00
12592 12 0.6667 846 221.637275411179 5.1298342644e-02
12593 12 0.6667 847 221.911374983335 4.8540726332e-02
12594 12 0.6667 848 222.180316662758 4.8830031025e-02
12595 12 0.6667 849 222.431364238786 4.8717621408e-02
12596 12 0.6667 850 222.708992644416 4.8198470113e-02
12597 12 0.6667 851 222.970762792190 4.6890038080e-02
12598 12 0.6667 852 223.201508463620 1.3708860988e-01
12599 12 0.6667 853 223.497935066664 4.7715265224e-02
12600 12 0.6667 854 223.774063502964 5.2976206499e-02
12601 12 0.6667 855 224.012458328717 1.1203019298e+00
12602 12 0.6667 856 224.250073570661 5.9432859002e-02
12603 12 0.6667 857 224.539942392376 4.8481687791e-02
12604 12 0.6667 858 224.837715302558 7.8418705783e-02
12605 12 0.6667 859 224.988974202814 1.0191534262e+00
12606 12 0.6667 860 225.356432628201 8.2907045040e-02
12607 12 0.6667 861 225.524645911247 1.0563001225e-01
12608 12 0.6667 862 225.826519811458 5.5309497364e-02
12609 12 0.6667 863 226.107236557988 4.7732096477e-02
12610 12 0.6667 864 226.414594193820 1.0940696577e-01
12611 12 0.6667 865 226.577625880859 7.9845594696e-02
12612 12 0.6667 866 226.884070672221 5.3335791734e-02
12613 12 0.6667 867 227.145159361504 4.7541728656e-02
12614 12 0.6667 868 227.421117700237 1.0509612137e+00
12615 12 0.6667 869 227.680782486859 4.7383831616e-02
12616 12 0.6667 870 227.953027804502 4.9921343288e-02
12617 12 0.6667 871 228.249641774644 9.9424192227e-02
12618 12 0.6667 872 228.412767625619 1.0086314247e-01
12619 12 0.6667 873 228.718505950030 5.0383683098e-02
12620 12 0.6667 874 228.998830447183 5.4840029115e-02
12621 12 0.6667 875 229.330067225582 9.9956878230e-01
12622 12 0.6667 876 229.456343269782 9.0004702764e-02
12623 12 0.6667 877 229.767014661530 5.1110158525e-02
12624 12 0.6667 878 230.039612741234 4.7614280280e-02
12625 12 0.6667 879 230.353507421321 1.3281724572e-01
12626 12 0.6667 880 230.527252725495 7.6012801402e-02
12627 12 0.6667 881 230.824967903699 5.1772146085e-02
12628 12 0.6667 882 231.130844164084 9.6110199783e-02
12629 12 0.6667 883 231.257895626060 9.9586503462e-01
12630 12 0.6667 884 231.600004644337 5.3013743314e-02
12631 12 0.6667 885 231.954148985974 7.0041511945e-01
12632 12 0.6667 886 232.022335764511 5.0931427767e-01
12633 12 0.6667 887 232.378051274965 5.2213368862e-02
12634 12 0.6667 888 232.692655308222 1.4178309503e-01
12635 12 0.6667 889 232.866657805379 7.4369489938e-02
12636 12 0.6667 890 233.158574291358 4.9813976513e-02
12637 12 0.6667 891 233.427817598067 4.8906634167e-02
12638 12 0.6667 892 233.693461571371 1.0490982343e+00
12639 12 0.6667 893 233.958361470512 5.1054489266e-02
12640 12 0.6667 894 234.231302125541 4.8060909023e-02
12641 12 0.6667 895 234.497581967745 4.8913969473e-02
12642 12 0.6667 896 234.798433177225 9.5978264075e-02
12643 12 0.6667 897 234.951159243908 1.2723132870e-01
12644 12 0.6667 898 235.256737020725 5.0888066964e-02
12645 12 0.6667 899 235.530731557829 4.9216557181e-02
12646 12 0.6667 900 235.789772548705 5.1682242083e-02
12647 12 0.6667 901 236.069655031532 1.8554908648e-01
12648 12 0.6667 902 236.343646825117 5.8550707707e-02
12649 12 0.6667 903 236.527890183151 1.0349501902e+00
12650 12 0.6667 904 236.854992589867 1.8621180833e-01
12651 12 0.6667 905 237.111406103562 5.0850135702e-02
12652 12 0.6667 906 237.374268479853 5.3749030698e-02
12653 12 0.6667 907 237.717436648368 3.0664862121e-01
12654 12 0.6667 908 237.788719427414 7.8248891486e-01
12655 12 0.6667 909 238.129878048541 5.8660530812e-02
12656 12 0.6667 910 238.409275305582 5.0635133987e-02
12657 12 0.6667 911 238.674628775123 4.8205936466e-02
12658 12 0.6667 912 238.949179937501 5.1521885690e-02
12659 12 0.6667 913 239.232310736251 5.8093315160e-02
12660 12 0.6667 914 239.527718182386 9.5896258830e-01
12661 12 0.6667 915 239.621953486390 2.7311024208e-01
12662 12 0.6667 916 239.967523389186 5.0665832342e-02
12663 12 0.6667 917 240.244015256536 5.4778608617e-02
12664 12 0.6667 918 240.506232292444 5.3748883600e-02
12665 12 0.6667 919 240.776604523725 5.2823556613e-02
12666 12 0.6667 920 241.053017401972 1.1823341124e+00
12667 12 0.6667 921 241.269317806447 6.0650337180e-02
12668 12 0.6667 922 241.547974532378 5.0466951472e-02
12669 12 0.6667 923 241.823670527731 5.1045510713e-02
12670 12 0.6667 924 242.087504067939 5.3516631831e-02
12671 12 0.6667 925 242.410480471869 1.5703906800e-01
12672 12 0.6667 926 242.556978498914 9.7924152409e-02
12673 12 0.6667 927 242.825103149467 1.0483720116e+00
12674 12 0.6667 928 243.123877350818 5.3947763013e-02
12675 12 0.6667 929 243.371757940962 2.0715572290e-01
12676 12 0.6667 930 243.659239927875 5.7027922442e-02
12677 12 0.6667 931 243.977600393056 1.4593522825e-01
12678 12 0.6667 932 244.082228535249 9.5260199161e-01
12679 12 0.6667 933 244.423432931989 5.3040289155e-02
12680 12 0.6667 934 244.717459837626 6.7693968541e-02
12681 12 0.6667 935 244.897450014529 2.0038344128e-01
12682 12 0.6667 936 245.210640063794 5.2406247878e-02
12683 12 0.6667 937 245.486912854577 5.5256934164e-02
12684 12 0.6667 938 245.739204167225 4.9537497839e-02
12685 12 0.6667 939 246.006809259946 5.5965218351e-02
12686 12 0.6667 940 246.272010893563 4.9067331361e-02
12687 12 0.6667 941 246.536464685616 5.2272313519e-02
12688 12 0.6667 942 246.827879285362 2.3022892905e-01
12689 12 0.6667 943 247.131541774542 1.0218471794e+00
12690 12 0.6667 944 247.287088425132 7.3539372574e-02
12691 12 0.6667 945 247.581903660547 5.5293452976e-02
12692 12 0.6667 946 247.842094164764 5.7353835446e-02
12693 12 0.6667 947 248.102760353455 1.0526496814e+00
12694 12 0.6667 948 248.418945794097 2.1634589242e-01
12695 12 0.6667 949 248.600383218769 7.1349670205e-02
12696 12 0.6667 950 248.887964821837 5.1845785113e-02
12697 12 0.6667 951 249.159656695041 5.5533306344e-02
12698 12 0.6667 952 249.466688833455 1.1879639764e-01
12699 12 0.6667 953 249.582838747941 9.8070853093e-01
12700 12 0.6667 954 249.890353833369 2.4043952742e-01
12701 12 0.6667 955 250.190676543098 5.2123859823e-02
12702 12 0.6667 956 250.455615751886 5.2517517715e-02
12703 12 0.6667 957 250.727612673291 5.1256180401e-02
12704 12 0.6667 958 251.013438193785 1.0567461476e+00
12705 12 0.6667 959 251.239613223572 5.3932047373e-02
12706 12 0.6667 960 251.509901518116 5.3872233754e-02
12707 12 0.6667 961 251.781289237739 5.3709333835e-02
12708 12 0.6667 962 252.004249859427 2.5231634488e-01
12709 12 0.6667 963 252.306750848110 5.9076029371e-02
12710 12 0.6667 964 252.508240251401 2.5148967350e-01
12711 12 0.6667 965 252.814203431763 5.3727107578e-02
12712 12 0.6667 966 253.070542747764 1.0505800018e+00
12713 12 0.6667 967 253.345825596812 5.6338096787e-02
12714 12 0.6667 968 253.615100291777 5.1564074903e-02
12715 12 0.6667 969 253.872121579890 5.4638424646e-02
12716 12 0.6667 970 254.143072852771 6.0568922222e-02
12717 12 0.6667 971 254.441017203362 2.6047838071e-01
12718 12 0.6667 972 254.654359806214 5.7758500210e-02
12719 12 0.6667 973 254.937705512997 5.5284213274e-02
12720 12 0.6667 974 255.268236395082 7.8377331342e-01
12721 12 0.6667 975 255.340217144247 5.4099855285e-01
12722 12 0.6667 976 255.701083981154 5.6061361392e-02
12723 12 0.6667 977 255.957439053131 6.1353377174e-02
12724 12 0.6667 978 256.291127897562 1.4910527559e-01
12725 12 0.6667 979 256.392004338123 9.4824504745e-01
12726 12 0.6667 980 256.735188703739 5.6113181038e-02
12727 12 0.6667 981 256.992541134843 6.2158543488e-02
12728 12 0.6667 982 257.264827286590 5.4362736933e-02
12729 12 0.6667 983 257.538585899732 5.4024526678e-02
12730 12 0.6667 984 257.803889209995 5.7387903353e-02
12731 12 0.6667 985 258.083490062814 6.0719682226e-02
12732 12 0.6667 986 258.281415957430 2.7949340803e-01
12733 12 0.6667 987 258.608441660165 1.0584018499e+00
12734 12 0.6667 988 258.845230971450 5.5656618314e-02
12735 12 0.6667 989 259.115972200312 5.9622783815e-02
12736 12 0.6667 990 259.355634762445 2.9623143172e-01
12737 12 0.6667 991 259.648188643764 5.6252285673e-02
12738 12 0.6667 992 259.876605995692 1.0526104046e+00
12739 12 0.6667 993 260.209480304186 1.0985402930e-01
12740 12 0.6667 994 260.359552312346 2.5357378231e-01
12741 12 0.6667 995 260.760881383410 4.2624768668e-01
12742 12 0.6667 996 260.831217229489 6.7487052731e-01
12743 12 0.6667 997 261.188580801655 5.8148570114e-02
12744 12 0.6667 998 261.454319538608 6.2473213344e-02
12745 12 0.6667 999 261.730748318919 5.5589282362e-02
12746 12 0.6667 1000 262.055471174146 2.0872185922e-01
12747 12 0.6667 1001 262.177834186138 1.5922879587e-01
12748 12 0.6667 1002 262.497693842948 6.4628293706e-02
12749 12 0.6667 1003 262.769705610896 5.5349903536e-02
12750 12 0.6667 1004 263.036542896764 5.5740956484e-02
12751 12 0.6667 1005 263.305677418495 5.7114647055e-02
12752 12 0.6667 1006 263.575176356235 1.3291762579e+00
12753 12 0.6667 1007 263.830030633003 5.8802855811e-02
12754 12 0.6667 1008 264.088564279534 6.3810817608e-02
12755 12 0.6667 1009 264.361103381267 5.6748596038e-02
12756 12 0.6667 1010 264.634999933989 5.8491174991e-02
12757 12 0.6667 1011 264.953169836055 2.7798061571e-01
12758 12 0.6667 1012 265.094441224987 1.1751388207e-01
12759 12 0.6667 1013 265.437456943312 1.1441029182e-01
12760 12 0.6667 1014 265.567166252167 9.9276865824e-01
12761 12 0.6667 1015 265.908026826782 5.7771468635e-02
12762 12 0.6667 1016 266.184016452610 5.6966486204e-02
12763 12 0.6667 1017 266.486295333028 1.1148730795e-01
12764 12 0.6667 1018 266.622938858346 1.0071875604e+00
12765 12 0.6667 1019 267.013231209677 3.4546453400e-01
12766 12 0.6667 1020 267.192869563778 7.1960144807e-02
12767 12 0.6667 1021 267.488232911824 6.1861491330e-02
12768 12 0.6667 1022 267.779102605562 8.8403511168e-02
12769 12 0.6667 1023 267.928600992474 1.0200366941e+00
12770 12 0.6667 1024 268.263863911282 6.6103351252e-02
12771 12 0.6667 1025 268.566772814166 3.6567853207e-01
12772 12 0.6667 1026 268.783335933981 5.8380370919e-02
12773 12 0.6667 1027 269.060372658027 5.7283433812e-02
12774 12 0.6667 1028 269.319884077721 5.7725986387e-02
12775 12 0.6667 1029 269.597736999335 5.9218170481e-02
12776 12 0.6667 1030 269.941380554479 6.4666913626e-01
12777 12 0.6667 1031 270.011419548338 4.6414207491e-01
12778 12 0.6667 1032 270.364748514218 3.8468805702e-01
12779 12 0.6667 1033 270.619852972918 6.2933458986e-02
12780 12 0.6667 1034 270.892681321790 6.4675694297e-02
12781 12 0.6667 1035 271.166766866886 3.9170593367e-01
12782 12 0.6667 1036 271.488097891557 1.0426900372e+00
12783 12 0.6667 1037 271.647817910375 8.1039675062e-02
12784 12 0.6667 1038 271.944819622580 6.2108375656e-02
12785 12 0.6667 1039 272.275305589240 3.3935342102e-01
12786 12 0.6667 1040 272.412998892976 1.1481479862e-01
12787 12 0.6667 1041 272.706585860557 6.3184590941e-02
12788 12 0.6667 1042 272.986805368811 6.4883553058e-02
12789 12 0.6667 1043 273.253312349126 6.0855419843e-02
12790 12 0.6667 1044 273.462374189577 1.0527606405e+00
12791 12 0.6667 1045 273.768953832949 6.1392600210e-02
12792 12 0.6667 1046 274.025677364634 6.4679210584e-02
12793 12 0.6667 1047 274.291797542087 6.3763414469e-02
12794 12 0.6667 1048 274.557580058195 5.9108392011e-02
12795 12 0.6667 1049 274.827591407171 4.3303204228e-01
12796 12 0.6667 1050 275.083290708461 5.7504240345e-02
12797 12 0.6667 1051 275.348251693670 6.7519828920e-02
12798 12 0.6667 1052 275.588686884869 1.0563018831e+00
12799 12 0.6667 1053 275.880583908980 6.2093358973e-02
12800 12 0.6667 1054 276.131227885714 6.5349819099e-02
12801 12 0.6667 1055 276.445872912576 1.4343906140e+00
12802 12 0.6667 1056 276.644271904024 7.1552631834e-02
12803 12 0.6667 1057 276.919635226563 5.5951392480e-02
12804 12 0.6667 1058 277.189109442665 6.2566934719e-02
12805 12 0.6667 1059 277.449783552333 6.7486151024e-02
12806 12 0.6667 1060 277.726088461382 6.8678552559e-02
12807 12 0.6667 1061 277.918658610244 4.4959877877e-01
12808 12 0.6667 1062 278.249333390817 1.0620454818e+00
12809 12 0.6667 1063 278.499876964845 6.1316076096e-02
12810 12 0.6667 1064 278.766054106167 6.4284258144e-02
12811 12 0.6667 1065 279.007686247576 4.7142591390e-01
12812 12 0.6667 1066 279.233497544843 1.0559927554e+00
12813 12 0.6667 1067 279.533305052411 6.6010293772e-02
12814 12 0.6667 1068 279.798187966571 6.5195188809e-02
12815 12 0.8333 1 0.355553115480 4.3633832250e-02
12816 12 0.8333 2 0.624568912626 4.2343842714e-02
12817 12 0.8333 3 0.889413313014 4.2015240098e-02
12818 12 0.8333 4 1.152935014228 4.1883051565e-02
12819 12 0.8333 5 1.415865558479 4.1817003180e-02
12820 12 0.8333 6 1.678480302197 4.1779013266e-02
12821 12 0.8333 7 1.940906668049 4.1755499176e-02
12822 12 0.8333 8 2.203211245138 4.1739595712e-02
12823 12 0.8333 9 2.465432988702 4.1728810190e-02
12824 12 0.8333 10 2.727596155669 4.1720530947e-02
12825 12 0.8333 11 2.989714552550 4.1714694933e-02
12826 12 0.8333 12 3.251801946056 4.1710449159e-02
12827 12 0.8333 13 3.513863107836 4.1706220210e-02
12828 12 0.8333 14 3.775904145699 4.1704011034e-02
12829 12 0.8333 15 4.037928743056 4.1701551641e-02
12830 12 0.8333 16 4.299944957039 4.1699929018e-02
12831 12 0.8333 17 4.561945355332 4.1698223070e-02
12832 12 0.8333 18 4.823939723667 4.1696568274e-02
12833 12 0.8333 19 5.085926151544 4.1696891444e-02
12834 12 0.8333 20 5.347910170400 4.1694351890e-02
12835 12 0.8333 21 5.609886107389 4.1696047716e-02
12836 12 0.8333 22 5.871859233382 4.1692039757e-02
12837 12 0.8333 23 6.133830663083 4.1695815815e-02
12838 12 0.8333 24 6.395798611500 4.1692100311e-02
12839 12 0.8333 25 6.657764822052 4.1693145631e-02
12840 12 0.8333 26 6.919731083131 4.1693787450e-02
12841 12 0.8333 27 7.181695666419 4.1692909024e-02
12842 12 0.8333 28 7.443663047533 4.1691988786e-02
12843 12 0.8333 29 7.705626922310 4.1695570124e-02
12844 12 0.8333 30 7.967598214103 4.1691754389e-02
12845 12 0.8333 31 8.229565792525 4.1694391166e-02
12846 12 0.8333 32 8.491539947683 4.1695577229e-02
12847 12 0.8333 33 8.753514808150 4.1694328225e-02
12848 12 0.8333 34 9.015506581185 4.1696517127e-02
12849 12 0.8333 35 9.277477319279 4.1697046487e-02
12850 12 0.8333 36 9.539482577771 4.1697266794e-02
12851 12 0.8333 37 9.801482292429 4.1702102514e-02
12852 12 0.8333 38 10.063503674618 4.1701202611e-02
12853 12 0.8333 39 10.325522529713 4.1703195377e-02
12854 12 0.8333 40 10.587571096238 4.1706858805e-02
12855 12 0.8333 41 10.849622642866 4.1711010823e-02
12856 12 0.8333 42 11.111714521622 4.1712881032e-02
12857 12 0.8333 43 11.373839700827 4.1723214441e-02
12858 12 0.8333 44 11.635992516403 4.1727994010e-02
12859 12 0.8333 45 11.898224563036 4.1737511948e-02
12860 12 0.8333 46 12.160521138180 4.1758784187e-02
12861 12 0.8333 47 12.422940747056 4.1773949205e-02
12862 12 0.8333 48 12.685552566009 4.1819501835e-02
12863 12 0.8333 49 12.948486060784 4.1881648109e-02
12864 12 0.8333 50 13.211979493327 4.2010808351e-02
12865 12 0.8333 51 13.476804082555 4.2335854275e-02
12866 12 0.8333 52 13.745714303024 4.3606527052e-02
12867 12 0.8333 53 14.080920177984 2.5091940801e-01
12868 12 0.8333 54 14.149882858972 8.2465954866e-01
12869 12 0.8333 55 14.497332719806 4.3618242933e-02
12870 12 0.8333 56 14.766270928822 4.2341728384e-02
12871 12 0.8333 57 15.031141191034 4.2010776938e-02
12872 12 0.8333 58 15.294603661898 4.1886573948e-02
12873 12 0.8333 59 15.557585042049 4.1814132604e-02
12874 12 0.8333 60 15.820168713951 4.1782447971e-02
12875 12 0.8333 61 16.082630463608 4.1757858372e-02
12876 12 0.8333 62 16.344930089835 4.1737921626e-02
12877 12 0.8333 63 16.607152153191 4.1732146270e-02
12878 12 0.8333 64 16.869352827231 4.1728164742e-02
12879 12 0.8333 65 17.131481352735 4.1713751188e-02
12880 12 0.8333 66 17.393596665346 4.1715592563e-02
12881 12 0.8333 67 17.655673626308 4.1713247075e-02
12882 12 0.8333 68 17.917749450448 4.1704816637e-02
12883 12 0.8333 69 18.179817360521 4.1716247953e-02
12884 12 0.8333 70 18.441894117388 4.1703916204e-02
12885 12 0.8333 71 18.703907589604 4.1703669269e-02
12886 12 0.8333 72 18.966017200897 4.1721318594e-02
12887 12 0.8333 73 19.228072983768 4.1701470627e-02
12888 12 0.8333 74 19.490155049796 4.1724600007e-02
12889 12 0.8333 75 19.752379253269 4.1736047358e-02
12890 12 0.8333 76 20.014590439190 4.1749022844e-02
12891 12 0.8333 77 20.277128700769 4.1810273883e-02
12892 12 0.8333 78 20.540158646225 4.1969836370e-02
12893 12 0.8333 79 20.806493895165 4.3428802387e-02
12894 12 0.8333 80 21.023718697859 1.0383169171e+00
12895 12 0.8333 81 21.318900288096 4.2234391150e-02
12896 12 0.8333 82 21.582738404617 4.1851159744e-02
12897 12 0.8333 83 21.845335610433 4.1758466605e-02
12898 12 0.8333 84 22.107673448969 4.1751295677e-02
12899 12 0.8333 85 22.369868601450 4.1717799909e-02
12900 12 0.8333 86 22.631999227234 4.1709875836e-02
12901 12 0.8333 87 22.894019843278 4.1714724133e-02
12902 12 0.8333 88 23.156141307890 4.1704452797e-02
12903 12 0.8333 89 23.418178189509 4.1711167025e-02
12904 12 0.8333 90 23.680232299601 4.1713464300e-02
12905 12 0.8333 91 23.942363552941 4.1713772127e-02
12906 12 0.8333 92 24.204453633979 4.1726684203e-02
12907 12 0.8333 93 24.466666646623 4.1742033922e-02
12908 12 0.8333 94 24.729283946022 4.1887400201e-02
12909 12 0.8333 95 25.009997164370 1.0408109624e+00
12910 12 0.8333 96 25.249977794723 4.2063905891e-02
12911 12 0.8333 97 25.512969614894 4.1775751027e-02
12912 12 0.8333 98 25.775279820949 4.1731502546e-02
12913 12 0.8333 99 26.037429663566 4.1719886522e-02
12914 12 0.8333 100 26.299524143966 4.1709445795e-02
12915 12 0.8333 101 26.561596135227 4.1721600629e-02
12916 12 0.8333 102 26.823659695761 4.1689304914e-02
12917 12 0.8333 103 27.085735093414 4.1738647879e-02
12918 12 0.8333 104 27.347716303161 4.1671262570e-02
12919 12 0.8333 105 27.609854617166 4.1738872677e-02
12920 12 0.8333 106 27.871874420923 4.1713760340e-02
12921 12 0.8333 107 28.134131331113 4.1726020418e-02
12922 12 0.8333 108 28.396324947090 4.1748352862e-02
12923 12 0.8333 109 28.658564765347 4.1743008083e-02
12924 12 0.8333 110 28.920871638334 4.1748304147e-02
12925 12 0.8333 111 29.183437737322 4.1846747288e-02
12926 12 0.8333 112 29.446254337638 4.1820260046e-02
12927 12 0.8333 113 29.709700113058 4.2048494084e-02
12928 12 0.8333 114 29.974913905331 4.2551735122e-02
12929 12 0.8333 115 30.253894278789 5.0874860639e-02
12930 12 0.8333 116 30.428213626975 1.0285644646e+00
12931 12 0.8333 117 30.743698527359 4.2846551762e-02
12932 12 0.8333 118 31.009994237624 4.2115963893e-02
12933 12 0.8333 119 31.273842204179 4.1915652969e-02
12934 12 0.8333 120 31.537127900639 4.1916516178e-02
12935 12 0.8333 121 31.800533834108 4.1926745525e-02
12936 12 0.8333 122 32.064034990957 4.1990535026e-02
12937 12 0.8333 123 32.328613932528 4.2270828667e-02
12938 12 0.8333 124 32.596521043838 4.3327586975e-02
12939 12 0.8333 125 32.929052484139 1.0002202152e+00
12940 12 0.8333 126 33.054625405424 7.6994589238e-02
12941 12 0.8333 127 33.355423490538 4.3158494648e-02
12942 12 0.8333 128 33.622974670367 4.2222459034e-02
12943 12 0.8333 129 33.887215253761 4.1952995850e-02
12944 12 0.8333 130 34.150395891829 4.1867900278e-02
12945 12 0.8333 131 34.413312862938 4.1792774480e-02
12946 12 0.8333 132 34.675801978616 4.1822758939e-02
12947 12 0.8333 133 34.938254188414 4.1699101224e-02
12948 12 0.8333 134 35.200549184847 4.1769995521e-02
12949 12 0.8333 135 35.462613656373 4.1717142002e-02
12950 12 0.8333 136 35.724940190464 4.1736317647e-02
12951 12 0.8333 137 35.987102129226 4.1755626589e-02
12952 12 0.8333 138 36.249136871801 4.1710726670e-02
12953 12 0.8333 139 36.511576010122 4.1749020810e-02
12954 12 0.8333 140 36.773692412456 4.1791878016e-02
12955 12 0.8333 141 37.036143418017 4.1725893238e-02
12956 12 0.8333 142 37.299140472370 4.2079674729e-02
12957 12 0.8333 143 37.585057394986 1.0401757808e+00
12958 12 0.8333 144 37.817824875178 4.2374294422e-02
12959 12 0.8333 145 38.081517368929 4.1844518771e-02
12960 12 0.8333 146 38.344431384161 4.1807449602e-02
12961 12 0.8333 147 38.606675674749 4.1724888959e-02
12962 12 0.8333 148 38.868795826282 4.1709653124e-02
12963 12 0.8333 149 39.130963790122 4.1760724593e-02
12964 12 0.8333 150 39.393203938570 4.1723694951e-02
12965 12 0.8333 151 39.655463994772 4.1744107855e-02
12966 12 0.8333 152 39.917816804499 4.1792515988e-02
12967 12 0.8333 153 40.180562356759 4.1873442192e-02
12968 12 0.8333 154 40.444069416539 4.2068194533e-02
12969 12 0.8333 155 40.712175915761 4.4361404069e-02
12970 12 0.8333 156 40.920716616576 1.0369094304e+00
12971 12 0.8333 157 41.220577633170 4.2395526534e-02
12972 12 0.8333 158 41.484959264903 4.1879081983e-02
12973 12 0.8333 159 41.747698808668 4.1847707520e-02
12974 12 0.8333 160 42.010236759395 4.1720631778e-02
12975 12 0.8333 161 42.272454880271 4.1788852354e-02
12976 12 0.8333 162 42.534549200812 4.1720389622e-02
12977 12 0.8333 163 42.796988652451 4.1745017717e-02
12978 12 0.8333 164 43.058909353501 4.1712907788e-02
12979 12 0.8333 165 43.326819535849 1.0415990411e+00
12980 12 0.8333 166 43.582822461543 4.1818546460e-02
12981 12 0.8333 167 43.844917648606 4.1690887776e-02
12982 12 0.8333 168 44.107063735443 4.1755226059e-02
12983 12 0.8333 169 44.368866646541 4.1648960408e-02
12984 12 0.8333 170 44.631048023575 4.1777180115e-02
12985 12 0.8333 171 44.893012701035 4.1710029875e-02
12986 12 0.8333 172 45.155260011121 4.1730304478e-02
12987 12 0.8333 173 45.417047177879 4.1743955908e-02
12988 12 0.8333 174 45.679477873906 4.1693823497e-02
12989 12 0.8333 175 45.941411250592 4.1755068357e-02
12990 12 0.8333 176 46.203445411034 4.1677356772e-02
12991 12 0.8333 177 46.465546229449 4.1856283491e-02
12992 12 0.8333 178 46.728192216743 4.1691380402e-02
12993 12 0.8333 179 46.990171508925 4.1804267013e-02
12994 12 0.8333 180 47.252757656914 4.1751677848e-02
12995 12 0.8333 181 47.515858498465 4.1987782399e-02
12996 12 0.8333 182 47.780782716039 4.2856335991e-02
12997 12 0.8333 183 48.006552775905 1.0394696607e+00
12998 12 0.8333 184 48.297726491467 4.2304431081e-02
12999 12 0.8333 185 48.561660866923 4.1859759898e-02
13000 12 0.8333 186 48.825667497733 4.2148647127e-02
13001 12 0.8333 187 49.090337381481 4.2267216992e-02

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