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 24 of 30 · 500/page · 14949 rows next →
# atheta_over_pikz_kw_k
11502 12 0.5000 824 215.872706851462 5.0336733403e-02
11503 12 0.5000 825 216.168276217669 1.0448205167e+00
11504 12 0.5000 826 216.366898532005 1.2557845747e-01
11505 12 0.5000 827 216.651631896714 4.5896580147e-02
11506 12 0.5000 828 216.916535217191 4.6595708118e-02
11507 12 0.5000 829 217.183923973783 4.7241548604e-02
11508 12 0.5000 830 217.457181700612 4.7845841033e-02
11509 12 0.5000 831 217.752373474534 1.0523662163e-01
11510 12 0.5000 832 217.933225397101 6.5891573049e-02
11511 12 0.5000 833 218.222571699748 4.7351310703e-02
11512 12 0.5000 834 218.497395979915 4.8138185144e-02
11513 12 0.5000 835 218.758190461803 4.7048443216e-02
11514 12 0.5000 836 219.065454194997 1.0423559789e+00
11515 12 0.5000 837 219.319579477179 1.1253396621e-01
11516 12 0.5000 838 219.516090876140 6.5121367415e-02
11517 12 0.5000 839 219.786362636300 4.9109219488e-02
11518 12 0.5000 840 220.069021904000 5.0760228182e-02
11519 12 0.5000 841 220.332233224167 5.0842263742e-02
11520 12 0.5000 842 220.683622463548 5.4001437103e-01
11521 12 0.5000 843 220.744775170828 6.3140678503e-01
11522 12 0.5000 844 221.094592739253 4.9225737826e-02
11523 12 0.5000 845 221.426659630915 1.0314780709e+00
11524 12 0.5000 846 221.594169812030 6.1863358379e-02
11525 12 0.5000 847 221.881532454713 4.8923346256e-02
11526 12 0.5000 848 222.150050746017 4.8144514282e-02
11527 12 0.5000 849 222.403607688188 5.0161229029e-02
11528 12 0.5000 850 222.680944316865 4.7102395403e-02
11529 12 0.5000 851 222.937409756969 4.6024035443e-02
11530 12 0.5000 852 223.192041212807 1.3984335676e-01
11531 12 0.5000 853 223.473861783179 4.6781962288e-02
11532 12 0.5000 854 223.744028031457 5.0260921616e-02
11533 12 0.5000 855 224.010504369962 1.1170780394e+00
11534 12 0.5000 856 224.220308629572 6.5391396074e-02
11535 12 0.5000 857 224.511913195453 4.7866873917e-02
11536 12 0.5000 858 224.796841799476 6.0926493109e-02
11537 12 0.5000 859 224.986617429584 1.0387418109e+00
11538 12 0.5000 860 225.328000746191 6.7699266962e-02
11539 12 0.5000 861 225.505461952954 1.2046677277e-01
11540 12 0.5000 862 225.809505597129 5.5547194436e-02
11541 12 0.5000 863 226.087390261636 4.7477641509e-02
11542 12 0.5000 864 226.390273228564 9.0274379490e-02
11543 12 0.5000 865 226.550580445293 9.9060855479e-02
11544 12 0.5000 866 226.864918291904 5.2767475586e-02
11545 12 0.5000 867 227.124701181793 4.8307548417e-02
11546 12 0.5000 868 227.420074636685 1.0490793789e+00
11547 12 0.5000 869 227.654951336960 4.8232290704e-02
11548 12 0.5000 870 227.928630271361 4.9526141299e-02
11549 12 0.5000 871 228.219230462964 8.0714146422e-02
11550 12 0.5000 872 228.389844976869 1.2060185719e-01
11551 12 0.5000 873 228.699049070903 5.0643594840e-02
11552 12 0.5000 874 228.980967602444 5.4685006728e-02
11553 12 0.5000 875 229.322890124578 8.7751700297e-01
11554 12 0.5000 876 229.404136856356 2.1099612200e-01
11555 12 0.5000 877 229.742510765870 5.1231125009e-02
11556 12 0.5000 878 230.014810075480 4.8031267260e-02
11557 12 0.5000 879 230.329068088353 1.0918431143e-01
11558 12 0.5000 880 230.489626372892 9.8157266894e-02
11559 12 0.5000 881 230.793806230496 5.1168752850e-02
11560 12 0.5000 882 231.080101348695 6.4084088554e-02
11561 12 0.5000 883 231.254642664794 1.0308468538e+00
11562 12 0.5000 884 231.581519852614 5.2711629782e-02
11563 12 0.5000 885 231.928676002432 3.5416795773e-01
11564 12 0.5000 886 232.003332943473 8.5580203834e-01
11565 12 0.5000 887 232.359622746960 5.2086820472e-02
11566 12 0.5000 888 232.674456897575 1.2299613756e-01
11567 12 0.5000 889 232.835423423015 9.2187178815e-02
11568 12 0.5000 890 233.135715601281 5.0131428234e-02
11569 12 0.5000 891 233.406242897600 4.9172170676e-02
11570 12 0.5000 892 233.692368824389 1.0479651870e+00
11571 12 0.5000 893 233.934765516331 5.1694150724e-02
11572 12 0.5000 894 234.205894306151 4.7509301062e-02
11573 12 0.5000 895 234.470110944608 4.8595928681e-02
11574 12 0.5000 896 234.759733785098 7.1816044017e-02
11575 12 0.5000 897 234.929473841404 1.5230101388e-01
11576 12 0.5000 898 235.234472660092 5.1081478650e-02
11577 12 0.5000 899 235.507498700349 4.8785145126e-02
11578 12 0.5000 900 235.768638228287 5.2456119930e-02
11579 12 0.5000 901 236.062597507993 1.8295212665e-01
11580 12 0.5000 902 236.304734172167 5.2737438830e-02
11581 12 0.5000 903 236.526292459097 1.0441302044e+00
11582 12 0.5000 904 236.848695940665 1.8316516890e-01
11583 12 0.5000 905 237.082132612812 5.1307762682e-02
11584 12 0.5000 906 237.347885506842 5.4282872684e-02
11585 12 0.5000 907 237.664053611787 1.1015159300e-01
11586 12 0.5000 908 237.778184934048 9.8006531053e-01
11587 12 0.5000 909 238.111936371176 5.8919126539e-02
11588 12 0.5000 910 238.388580985272 5.0217729171e-02
11589 12 0.5000 911 238.652621299508 4.8446144920e-02
11590 12 0.5000 912 238.927607759777 5.1048398236e-02
11591 12 0.5000 913 239.205496954577 5.5205773296e-02
11592 12 0.5000 914 239.513342381074 7.2053945950e-01
11593 12 0.5000 915 239.593150524381 5.1504234701e-01
11594 12 0.5000 916 239.946708210271 5.0522411904e-02
11595 12 0.5000 917 240.223460894040 5.4087871904e-02
11596 12 0.5000 918 240.484368376308 5.3941085612e-02
11597 12 0.5000 919 240.753920925732 5.2623104346e-02
11598 12 0.5000 920 241.051313538908 1.1736368972e+00
11599 12 0.5000 921 241.237289090830 6.9003575983e-02
11600 12 0.5000 922 241.523644255394 5.1065003185e-02
11601 12 0.5000 923 241.799547016433 5.0462707258e-02
11602 12 0.5000 924 242.063856903134 5.3919415213e-02
11603 12 0.5000 925 242.377902777819 1.1030069033e-01
11604 12 0.5000 926 242.516996190878 1.4263384221e-01
11605 12 0.5000 927 242.823763539561 1.0507715620e+00
11606 12 0.5000 928 243.100844401577 5.2931270705e-02
11607 12 0.5000 929 243.365808561940 2.0806458729e-01
11608 12 0.5000 930 243.637080651556 5.6207052044e-02
11609 12 0.5000 931 243.932915489164 8.5369590911e-02
11610 12 0.5000 932 244.077619449940 1.0147365474e+00
11611 12 0.5000 933 244.403922807054 5.2567165077e-02
11612 12 0.5000 934 244.689417685898 5.9539882102e-02
11613 12 0.5000 935 244.889823418937 2.0975488250e-01
11614 12 0.5000 936 245.195342134069 5.2037175475e-02
11615 12 0.5000 937 245.469522549807 5.4150645355e-02
11616 12 0.5000 938 245.719128916656 5.0233762605e-02
11617 12 0.5000 939 245.990218338594 5.5942174752e-02
11618 12 0.5000 940 246.253627598359 4.9285225121e-02
11619 12 0.5000 941 246.521090870581 5.2935085812e-02
11620 12 0.5000 942 246.823657067873 2.2834852734e-01
11621 12 0.5000 943 247.126743480972 9.6279313848e-01
11622 12 0.5000 944 247.234567375896 1.3141049247e-01
11623 12 0.5000 945 247.554062355846 5.5190542240e-02
11624 12 0.5000 946 247.817484116953 5.8234816445e-02
11625 12 0.5000 947 248.101518207991 1.0529140460e+00
11626 12 0.5000 948 248.403112478481 1.9096204942e-01
11627 12 0.5000 949 248.557113536974 9.5066839402e-02
11628 12 0.5000 950 248.855805191325 5.2067317162e-02
11629 12 0.5000 951 249.128122575016 5.4734193983e-02
11630 12 0.5000 952 249.412034120134 7.1474591493e-02
11631 12 0.5000 953 249.578496942338 1.0305555887e+00
11632 12 0.5000 954 249.886245965540 2.4195998446e-01
11633 12 0.5000 955 250.173809031150 5.1415913226e-02
11634 12 0.5000 956 250.437721433756 5.2616292042e-02
11635 12 0.5000 957 250.709095242668 5.1220642145e-02
11636 12 0.5000 958 251.011885585894 1.0494554659e+00
11637 12 0.5000 959 251.204926292500 5.9135781458e-02
11638 12 0.5000 960 251.482591690112 5.3888916355e-02
11639 12 0.5000 961 251.749264312077 5.1555005040e-02
11640 12 0.5000 962 251.998207589617 2.5560295313e-01
11641 12 0.5000 963 252.278100385605 5.4568698039e-02
11642 12 0.5000 964 252.502734529018 2.5739230765e-01
11643 12 0.5000 965 252.797202813552 5.3115647368e-02
11644 12 0.5000 966 253.069617509851 1.0505531503e+00
11645 12 0.5000 967 253.328165962419 5.6210993113e-02
11646 12 0.5000 968 253.594291186694 5.1053159612e-02
11647 12 0.5000 969 253.852750017089 5.5225351974e-02
11648 12 0.5000 970 254.126601193476 6.0733691647e-02
11649 12 0.5000 971 254.433529254971 2.5005174704e-01
11650 12 0.5000 972 254.617386843251 6.6047106501e-02
11651 12 0.5000 973 254.908101787523 5.4793686373e-02
11652 12 0.5000 974 255.237950473347 3.7494924832e-01
11653 12 0.5000 975 255.318499804629 9.5169535869e-01
11654 12 0.5000 976 255.675326696687 5.4276807462e-02
11655 12 0.5000 977 255.933380896326 6.2505542879e-02
11656 12 0.5000 978 256.242311441722 8.1024242448e-02
11657 12 0.5000 979 256.386999010130 1.0176659825e+00
11658 12 0.5000 980 256.715087337093 5.5134759377e-02
11659 12 0.5000 981 256.974711237876 6.2923212915e-02
11660 12 0.5000 982 257.246220206635 5.4482521764e-02
11661 12 0.5000 983 257.518764553126 5.3443611629e-02
11662 12 0.5000 984 257.783152513525 5.7017734995e-02
11663 12 0.5000 985 258.054362378414 5.5871580504e-02
11664 12 0.5000 986 258.276355346856 2.8616425054e-01
11665 12 0.5000 987 258.607155680830 1.0527834361e+00
11666 12 0.5000 988 258.814609071103 5.8534366850e-02
11667 12 0.5000 989 259.089396999714 5.8683234802e-02
11668 12 0.5000 990 259.350628972436 2.9785345866e-01
11669 12 0.5000 991 259.619828879813 5.3959973403e-02
11670 12 0.5000 992 259.875164877543 1.0553327540e+00
11671 12 0.5000 993 260.177454527421 8.5305716178e-02
11672 12 0.5000 994 260.348458448875 2.7891256250e-01
11673 12 0.5000 995 260.724855144361 1.8970543469e-01
11674 12 0.5000 996 260.818561370483 9.1183479958e-01
11675 12 0.5000 997 261.171191590932 5.7409725212e-02
11676 12 0.5000 998 261.437774415894 6.2769392311e-02
11677 12 0.5000 999 261.712195626750 5.5510164036e-02
11678 12 0.5000 1000 262.030892169700 1.5174428004e-01
11679 12 0.5000 1001 262.154401828369 2.1629715511e-01
11680 12 0.5000 1002 262.481745587121 6.4494813877e-02
11681 12 0.5000 1003 262.751031897188 5.5261166848e-02
11682 12 0.5000 1004 263.017949490720 5.5778210767e-02
11683 12 0.5000 1005 263.287213083694 5.7009499999e-02
11684 12 0.5000 1006 263.574161865351 1.3265456895e+00
11685 12 0.5000 1007 263.803639425488 5.9771787197e-02
11686 12 0.5000 1008 264.067116263408 6.4630045641e-02
11687 12 0.5000 1009 264.337965965455 5.6620163060e-02
11688 12 0.5000 1010 264.610420244848 5.7929432549e-02
11689 12 0.5000 1011 264.927166683537 2.0124831923e-01
11690 12 0.5000 1012 265.049988681843 1.9251202250e-01
11691 12 0.5000 1013 265.387956187261 7.7862032753e-02
11692 12 0.5000 1014 265.563401062849 1.0328008334e+00
11693 12 0.5000 1015 265.888005419357 5.7059441642e-02
11694 12 0.5000 1016 266.161002589577 5.6324675834e-02
11695 12 0.5000 1017 266.452731810728 8.5604787797e-02
11696 12 0.5000 1018 266.620274653433 1.0356997627e+00
11697 12 0.5000 1019 267.006340618865 3.2461289282e-01
11698 12 0.5000 1020 267.157964506186 9.0267625928e-02
11699 12 0.5000 1021 267.464120910780 6.0961477431e-02
11700 12 0.5000 1022 267.742083193189 7.1186560944e-02
11701 12 0.5000 1023 267.926379798659 1.0405655353e+00
11702 12 0.5000 1024 268.252075719027 6.5910437708e-02
11703 12 0.5000 1025 268.562673772708 3.5805098677e-01
11704 12 0.5000 1026 268.754116181568 6.4095308339e-02
11705 12 0.5000 1027 269.037971116565 5.7064075144e-02
11706 12 0.5000 1028 269.299221894837 5.8584449252e-02
11707 12 0.5000 1029 269.578094874014 5.8980879863e-02
11708 12 0.5000 1030 269.911733031980 3.0476770002e-01
11709 12 0.5000 1031 269.990558850263 8.0688247546e-01
11710 12 0.5000 1032 270.361578406985 3.8253565280e-01
11711 12 0.5000 1033 270.600019639876 6.4516571721e-02
11712 12 0.5000 1034 270.876557314242 6.5085339724e-02
11713 12 0.5000 1035 271.164045482255 3.9131601575e-01
11714 12 0.5000 1036 271.483937252473 9.9369403136e-01
11715 12 0.5000 1037 271.601706061953 1.2835501929e-01
11716 12 0.5000 1038 271.920767165094 6.2793101520e-02
11717 12 0.5000 1039 272.253606898035 2.5313910873e-01
11718 12 0.5000 1040 272.367161211524 1.9897102447e-01
11719 12 0.5000 1041 272.679932761483 6.4721548011e-02
11720 12 0.5000 1042 272.961110177742 6.3506454645e-02
11721 12 0.5000 1043 273.218663173786 5.8149795664e-02
11722 12 0.5000 1044 273.460828292900 1.0585390762e+00
11723 12 0.5000 1045 273.749445354772 6.0226888154e-02
11724 12 0.5000 1046 274.006357796769 6.5155300189e-02
11725 12 0.5000 1047 274.273226681834 6.3886487388e-02
11726 12 0.5000 1048 274.538333736146 5.9405774423e-02
11727 12 0.5000 1049 274.824499673761 4.3087195499e-01
11728 12 0.5000 1050 275.057878469780 5.8593909301e-02
11729 12 0.5000 1051 275.327309093653 6.7037424118e-02
11730 12 0.5000 1052 275.587508477355 1.0580899904e+00
11731 12 0.5000 1053 275.861499971504 6.0980161201e-02
11732 12 0.5000 1054 276.114363694551 6.7023147250e-02
11733 12 0.5000 1055 276.444284679808 1.4180546785e+00
11734 12 0.5000 1056 276.608203424211 8.4796480403e-02
11735 12 0.5000 1057 276.891123099068 5.6685104309e-02
11736 12 0.5000 1058 277.163668770824 6.1910535927e-02
11737 12 0.5000 1059 277.424881272755 6.7356934198e-02
11738 12 0.5000 1060 277.692282724731 6.3038538865e-02
11739 12 0.5000 1061 277.914887667386 4.5862469359e-01
11740 12 0.5000 1062 278.248035958906 1.0572593285e+00
11741 12 0.5000 1063 278.469291526997 6.2237129944e-02
11742 12 0.5000 1064 278.734966828590 6.2847484868e-02
11743 12 0.5000 1065 279.002770835586 4.6944071176e-01
11744 12 0.5000 1066 279.231804284698 1.0619827883e+00
11745 12 0.5000 1067 279.514315065477 6.5496577074e-02
11746 12 0.5000 1068 279.778272607081 6.5140372738e-02
11747 12 0.6667 1 0.337852962569 4.3331019262e-02
11748 12 0.6667 2 0.605747419925 4.2237861502e-02
11749 12 0.6667 3 0.870116074192 4.1961062149e-02
11750 12 0.6667 4 1.133372341785 4.1850098326e-02
11751 12 0.6667 5 1.396133038318 4.1794800084e-02
11752 12 0.6667 6 1.658629322378 4.1763016700e-02
11753 12 0.6667 7 1.920968300171 4.1743381308e-02
11754 12 0.6667 8 2.183205424115 4.1730100254e-02
11755 12 0.6667 9 2.445373667118 4.1721141323e-02
11756 12 0.6667 10 2.707492786752 4.1714154186e-02
11757 12 0.6667 11 2.969574781090 4.1709414732e-02
11758 12 0.6667 12 3.231631296569 4.1705830212e-02
11759 12 0.6667 13 3.493665215176 4.1702237168e-02
11760 12 0.6667 14 3.755683091428 4.1700507283e-02
11761 12 0.6667 15 4.017687175895 4.1698555940e-02
11762 12 0.6667 16 4.279684530489 4.1696895603e-02
11763 12 0.6667 17 4.541667562254 4.1695712184e-02
11764 12 0.6667 18 4.803646363621 4.1694202520e-02
11765 12 0.6667 19 5.065619308043 4.1694761208e-02
11766 12 0.6667 20 5.327588914768 4.1692170458e-02
11767 12 0.6667 21 5.589553004180 4.1694061085e-02
11768 12 0.6667 22 5.851512574104 4.1690257460e-02
11769 12 0.6667 23 6.113474375000 4.1693891351e-02
11770 12 0.6667 24 6.375429271502 4.1690375768e-02
11771 12 0.6667 25 6.637385374855 4.1691465880e-02
11772 12 0.6667 26 6.899341295689 4.1692057879e-02
11773 12 0.6667 27 7.161295053742 4.1691319991e-02
11774 12 0.6667 28 7.423251414904 4.1690233470e-02
11775 12 0.6667 29 7.685206636883 4.1694023394e-02
11776 12 0.6667 30 7.947165242546 4.1689920388e-02
11777 12 0.6667 31 8.209123145122 4.1692765452e-02
11778 12 0.6667 32 8.471086658299 4.1693724784e-02
11779 12 0.6667 33 8.733049781707 4.1692759724e-02
11780 12 0.6667 34 8.995028337256 4.1693660196e-02
11781 12 0.6667 35 9.256986721809 4.1695907746e-02
11782 12 0.6667 36 9.518979041991 4.1694637194e-02
11783 12 0.6667 37 9.780965166054 4.1699805014e-02
11784 12 0.6667 38 10.042967573276 4.1697899296e-02
11785 12 0.6667 39 10.304967705048 4.1700486180e-02
11786 12 0.6667 40 10.566995540001 4.1702870127e-02
11787 12 0.6667 41 10.829024574778 4.1707628009e-02
11788 12 0.6667 42 11.091089899602 4.1708345636e-02
11789 12 0.6667 43 11.353184490251 4.1717231812e-02
11790 12 0.6667 44 11.615299042559 4.1722162097e-02
11791 12 0.6667 45 11.877484968931 4.1728919028e-02
11792 12 0.6667 46 12.139726445836 4.1748649668e-02
11793 12 0.6667 47 12.402070215864 4.1761055937e-02
11794 12 0.6667 48 12.664588561007 4.1801021306e-02
11795 12 0.6667 49 12.927375272733 4.1852941959e-02
11796 12 0.6667 50 13.190642060016 4.1965014788e-02
11797 12 0.6667 51 13.455049585942 4.2240243059e-02
11798 12 0.6667 52 13.722901618056 4.3304892553e-02
11799 12 0.6667 53 14.032202513285 9.5546698849e-02
11800 12 0.6667 54 14.142056382632 9.8108714697e-01
11801 12 0.6667 55 14.479078469481 4.3385519704e-02
11802 12 0.6667 56 14.747160358826 4.2261925648e-02
11803 12 0.6667 57 15.011657133590 4.1965927339e-02
11804 12 0.6667 58 15.274917446745 4.1863688587e-02
11805 12 0.6667 59 15.537760575975 4.1793755137e-02
11806 12 0.6667 60 15.800249418458 4.1770948556e-02
11807 12 0.6667 61 16.062636451634 4.1745894671e-02
11808 12 0.6667 62 16.324871718675 4.1729623015e-02
11809 12 0.6667 63 16.587050289175 4.1725959573e-02
11810 12 0.6667 64 16.849208167583 4.1720301876e-02
11811 12 0.6667 65 17.111290318731 4.1707962341e-02
11812 12 0.6667 66 17.373369258300 4.1708946388e-02
11813 12 0.6667 67 17.635408482555 4.1707661273e-02
11814 12 0.6667 68 17.897444106224 4.1698722116e-02
11815 12 0.6667 69 18.159476461093 4.1709103159e-02
11816 12 0.6667 70 18.421495218830 4.1694209940e-02
11817 12 0.6667 71 18.683459538795 4.1697590637e-02
11818 12 0.6667 72 18.945513407301 4.1707507236e-02
11819 12 0.6667 73 19.207475076251 4.1688088955e-02
11820 12 0.6667 74 19.469472702776 4.1708401006e-02
11821 12 0.6667 75 19.731548233568 4.1704338237e-02
11822 12 0.6667 76 19.993532197585 4.1707215124e-02
11823 12 0.6667 77 20.255680412656 4.1720497126e-02
11824 12 0.6667 78 20.517837658383 4.1751361358e-02
11825 12 0.6667 79 20.780639620941 4.1975489732e-02
11826 12 0.6667 80 21.022812792973 1.0409739592e+00
11827 12 0.6667 81 21.301914274024 4.1870323524e-02
11828 12 0.6667 82 21.564455326074 4.1733884676e-02
11829 12 0.6667 83 21.826556003045 4.1707736205e-02
11830 12 0.6667 84 22.088661740380 4.1722106326e-02
11831 12 0.6667 85 22.350708049054 4.1701101874e-02
11832 12 0.6667 86 22.612755461498 4.1699376774e-02
11833 12 0.6667 87 22.874751869181 4.1715873009e-02
11834 12 0.6667 88 23.136871690531 4.1704700297e-02
11835 12 0.6667 89 23.398941136509 4.1719922202e-02
11836 12 0.6667 90 23.661075470525 4.1730953333e-02
11837 12 0.6667 91 23.923335242061 4.1739101632e-02
11838 12 0.6667 92 24.185665879947 4.1779974432e-02
11839 12 0.6667 93 24.448371485153 4.1858524078e-02
11840 12 0.6667 94 24.712311317310 4.2262871021e-02
11841 12 0.6667 95 25.009068526166 1.0378807179e+00
11842 12 0.6667 96 25.223402397466 4.3714224017e-02
11843 12 0.6667 97 25.490312386886 4.2014531519e-02
11844 12 0.6667 98 25.753540912491 4.1820405914e-02
11845 12 0.6667 99 26.016088914448 4.1764383399e-02
11846 12 0.6667 100 26.278393532643 4.1734907089e-02
11847 12 0.6667 101 26.540596168982 4.1736329193e-02
11848 12 0.6667 102 26.802718056628 4.1698658551e-02
11849 12 0.6667 103 27.064851299432 4.1739821782e-02
11850 12 0.6667 104 27.326829611822 4.1679837606e-02
11851 12 0.6667 105 27.589010590187 4.1734572683e-02
11852 12 0.6667 106 27.851017607601 4.1718183528e-02
11853 12 0.6667 107 28.113251729610 4.1714813640e-02
11854 12 0.6667 108 28.375378307030 4.1734697669e-02
11855 12 0.6667 109 28.637512842313 4.1725169442e-02
11856 12 0.6667 110 28.899689572886 4.1726563835e-02
11857 12 0.6667 111 29.162082432908 4.1802011931e-02
11858 12 0.6667 112 29.424499399704 4.1748307836e-02
11859 12 0.6667 113 29.687324016374 4.1896972751e-02
11860 12 0.6667 114 29.950921832451 4.2119368665e-02
11861 12 0.6667 115 30.219754570907 4.4537621198e-02
11862 12 0.6667 116 30.426928930709 1.0367145906e+00
11863 12 0.6667 117 30.727826778149 4.2426459871e-02
11864 12 0.6667 118 30.992583648092 4.1972052648e-02
11865 12 0.6667 119 31.255823486953 4.1857434869e-02
11866 12 0.6667 120 31.518894879857 4.1898212679e-02
11867 12 0.6667 121 31.782224007314 4.1921676351e-02
11868 12 0.6667 122 32.045802705645 4.2023944497e-02
11869 12 0.6667 123 32.310733117948 4.2354193524e-02
11870 12 0.6667 124 32.579596425874 4.3594264645e-02
11871 12 0.6667 125 32.924043120390 9.1432273037e-01
11872 12 0.6667 126 33.007417560256 1.6158424362e-01
11873 12 0.6667 127 33.332754827942 4.3532392541e-02
11874 12 0.6667 128 33.601587016518 4.2328009893e-02
11875 12 0.6667 129 33.866291767091 4.2006801179e-02
11876 12 0.6667 130 34.129761891478 4.1906904977e-02
11877 12 0.6667 131 34.392834093786 4.1809140922e-02
11878 12 0.6667 132 34.655461983099 4.1840662063e-02
11879 12 0.6667 133 34.917954065803 4.1710959425e-02
11880 12 0.6667 134 35.180354244968 4.1777945805e-02
11881 12 0.6667 135 35.442504672170 4.1743253661e-02
11882 12 0.6667 136 35.704953708232 4.1748067738e-02
11883 12 0.6667 137 35.967221932054 4.1773164055e-02
11884 12 0.6667 138 36.229413192198 4.1751050923e-02
11885 12 0.6667 139 36.492068916480 4.1776146132e-02
11886 12 0.6667 140 36.754502573583 4.1862503820e-02
11887 12 0.6667 141 37.017514420455 4.1862868340e-02
11888 12 0.6667 142 37.282078816073 4.2498747141e-02
11889 12 0.6667 143 37.584038454329 1.0362117816e+00
11890 12 0.6667 144 37.788636537885 4.4828277950e-02
11891 12 0.6667 145 38.057763581580 4.2166563672e-02
11892 12 0.6667 146 38.321825652297 4.1895181917e-02
11893 12 0.6667 147 38.584445916310 4.1771205480e-02
11894 12 0.6667 148 38.846788674052 4.1737930051e-02
11895 12 0.6667 149 39.109099749466 4.1771328604e-02
11896 12 0.6667 150 39.371332368836 4.1718171604e-02
11897 12 0.6667 151 39.633517688669 4.1723551960e-02
11898 12 0.6667 152 39.895694624314 4.1751509619e-02
11899 12 0.6667 153 40.158020087500 4.1771268284e-02
11900 12 0.6667 154 40.420442028348 4.1788734501e-02
11901 12 0.6667 155 40.683816442356 4.2258033480e-02
11902 12 0.6667 156 40.919728636500 1.0404573111e+00
11903 12 0.6667 157 41.203453158969 4.1998569168e-02
11904 12 0.6667 158 41.466391890902 4.1749488100e-02
11905 12 0.6667 159 41.728645288255 4.1799200827e-02
11906 12 0.6667 160 41.990913590854 4.1693875953e-02
11907 12 0.6667 161 42.253082120025 4.1785298865e-02
11908 12 0.6667 162 42.515225299737 4.1750696961e-02
11909 12 0.6667 163 42.777888606960 4.1790440575e-02
11910 12 0.6667 164 43.040590530493 4.1974059055e-02
11911 12 0.6667 165 43.325970832491 1.0402259976e+00
11912 12 0.6667 166 43.559501319581 4.2413855233e-02
11913 12 0.6667 167 43.823149099440 4.1801848557e-02
11914 12 0.6667 168 44.085721815799 4.1783605079e-02
11915 12 0.6667 169 44.347666113304 4.1684284966e-02
11916 12 0.6667 170 44.610016835007 4.1779319348e-02
11917 12 0.6667 171 44.871991727090 4.1721427482e-02
11918 12 0.6667 172 45.134233261558 4.1714970321e-02
11919 12 0.6667 173 45.396032278403 4.1759441182e-02
11920 12 0.6667 174 45.658391282661 4.1667552355e-02
11921 12 0.6667 175 45.920255585373 4.1745459860e-02
11922 12 0.6667 176 46.182195991971 4.1671139280e-02
11923 12 0.6667 177 46.444331110028 4.1847998130e-02
11924 12 0.6667 178 46.706684027639 4.1635291004e-02
11925 12 0.6667 179 46.968457496879 4.1772639730e-02
11926 12 0.6667 180 47.230658756149 4.1675582314e-02
11927 12 0.6667 181 47.493025566107 4.1786845235e-02
11928 12 0.6667 182 47.755229574495 4.1850990466e-02
11929 12 0.6667 183 48.005638478407 1.0414853195e+00
11930 12 0.6667 184 48.279080416828 4.1925783722e-02
11931 12 0.6667 185 48.541542467181 4.1731457923e-02
11932 12 0.6667 186 48.804873049219 4.2013373544e-02
11933 12 0.6667 187 49.068515631228 4.2075188009e-02
11934 12 0.6667 188 49.334346591505 4.2786228641e-02
11935 12 0.6667 189 49.619622355195 5.6388000865e-02
11936 12 0.6667 190 49.777899949393 1.0222464657e+00
11937 12 0.6667 191 50.099154072349 4.2993305610e-02
11938 12 0.6667 192 50.365843064050 4.2112560770e-02
11939 12 0.6667 193 50.629868391186 4.1984555054e-02
11940 12 0.6667 194 50.892811339658 4.1770424687e-02
11941 12 0.6667 195 51.155700707191 4.1849181225e-02
11942 12 0.6667 196 51.417595191080 4.1774560572e-02
11943 12 0.6667 197 51.680214367356 4.1789597642e-02
11944 12 0.6667 198 51.942590525520 4.1783765325e-02
11945 12 0.6667 199 52.204976969747 4.1717957031e-02
11946 12 0.6667 200 52.467121848523 4.1846910590e-02
11947 12 0.6667 201 52.730248867131 4.2050544447e-02
11948 12 0.6667 202 52.971145861115 1.0409256758e+00
11949 12 0.6667 203 53.251180531064 4.1925647743e-02
11950 12 0.6667 204 53.514079169446 4.1844919935e-02
11951 12 0.6667 205 53.776397729877 4.1793204676e-02
11952 12 0.6667 206 54.038643093146 4.1626113723e-02
11953 12 0.6667 207 54.300605283547 4.1877748879e-02
11954 12 0.6667 208 54.563151355333 4.1722470280e-02
11955 12 0.6667 209 54.825024525142 4.1796540980e-02
11956 12 0.6667 210 55.087385424021 4.1737803507e-02
11957 12 0.6667 211 55.349693587163 4.1822678595e-02
11958 12 0.6667 212 55.612766398375 4.1896804131e-02
11959 12 0.6667 213 55.875694496144 4.1995904562e-02
11960 12 0.6667 214 56.140411422768 4.2562086011e-02
11961 12 0.6667 215 56.443989231703 1.0355465980e+00
11962 12 0.6667 216 56.645474486787 4.5380445443e-02
11963 12 0.6667 217 56.915350390922 4.2198523582e-02
11964 12 0.6667 218 57.179793212614 4.1904580236e-02
11965 12 0.6667 219 57.442713496551 4.1912837187e-02
11966 12 0.6667 220 57.705333164237 4.1741702504e-02
11967 12 0.6667 221 57.967949872115 4.1852091260e-02
11968 12 0.6667 222 58.230926192492 4.2104313208e-02
11969 12 0.6667 223 58.494166937128 4.1739532307e-02
11970 12 0.6667 224 58.757667901068 4.2237454729e-02
11971 12 0.6667 225 59.024264531179 4.2903037842e-02
11972 12 0.6667 226 59.343314685999 1.0253554763e+00
11973 12 0.6667 227 59.508219816665 5.3742867340e-02
11974 12 0.6667 228 59.790840375817 4.2773444030e-02
11975 12 0.6667 229 60.056690945344 4.2086363532e-02
11976 12 0.6667 230 60.320549338310 4.1879254593e-02
11977 12 0.6667 231 60.583431444244 4.2090458957e-02
11978 12 0.6667 232 60.832327200576 1.0414198544e+00
11979 12 0.6667 233 61.107228550980 4.1928235287e-02
11980 12 0.6667 234 61.369876745187 4.1827826221e-02
11981 12 0.6667 235 61.632211670190 4.1819627431e-02
11982 12 0.6667 236 61.894650707940 4.1821268055e-02
11983 12 0.6667 237 62.156823088968 4.1850718363e-02
11984 12 0.6667 238 62.419306653489 4.1624579153e-02
11985 12 0.6667 239 62.681166359945 4.1871963825e-02
11986 12 0.6667 240 62.943627653608 4.1730610179e-02
11987 12 0.6667 241 63.206439100773 4.1791212527e-02
11988 12 0.6667 242 63.468388736987 4.1829049814e-02
11989 12 0.6667 243 63.731550939618 4.1913797821e-02
11990 12 0.6667 244 63.993876432954 4.1897905501e-02
11991 12 0.6667 245 64.256438548619 4.2176097500e-02
11992 12 0.6667 246 64.521096402645 4.2128314637e-02
11993 12 0.6667 247 64.787492657378 4.3000450574e-02
11994 12 0.6667 248 65.108511151444 1.0228231324e+00
11995 12 0.6667 249 65.267741604818 5.5907529584e-02
11996 12 0.6667 250 65.553039164942 4.2883225566e-02
11997 12 0.6667 251 65.819252401856 4.2429753233e-02
11998 12 0.6667 252 66.083630479271 4.1877007320e-02
11999 12 0.6667 253 66.347643853015 4.2225763431e-02
12000 12 0.6667 254 66.611861230831 4.2276445008e-02
12001 12 0.6667 255 66.883837574150 4.5753982997e-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())