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 28 of 30 · 500/page · 14949 rows next →
# atheta_over_pikz_kw_k
13502 12 0.8333 688 180.280246998891 4.5199159500e-02
13503 12 0.8333 689 180.548345055640 4.4973450842e-02
13504 12 0.8333 690 180.835076770298 7.0105508195e-02
13505 12 0.8333 691 181.076004770805 4.5928911086e-02
13506 12 0.8333 692 181.361074766993 5.8287044934e-02
13507 12 0.8333 693 181.581782678878 5.4135708770e-02
13508 12 0.8333 694 181.861476111959 4.8341651613e-02
13509 12 0.8333 695 182.200930148708 1.0033528348e+00
13510 12 0.8333 696 182.330775210738 7.7842680064e-02
13511 12 0.8333 697 182.632820078095 4.4875194872e-02
13512 12 0.8333 698 182.900017664755 4.7079843391e-02
13513 12 0.8333 699 183.170498888106 4.4579953192e-02
13514 12 0.8333 700 183.431885700507 4.3522259554e-02
13515 12 0.8333 701 183.701924879367 4.4032882759e-02
13516 12 0.8333 702 183.979160492494 7.3540949305e-02
13517 12 0.8333 703 184.229381140960 4.3648920970e-02
13518 12 0.8333 704 184.499069959117 4.9373960125e-02
13519 12 0.8333 705 184.856009389404 7.7484543506e-01
13520 12 0.8333 706 184.925061559570 3.0648186012e-01
13521 12 0.8333 707 185.291871365486 6.0501284671e-02
13522 12 0.8333 708 185.588783966099 9.8884723305e-01
13523 12 0.8333 709 185.709818631119 1.0947992283e-01
13524 12 0.8333 710 186.031948949373 4.6722617557e-02
13525 12 0.8333 711 186.303680389354 4.5707682206e-02
13526 12 0.8333 712 186.593638380294 7.4491978559e-02
13527 12 0.8333 713 186.831930435007 4.9011361282e-02
13528 12 0.8333 714 187.183357532242 3.2713991557e-01
13529 12 0.8333 715 187.248114724692 7.5249352045e-01
13530 12 0.8333 716 187.596932536229 4.4811575082e-02
13531 12 0.8333 717 187.868879015243 4.4878974592e-02
13532 12 0.8333 718 188.135987471525 4.4147065721e-02
13533 12 0.8333 719 188.400998151996 8.0070496587e-02
13534 12 0.8333 720 188.664187535418 4.5032451653e-02
13535 12 0.8333 721 188.927171363367 4.3285739301e-02
13536 12 0.8333 722 189.195756552852 4.6715725351e-02
13537 12 0.8333 723 189.417658726145 1.0407538016e+00
13538 12 0.8333 724 189.706427085848 7.8957872442e-02
13539 12 0.8333 725 189.979356738768 4.7241247749e-02
13540 12 0.8333 726 190.243420173883 4.4175280776e-02
13541 12 0.8333 727 190.507095594574 4.5209277012e-02
13542 12 0.8333 728 190.753775184470 7.9263804316e-02
13543 12 0.8333 729 191.030075013672 4.6469210039e-02
13544 12 0.8333 730 191.295012115246 4.4396657145e-02
13545 12 0.8333 731 191.564649634452 4.5092821744e-02
13546 12 0.8333 732 191.852024350859 6.0484256624e-02
13547 12 0.8333 733 192.032628346695 1.0485329616e+00
13548 12 0.8333 734 192.305448654210 5.5543253153e-02
13549 12 0.8333 735 192.581527418803 4.7708472585e-02
13550 12 0.8333 736 192.857342548109 4.6387038681e-02
13551 12 0.8333 737 193.081439419903 1.0405754223e+00
13552 12 0.8333 738 193.378973990869 4.8106833086e-02
13553 12 0.8333 739 193.644302897683 4.4931417421e-02
13554 12 0.8333 740 193.903128455291 4.5875614880e-02
13555 12 0.8333 741 194.169084616989 4.6384233060e-02
13556 12 0.8333 742 194.431255528215 8.2343377462e-02
13557 12 0.8333 743 194.696734533909 4.5062270167e-02
13558 12 0.8333 744 194.964283260046 4.5374822606e-02
13559 12 0.8333 745 195.263321655125 1.0393779472e+00
13560 12 0.8333 746 195.475342872270 4.7426055835e-02
13561 12 0.8333 747 195.744998482842 4.4528477976e-02
13562 12 0.8333 748 196.027559322194 5.3123481236e-02
13563 12 0.8333 749 196.236824879587 7.8354638247e-02
13564 12 0.8333 750 196.534072450568 4.8712640411e-02
13565 12 0.8333 751 196.870498760727 1.0053181086e+00
13566 12 0.8333 752 197.009317766734 1.2037670164e-01
13567 12 0.8333 753 197.301797684341 4.6034712897e-02
13568 12 0.8333 754 197.581147002647 4.9134320711e-02
13569 12 0.8333 755 197.867252611648 6.7368036449e-02
13570 12 0.8333 756 198.019145883555 1.0611816243e+00
13571 12 0.8333 757 198.343330626779 4.6255635948e-02
13572 12 0.8333 758 198.613667993153 4.6967608236e-02
13573 12 0.8333 759 198.876605927648 4.6595437961e-02
13574 12 0.8333 760 199.146731011399 4.2754185348e-02
13575 12 0.8333 761 199.409183548023 4.5372643604e-02
13576 12 0.8333 762 199.669335858888 4.5590780031e-02
13577 12 0.8333 763 199.936611350166 4.6281987262e-02
13578 12 0.8333 764 200.193472701748 9.4557224228e-02
13579 12 0.8333 765 200.458152377830 4.3827651918e-02
13580 12 0.8333 766 200.731669832515 4.6679739229e-02
13581 12 0.8333 767 201.028936928090 7.5392544739e-02
13582 12 0.8333 768 201.261484484405 1.0566097771e+00
13583 12 0.8333 769 201.490148850569 4.8614226893e-02
13584 12 0.8333 770 201.759959101466 4.7749174293e-02
13585 12 0.8333 771 202.027978250797 4.6444202312e-02
13586 12 0.8333 772 202.316419818840 5.2717016589e-02
13587 12 0.8333 773 202.497149729173 1.0365000123e+00
13588 12 0.8333 774 202.812402997476 4.5718415433e-02
13589 12 0.8333 775 203.096124721972 5.3134765690e-02
13590 12 0.8333 776 203.302674763245 8.8624923065e-02
13591 12 0.8333 777 203.589369545086 4.5997268875e-02
13592 12 0.8333 778 203.863949560978 4.8128492967e-02
13593 12 0.8333 779 204.185857486944 1.0282746784e+00
13594 12 0.8333 780 204.358524926414 5.7585473828e-02
13595 12 0.8333 781 204.622972624409 1.0204213319e-01
13596 12 0.8333 782 204.903521922264 4.6126061164e-02
13597 12 0.8333 783 205.172049793989 4.6860381986e-02
13598 12 0.8333 784 205.396310581608 1.0422821722e+00
13599 12 0.8333 785 205.693120765340 4.5670496190e-02
13600 12 0.8333 786 205.959932376615 4.5701413250e-02
13601 12 0.8333 787 206.236956280113 1.0296546986e-01
13602 12 0.8333 788 206.481841870975 4.7544613683e-02
13603 12 0.8333 789 206.748844253183 4.4833255952e-02
13604 12 0.8333 790 207.015534488683 4.7254110624e-02
13605 12 0.8333 791 207.290239528815 4.6215809202e-02
13606 12 0.8333 792 207.596515046413 8.5066908926e-02
13607 12 0.8333 793 207.871201412415 5.8281968216e-01
13608 12 0.8333 794 207.942285862176 5.1829526637e-01
13609 12 0.8333 795 208.323164237197 6.5221045622e-02
13610 12 0.8333 796 208.519731037252 8.9316612627e-02
13611 12 0.8333 797 208.822191148723 4.7656585264e-02
13612 12 0.8333 798 209.084389435427 4.8343676336e-02
13613 12 0.8333 799 209.361040962133 4.9502565116e-02
13614 12 0.8333 800 209.578608557098 1.0420317077e+00
13615 12 0.8333 801 209.904247789991 1.0819604757e-01
13616 12 0.8333 802 210.128643038081 4.8442677796e-02
13617 12 0.8333 803 210.402878008888 4.6221640154e-02
13618 12 0.8333 804 210.664673071059 4.4400550831e-02
13619 12 0.8333 805 210.929736357831 4.5274601668e-02
13620 12 0.8333 806 211.191560228851 5.0744641274e-02
13621 12 0.8333 807 211.462242018420 4.6251721218e-02
13622 12 0.8333 808 211.692144136450 1.0437570680e+00
13623 12 0.8333 809 211.982434349576 4.7355416458e-02
13624 12 0.8333 810 212.250002944438 4.6995943560e-02
13625 12 0.8333 811 212.521798082596 4.5902511715e-02
13626 12 0.8333 812 212.810352868655 1.0343324311e-01
13627 12 0.8333 813 213.014180076421 5.9608360854e-02
13628 12 0.8333 814 213.340840192257 1.0931982898e+00
13629 12 0.8333 815 213.513158596609 6.3696502313e-02
13630 12 0.8333 816 213.794691657808 4.8090306335e-02
13631 12 0.8333 817 214.071523623278 4.9210623773e-02
13632 12 0.8333 818 214.344657392288 4.8622853708e-02
13633 12 0.8333 819 214.549646673327 1.0395639710e+00
13634 12 0.8333 820 214.865422781792 5.1065356817e-02
13635 12 0.8333 821 215.080014875689 1.1338523349e-01
13636 12 0.8333 822 215.378474234507 4.7179510951e-02
13637 12 0.8333 823 215.644525478315 4.6920771718e-02
13638 12 0.8333 824 215.909632964221 5.0601098016e-02
13639 12 0.8333 825 216.170857922475 1.0536372790e+00
13640 12 0.8333 826 216.387725473251 1.1533677019e-01
13641 12 0.8333 827 216.686330620486 4.6357307332e-02
13642 12 0.8333 828 216.951084753001 4.6363268784e-02
13643 12 0.8333 829 217.216624226750 4.6880520887e-02
13644 12 0.8333 830 217.489770773997 4.8234253333e-02
13645 12 0.8333 831 217.778525293578 1.2055105399e-01
13646 12 0.8333 832 217.988086603532 5.1966893283e-02
13647 12 0.8333 833 218.261661904989 4.6327488052e-02
13648 12 0.8333 834 218.533479764952 4.8613888327e-02
13649 12 0.8333 835 218.793584184101 4.5621780434e-02
13650 12 0.8333 836 219.067256906416 1.0458778668e+00
13651 12 0.8333 837 219.348917944709 1.2475835383e-01
13652 12 0.8333 838 219.580940333209 5.5275533833e-02
13653 12 0.8333 839 219.839883391880 4.5875316552e-02
13654 12 0.8333 840 220.113039458596 5.1519107408e-02
13655 12 0.8333 841 220.376194401888 4.9309962135e-02
13656 12 0.8333 842 220.710072144147 1.0813069426e+00
13657 12 0.8333 843 220.835977878058 9.1510009915e-02
13658 12 0.8333 844 221.138547286082 4.7023803430e-02
13659 12 0.8333 845 221.429899828840 1.0492304637e+00
13660 12 0.8333 846 221.669598864770 4.8264534132e-02
13661 12 0.8333 847 221.937800228799 4.8297929562e-02
13662 12 0.8333 848 222.207616298085 4.9756088471e-02
13663 12 0.8333 849 222.458490946146 4.7427364035e-02
13664 12 0.8333 850 222.735448868834 4.9254342208e-02
13665 12 0.8333 851 223.007360133378 5.0691945361e-02
13666 12 0.8333 852 223.212674591749 1.3127281078e-01
13667 12 0.8333 853 223.520036730416 4.8721198577e-02
13668 12 0.8333 854 223.805390510250 5.8641998727e-02
13669 12 0.8333 855 224.014341168514 1.1175312797e+00
13670 12 0.8333 856 224.275433012953 5.6235776163e-02
13671 12 0.8333 857 224.564907174906 4.9170542065e-02
13672 12 0.8333 858 224.880550411238 1.2452873398e-01
13673 12 0.8333 859 224.992722126714 9.7108351137e-01
13674 12 0.8333 860 225.379803739809 9.9630952281e-02
13675 12 0.8333 861 225.547778808779 8.9753160787e-02
13676 12 0.8333 862 225.843389527456 5.4731291348e-02
13677 12 0.8333 863 226.125470628076 4.7837733051e-02
13678 12 0.8333 864 226.432584015073 1.2506536770e-01
13679 12 0.8333 865 226.608445887059 6.4736741850e-02
13680 12 0.8333 866 226.903816970281 5.3713249350e-02
13681 12 0.8333 867 227.167342556929 4.7261243952e-02
13682 12 0.8333 868 227.422052616197 1.0506837766e+00
13683 12 0.8333 869 227.700935143425 4.7377890947e-02
13684 12 0.8333 870 227.973244937169 5.0280870736e-02
13685 12 0.8333 871 228.272251628617 1.1742714002e-01
13686 12 0.8333 872 228.438975172071 8.2565813481e-02
13687 12 0.8333 873 228.737116535677 4.9928272325e-02
13688 12 0.8333 874 229.014584523853 5.4676444488e-02
13689 12 0.8333 875 229.332928830999 1.0302184787e+00
13690 12 0.8333 876 229.500736463297 6.0949219141e-02
13691 12 0.8333 877 229.790291381657 5.0650174277e-02
13692 12 0.8333 878 230.062209308805 4.7105701507e-02
13693 12 0.8333 879 230.369405195782 1.4738628609e-01
13694 12 0.8333 880 230.564011884203 6.3165296335e-02
13695 12 0.8333 881 230.854317145631 5.2179789814e-02
13696 12 0.8333 882 231.186887885089 2.3772201090e-01
13697 12 0.8333 883 231.266140542597 8.5206470530e-01
13698 12 0.8333 884 231.619597607468 5.3040601981e-02
13699 12 0.8333 885 231.967578804658 9.7759816348e-01
13700 12 0.8333 886 232.054701343279 2.3204841976e-01
13701 12 0.8333 887 232.396921714710 5.2070856710e-02
13702 12 0.8333 888 232.706416561637 1.5491489705e-01
13703 12 0.8333 889 232.900049266013 6.2621774556e-02
13704 12 0.8333 890 233.183558942534 4.9566242762e-02
13705 12 0.8333 891 233.453061091179 4.9346757994e-02
13706 12 0.8333 892 233.694541062132 1.0478562974e+00
13707 12 0.8333 893 233.977657658634 5.0941559935e-02
13708 12 0.8333 894 234.252758394180 4.8616675194e-02
13709 12 0.8333 895 234.521291805614 4.9214420807e-02
13710 12 0.8333 896 234.828852397053 1.2602699867e-01
13711 12 0.8333 897 234.981699998756 9.7434465156e-02
13712 12 0.8333 898 235.280951555006 5.0529130179e-02
13713 12 0.8333 899 235.555764352041 4.9897090415e-02
13714 12 0.8333 900 235.814350226467 5.1206646438e-02
13715 12 0.8333 901 236.076476095006 1.8591377193e-01
13716 12 0.8333 902 236.384419318559 7.6595669509e-02
13717 12 0.8333 903 236.530152554327 1.0148652398e+00
13718 12 0.8333 904 236.860086440314 1.8741302317e-01
13719 12 0.8333 905 237.133977617523 5.1396575281e-02
13720 12 0.8333 906 237.396428268879 5.3176115368e-02
13721 12 0.8333 907 237.749769315512 7.7020780360e-01
13722 12 0.8333 908 237.820563821143 3.1940179485e-01
13723 12 0.8333 909 238.149339863108 5.7864773840e-02
13724 12 0.8333 910 238.429868324085 5.0940735432e-02
13725 12 0.8333 911 238.696534495590 4.7995998083e-02
13726 12 0.8333 912 238.970083880806 5.1820491099e-02
13727 12 0.8333 913 239.258345518490 6.1913466923e-02
13728 12 0.8333 914 239.535893409134 1.0792607898e+00
13729 12 0.8333 915 239.658236559992 1.4880124563e-01
13730 12 0.8333 916 239.989171743529 5.0703960309e-02
13731 12 0.8333 917 240.264702794757 5.5367404300e-02
13732 12 0.8333 918 240.528579495915 5.3676138774e-02
13733 12 0.8333 919 240.801331521025 5.3860645421e-02
13734 12 0.8333 920 241.054479566216 1.1852628487e+00
13735 12 0.8333 921 241.296887571099 5.6785911038e-02
13736 12 0.8333 922 241.571172611145 4.9961212635e-02
13737 12 0.8333 923 241.846369551763 5.1597323688e-02
13738 12 0.8333 924 242.109740353640 5.2904611548e-02
13739 12 0.8333 925 242.430905047846 1.9047363234e-01
13740 12 0.8333 926 242.617249821486 7.3518497344e-02
13741 12 0.8333 927 242.827021170911 1.0393548920e+00
13742 12 0.8333 928 243.148828389104 5.6404487254e-02
13743 12 0.8333 929 243.378044242850 2.0423635323e-01
13744 12 0.8333 930 243.678363629041 5.7773524930e-02
13745 12 0.8333 931 244.019299454865 3.3830042067e-01
13746 12 0.8333 932 244.092705600856 7.5953017189e-01
13747 12 0.8333 933 244.443436272041 5.3405993427e-02
13748 12 0.8333 934 244.747385304808 8.2007002762e-02
13749 12 0.8333 935 244.907777240276 1.8488330072e-01
13750 12 0.8333 936 245.225972449911 5.2647807905e-02
13751 12 0.8333 937 245.503559065740 5.6248602566e-02
13752 12 0.8333 938 245.759392807329 4.9121554923e-02
13753 12 0.8333 939 246.023518495839 5.5824385937e-02
13754 12 0.8333 940 246.290534531975 4.9004513238e-02
13755 12 0.8333 941 246.552424884016 5.1631386649e-02
13756 12 0.8333 942 246.831566752517 2.3088187804e-01
13757 12 0.8333 943 247.133757987997 1.0389096484e+00
13758 12 0.8333 944 247.328317400842 5.8650573425e-02
13759 12 0.8333 945 247.609658667713 5.5809118292e-02
13760 12 0.8333 946 247.870115360206 5.7646201923e-02
13761 12 0.8333 947 248.103992872667 1.0497654942e+00
13762 12 0.8333 948 248.427968347572 2.2797255365e-01
13763 12 0.8333 949 248.635987568400 6.1889429776e-02
13764 12 0.8333 950 248.917628554228 5.1952059671e-02
13765 12 0.8333 951 249.189378455683 5.6240787607e-02
13766 12 0.8333 952 249.528001626945 3.9604798373e-01
13767 12 0.8333 953 249.598442154611 7.0366064499e-01
13768 12 0.8333 954 249.895604103396 2.3663749152e-01
13769 12 0.8333 955 250.207794147823 5.2882294596e-02
13770 12 0.8333 956 250.474102705448 5.2447599878e-02
13771 12 0.8333 957 250.747308369099 5.1621118806e-02
13772 12 0.8333 958 251.014708600801 1.0594684994e+00
13773 12 0.8333 959 251.268365222463 5.2546379160e-02
13774 12 0.8333 960 251.536554703023 5.4185706797e-02
13775 12 0.8333 961 251.818369794175 6.0392535991e-02
13776 12 0.8333 962 252.011923873736 2.4423843997e-01
13777 12 0.8333 963 252.338099753564 6.8666228418e-02
13778 12 0.8333 964 252.515475229665 2.4079974747e-01
13779 12 0.8333 965 252.832534344723 5.5014220050e-02
13780 12 0.8333 966 253.071452873392 1.0491210865e+00
13781 12 0.8333 967 253.360539063653 5.6626934591e-02
13782 12 0.8333 968 253.633205846686 5.2260908883e-02
13783 12 0.8333 969 253.890052866126 5.4209125835e-02
13784 12 0.8333 970 254.158159543585 6.0307888282e-02
13785 12 0.8333 971 254.446133383141 2.6508651889e-01
13786 12 0.8333 972 254.682757861448 5.4795260102e-02
13787 12 0.8333 973 254.963759121241 5.6203377010e-02
13788 12 0.8333 974 255.282490467495 1.0815135293e+00
13789 12 0.8333 975 255.375080187565 2.4163003018e-01
13790 12 0.8333 976 255.725150186063 5.7817998907e-02
13791 12 0.8333 977 255.980599299489 5.9879806894e-02
13792 12 0.8333 978 256.336961989532 4.0536293526e-01
13793 12 0.8333 979 256.405499060211 6.9154060019e-01
13794 12 0.8333 980 256.756962309052 5.7207608956e-02
13795 12 0.8333 981 257.012067217357 6.1103578950e-02
13796 12 0.8333 982 257.284275714904 5.4134723620e-02
13797 12 0.8333 983 257.558718423988 5.4596481209e-02
13798 12 0.8333 984 257.824981921098 5.7719721798e-02
13799 12 0.8333 985 258.116796584628 7.1602573470e-02
13800 12 0.8333 986 258.288445964021 2.6699546078e-01
13801 12 0.8333 987 258.609530352681 1.0609751615e+00
13802 12 0.8333 988 258.871296312089 5.5410237836e-02
13803 12 0.8333 989 259.144610591557 6.2804391825e-02
13804 12 0.8333 990 259.361000222190 2.9171362363e-01
13805 12 0.8333 991 259.676268099212 6.1656162053e-02
13806 12 0.8333 992 259.878086965628 1.0465203344e+00
13807 12 0.8333 993 260.234877980900 1.4199310532e-01
13808 12 0.8333 994 260.372733758308 2.2116857184e-01
13809 12 0.8333 995 260.782271081459 7.5779268664e-01
13810 12 0.8333 996 260.856580376144 3.4355542701e-01
13811 12 0.8333 997 261.205853842258 5.8724927751e-02
13812 12 0.8333 998 261.470268225406 6.1957224510e-02
13813 12 0.8333 999 261.747719341811 5.5536067305e-02
13814 12 0.8333 1000 262.071892236941 2.5584311962e-01
13815 12 0.8333 1001 262.207335969347 1.1270194699e-01
13816 12 0.8333 1002 262.513908622834 6.4361080810e-02
13817 12 0.8333 1003 262.787840713774 5.5458565383e-02
13818 12 0.8333 1004 263.054766471492 5.5757192342e-02
13819 12 0.8333 1005 263.324530659758 5.7668744664e-02
13820 12 0.8333 1006 263.576042228599 1.3292026957e+00
13821 12 0.8333 1007 263.850297571826 5.9123124685e-02
13822 12 0.8333 1008 264.106619100329 6.3042445224e-02
13823 12 0.8333 1009 264.380069341754 5.6814994809e-02
13824 12 0.8333 1010 264.654682845967 5.8825041258e-02
13825 12 0.8333 1011 264.965862875853 3.1368447858e-01
13826 12 0.8333 1012 265.138515869956 8.4417026182e-02
13827 12 0.8333 1013 265.491514116091 2.5858333693e-01
13828 12 0.8333 1014 265.576077959441 8.4567365902e-01
13829 12 0.8333 1015 265.928820866040 5.8279277162e-02
13830 12 0.8333 1016 266.207453958182 5.7675690905e-02
13831 12 0.8333 1017 266.523772000900 1.7658263815e-01
13832 12 0.8333 1018 266.627565203172 9.3937416538e-01
13833 12 0.8333 1019 267.018194363989 3.5683972402e-01
13834 12 0.8333 1020 267.225110949302 6.3153717607e-02
13835 12 0.8333 1021 267.512230657712 6.2643794035e-02
13836 12 0.8333 1022 267.822649131377 1.4018681462e-01
13837 12 0.8333 1023 267.932685518685 9.6525642593e-01
13838 12 0.8333 1024 268.276430204240 6.6125073826e-02
13839 12 0.8333 1025 268.570089420841 3.6971929694e-01
13840 12 0.8333 1026 268.808524782442 5.5897142212e-02
13841 12 0.8333 1027 269.081817030350 5.7655619608e-02
13842 12 0.8333 1028 269.340474604042 5.6905578088e-02
13843 12 0.8333 1029 269.616694706776 5.9263851864e-02
13844 12 0.8333 1030 269.956182067414 9.1926464131e-01
13845 12 0.8333 1031 270.050773644805 1.9211835189e-01
13846 12 0.8333 1032 270.368101760280 3.8491044717e-01
13847 12 0.8333 1033 270.638889433149 6.2154264827e-02
13848 12 0.8333 1034 270.909311925603 6.4511314507e-02
13849 12 0.8333 1035 271.169230703066 3.9086519057e-01
13850 12 0.8333 1036 271.490172119609 1.0590848378e+00
13851 12 0.8333 1037 271.682842706652 6.6713555626e-02
13852 12 0.8333 1038 271.966045300882 6.1235536287e-02
13853 12 0.8333 1039 272.285951625337 3.7638021224e-01
13854 12 0.8333 1040 272.460084177816 8.1313895261e-02
13855 12 0.8333 1041 272.736125487315 6.1393327486e-02
13856 12 0.8333 1042 273.013756758248 6.6129798075e-02
13857 12 0.8333 1043 273.298055664420 7.3225280490e-02
13858 12 0.8333 1044 273.464665898804 1.0369743289e+00
13859 12 0.8333 1045 273.788756000073 6.2829017323e-02
13860 12 0.8333 1046 274.046420155555 6.4304645296e-02
13861 12 0.8333 1047 274.311984898760 6.3684315745e-02
13862 12 0.8333 1048 274.579817120950 5.9482227045e-02
13863 12 0.8333 1049 274.830688788852 4.3286923111e-01
13864 12 0.8333 1050 275.107231753832 5.7954354048e-02
13865 12 0.8333 1051 275.372083091027 6.9578307308e-02
13866 12 0.8333 1052 275.589950421117 1.0520080584e+00
13867 12 0.8333 1053 275.897397491698 6.3530033724e-02
13868 12 0.8333 1054 276.147631318230 6.3915303746e-02
13869 12 0.8333 1055 276.446966450781 1.4414759049e+00
13870 12 0.8333 1056 276.671991072287 6.6746932707e-02
13871 12 0.8333 1057 276.945746535026 5.5883517715e-02
13872 12 0.8333 1058 277.213629589417 6.3384377621e-02
13873 12 0.8333 1059 277.474696268238 6.7687190146e-02
13874 12 0.8333 1060 277.766500475176 8.5364089446e-02
13875 12 0.8333 1061 277.924434549301 4.2989968171e-01
13876 12 0.8333 1062 278.250474747797 1.0640537889e+00
13877 12 0.8333 1063 278.525798183347 6.2549612855e-02
13878 12 0.8333 1064 278.802001926000 7.0890056116e-02
13879 12 0.8333 1065 279.014020350156 4.6996174543e-01
13880 12 0.8333 1066 279.235196911706 1.0476672100e+00
13881 12 0.8333 1067 279.549414113942 6.6789631607e-02
13882 12 0.8333 1068 279.816229575126 6.5506942721e-02
13883 12 1.0000 1 0.374608747847 4.3748745327e-02
13884 12 1.0000 2 0.644042632274 4.2382697912e-02
13885 12 1.0000 3 0.909060322368 4.2034850351e-02
13886 12 1.0000 4 1.172677822045 4.1894906216e-02
13887 12 1.0000 5 1.435669320594 4.1824962816e-02
13888 12 1.0000 6 1.698326559281 4.1784743432e-02
13889 12 1.0000 7 1.960784202772 4.1759846421e-02
13890 12 1.0000 8 2.223113049677 4.1743009692e-02
13891 12 1.0000 9 2.485353951324 4.1731560486e-02
13892 12 1.0000 10 2.747533151723 4.1722873193e-02
13893 12 1.0000 11 3.009664737578 4.1716576615e-02
13894 12 1.0000 12 3.271763164243 4.1712137754e-02
13895 12 1.0000 13 3.533834580718 4.1707708815e-02
13896 12 1.0000 14 3.795884032171 4.1705302852e-02
13897 12 1.0000 15 4.057916058788 4.1702561558e-02
13898 12 1.0000 16 4.319939152828 4.1701173738e-02
13899 12 1.0000 17 4.581946479720 4.1699155017e-02
13900 12 1.0000 18 4.843946916554 4.1697503936e-02
13901 12 1.0000 19 5.105937991687 4.1697608972e-02
13902 12 1.0000 20 5.367928050010 4.1695316022e-02
13903 12 1.0000 21 5.629908189278 4.1696782857e-02
13904 12 1.0000 22 5.891887750330 4.1692815304e-02
13905 12 1.0000 23 6.153861906712 4.1696549402e-02
13906 12 1.0000 24 6.415836225632 4.1692880334e-02
13907 12 1.0000 25 6.677806447083 4.1693830184e-02
13908 12 1.0000 26 6.939776761951 4.1694510720e-02
13909 12 1.0000 27 7.201746038101 4.1693529076e-02
13910 12 1.0000 28 7.463718445462 4.1692849823e-02
13911 12 1.0000 29 7.725684912524 4.1696012218e-02
13912 12 1.0000 30 7.987662366552 4.1692677251e-02
13913 12 1.0000 31 8.249633604576 4.1694972712e-02
13914 12 1.0000 32 8.511611515849 4.1696292561e-02
13915 12 1.0000 33 8.773591017360 4.1694712912e-02
13916 12 1.0000 34 9.035587893566 4.1698153943e-02
13917 12 1.0000 35 9.297564009935 4.1696912467e-02
13918 12 1.0000 36 9.559572828602 4.1698390832e-02
13919 12 1.0000 37 9.821576156358 4.1702593691e-02
13920 12 1.0000 38 10.083604744331 4.1702679486e-02
13921 12 1.0000 39 10.345630637141 4.1703875608e-02
13922 12 1.0000 40 10.607685749253 4.1708491104e-02
13923 12 1.0000 41 10.869744341282 4.1711640611e-02
13924 12 1.0000 42 11.131843614200 4.1714143193e-02
13925 12 1.0000 43 11.393976291723 4.1725146101e-02
13926 12 1.0000 44 11.656140276745 4.1729025167e-02
13927 12 1.0000 45 11.918383965104 4.1740078082e-02
13928 12 1.0000 46 12.180692458724 4.1760936376e-02
13929 12 1.0000 47 12.443130967623 4.1776525804e-02
13930 12 1.0000 48 12.705756938015 4.1822633832e-02
13931 12 1.0000 49 12.968719237013 4.1887487645e-02
13932 12 1.0000 50 13.232253266408 4.2017947214e-02
13933 12 1.0000 51 13.497145433915 4.2351817617e-02
13934 12 1.0000 52 13.766225684089 4.3655379648e-02
13935 12 1.0000 53 14.114518262658 7.1049721716e-01
13936 12 1.0000 54 14.175518567242 3.6493754232e-01
13937 12 1.0000 55 14.517237614771 4.3646783570e-02
13938 12 1.0000 56 14.786283781695 4.2351215068e-02
13939 12 1.0000 57 15.051213859441 4.2020883306e-02
13940 12 1.0000 58 15.314711405697 4.1888366646e-02
13941 12 1.0000 59 15.577721867572 4.1820965798e-02
13942 12 1.0000 60 15.840331077420 4.1784451432e-02
13943 12 1.0000 61 16.102815270808 4.1762952160e-02
13944 12 1.0000 62 16.365144758351 4.1741804051e-02
13945 12 1.0000 63 16.627385561237 4.1734671954e-02
13946 12 1.0000 64 16.889607863410 4.1733193433e-02
13947 12 1.0000 65 17.151770403612 4.1718196540e-02
13948 12 1.0000 66 17.413914582411 4.1721362359e-02
13949 12 1.0000 67 17.676026573261 4.1718656111e-02
13950 12 1.0000 68 17.938144099186 4.1711652792e-02
13951 12 1.0000 69 18.200252066456 4.1724049089e-02
13952 12 1.0000 70 18.462396261046 4.1716315028e-02
13953 12 1.0000 71 18.724480478520 4.1713301486e-02
13954 12 1.0000 72 18.986666721223 4.1739031121e-02
13955 12 1.0000 73 19.248854522131 4.1722789030e-02
13956 12 1.0000 74 19.511075104343 4.1749943765e-02
13957 12 1.0000 75 19.773518702413 4.1782635461e-02
13958 12 1.0000 76 20.036085549946 4.1817127369e-02
13959 12 1.0000 77 20.299247042271 4.1954307830e-02
13960 12 1.0000 78 20.563766292130 4.2362418654e-02
13961 12 1.0000 79 20.838175322966 4.7811705095e-02
13962 12 1.0000 80 21.024860057283 1.0322349347e+00
13963 12 1.0000 81 21.334958129061 4.2661872220e-02
13964 12 1.0000 82 21.600380814519 4.2001383452e-02
13965 12 1.0000 83 21.863639815802 4.1830089072e-02
13966 12 1.0000 84 22.126314390216 4.1793787542e-02
13967 12 1.0000 85 22.388734667750 4.1745801956e-02
13968 12 1.0000 86 22.651015413980 4.1730946942e-02
13969 12 1.0000 87 22.913125655281 4.1723104854e-02
13970 12 1.0000 88 23.175307479805 4.1714387571e-02
13971 12 1.0000 89 23.437382484678 4.1714568208e-02
13972 12 1.0000 90 23.699440969233 4.1710870465e-02
13973 12 1.0000 91 23.961554793754 4.1710263117e-02
13974 12 1.0000 92 24.223580678621 4.1709016324e-02
13975 12 1.0000 93 24.485613194481 4.1694904397e-02
13976 12 1.0000 94 24.747630175021 4.1703196939e-02
13977 12 1.0000 95 25.010805140443 1.0416920034e+00
13978 12 1.0000 96 25.271631462885 4.1710094125e-02
13979 12 1.0000 97 25.533629059787 4.1704754812e-02
13980 12 1.0000 98 25.795662811188 4.1704911004e-02
13981 12 1.0000 99 26.057696218870 4.1707607865e-02
13982 12 1.0000 100 26.319739561395 4.1703990796e-02
13983 12 1.0000 101 26.581782064214 4.1719535368e-02
13984 12 1.0000 102 26.843859345122 4.1690780488e-02
13985 12 1.0000 103 27.105930047150 4.1743866889e-02
13986 12 1.0000 104 27.367963790885 4.1671375072e-02
13987 12 1.0000 105 27.630093737068 4.1746637216e-02
13988 12 1.0000 106 27.892154890654 4.1713280213e-02
13989 12 1.0000 107 28.154446364698 4.1738759073e-02
13990 12 1.0000 108 28.416718842966 4.1763721460e-02
13991 12 1.0000 109 28.679078274248 4.1763701120e-02
13992 12 1.0000 110 28.941534813883 4.1773085188e-02
13993 12 1.0000 111 29.204277651898 4.1889851668e-02
13994 12 1.0000 112 29.467504117934 4.1897607247e-02
13995 12 1.0000 113 29.731603138646 4.2206429217e-02
13996 12 1.0000 114 29.998568921055 4.3036846524e-02
13997 12 1.0000 115 30.294268748306 6.8551429900e-02
13998 12 1.0000 116 30.430182281321 1.0090839924e+00
13999 12 1.0000 117 30.759344883819 4.3223621339e-02
14000 12 1.0000 118 31.027025587376 4.2245883713e-02
14001 12 1.0000 119 31.291424253822 4.1967760941e-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())