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 30 of 30 · 500/page · 14949 rows
# atheta_over_pikz_kw_k
14502 12 1.0000 620 162.514684107043 4.9416064052e-02
14503 12 1.0000 621 162.748470838879 5.0975718662e-02
14504 12 1.0000 622 163.030345396179 1.0424169157e+00
14505 12 1.0000 623 163.286510259899 4.3848537036e-02
14506 12 1.0000 624 163.548599882959 4.2095337895e-02
14507 12 1.0000 625 163.814148827383 4.3462415562e-02
14508 12 1.0000 626 164.081923880406 4.6380344323e-02
14509 12 1.0000 627 164.320479281269 5.4879687719e-02
14510 12 1.0000 628 164.597888160058 4.5841853232e-02
14511 12 1.0000 629 164.866515748368 4.3836412609e-02
14512 12 1.0000 630 165.135712072886 4.4264663255e-02
14513 12 1.0000 631 165.459726732213 1.5173406141e-01
14514 12 1.0000 632 165.547665135002 9.2674047061e-01
14515 12 1.0000 633 165.894436028583 4.5797458982e-02
14516 12 1.0000 634 166.176364923958 5.6584659994e-02
14517 12 1.0000 635 166.413258815998 4.6399361630e-02
14518 12 1.0000 636 166.685445466355 4.3533466441e-02
14519 12 1.0000 637 166.951765279785 4.4445617432e-02
14520 12 1.0000 638 167.185848109156 1.0428406398e+00
14521 12 1.0000 639 167.472039702129 4.2611181859e-02
14522 12 1.0000 640 167.738004018710 4.3909770616e-02
14523 12 1.0000 641 167.999504435411 4.3123198181e-02
14524 12 1.0000 642 168.254398251163 6.0219547055e-02
14525 12 1.0000 643 168.527753607235 4.3601652536e-02
14526 12 1.0000 644 168.796689360494 6.1876812264e-02
14527 12 1.0000 645 169.092400727409 1.0395041665e+00
14528 12 1.0000 646 169.303960876358 4.6400822995e-02
14529 12 1.0000 647 169.581112477294 4.5140500823e-02
14530 12 1.0000 648 169.907444322047 1.0195197841e+00
14531 12 1.0000 649 170.061011055857 6.2256230656e-02
14532 12 1.0000 650 170.364911726901 6.1722480739e-02
14533 12 1.0000 651 170.609499662945 4.5108662989e-02
14534 12 1.0000 652 170.873261747528 4.3677984559e-02
14535 12 1.0000 653 171.141448501351 4.3584303270e-02
14536 12 1.0000 654 171.403292969932 4.4911935533e-02
14537 12 1.0000 655 171.667681860876 4.3176918700e-02
14538 12 1.0000 656 171.946982347218 6.1210202477e-02
14539 12 1.0000 657 172.190988559957 4.4811282027e-02
14540 12 1.0000 658 172.456348737892 4.3236920482e-02
14541 12 1.0000 659 172.720881557593 4.3674796191e-02
14542 12 1.0000 660 172.991685923624 4.4743127460e-02
14543 12 1.0000 661 173.296984674968 9.7027966875e-02
14544 12 1.0000 662 173.417525221845 1.0058011577e+00
14545 12 1.0000 663 173.751624924310 4.5985811552e-02
14546 12 1.0000 664 174.018928241856 4.3748302625e-02
14547 12 1.0000 665 174.302042843696 6.6750684843e-02
14548 12 1.0000 666 174.560657549414 4.9811878653e-02
14549 12 1.0000 667 174.756982765845 1.0344451549e+00
14550 12 1.0000 668 175.062577592642 4.5756558861e-02
14551 12 1.0000 669 175.328373387268 4.3112661587e-02
14552 12 1.0000 670 175.594491824809 4.4261637674e-02
14553 12 1.0000 671 175.861335352060 4.3820913234e-02
14554 12 1.0000 672 176.128920749240 4.3742793546e-02
14555 12 1.0000 673 176.438720291784 1.0373310003e+00
14556 12 1.0000 674 176.632784225877 4.8740896531e-02
14557 12 1.0000 675 176.907847226043 6.6920480784e-02
14558 12 1.0000 676 177.171240216749 4.4749025512e-02
14559 12 1.0000 677 177.437331471892 4.3951218881e-02
14560 12 1.0000 678 177.700577710438 4.5461656325e-02
14561 12 1.0000 679 177.977109902210 4.7773783917e-02
14562 12 1.0000 680 178.262129562514 1.2106413357e-01
14563 12 1.0000 681 178.385511939461 9.8000494443e-01
14564 12 1.0000 682 178.731690295719 4.6562802814e-02
14565 12 1.0000 683 179.014562458859 4.8253892932e-02
14566 12 1.0000 684 179.241363080988 6.3027204424e-02
14567 12 1.0000 685 179.534202732577 4.5622376470e-02
14568 12 1.0000 686 179.880366876989 4.5077117920e-01
14569 12 1.0000 687 179.941579826523 6.3149669811e-01
14570 12 1.0000 688 180.296535322653 4.5501455568e-02
14571 12 1.0000 689 180.564516473349 4.4686614410e-02
14572 12 1.0000 690 180.847199037295 7.1679412107e-02
14573 12 1.0000 691 181.097149780429 4.5088645605e-02
14574 12 1.0000 692 181.381087366470 6.1549534477e-02
14575 12 1.0000 693 181.604716635224 5.0916418341e-02
14576 12 1.0000 694 181.878044045770 4.7477724111e-02
14577 12 1.0000 695 182.203256783830 1.0278529161e+00
14578 12 1.0000 696 182.372885821429 5.5135825366e-02
14579 12 1.0000 697 182.656693910818 4.4416170600e-02
14580 12 1.0000 698 182.919990859059 4.6585727134e-02
14581 12 1.0000 699 183.190351325685 4.4712588744e-02
14582 12 1.0000 700 183.451614396436 4.3156380983e-02
14583 12 1.0000 701 183.720281800418 4.3962327423e-02
14584 12 1.0000 702 183.991254825746 7.4393826715e-02
14585 12 1.0000 703 184.251453974188 4.3272862793e-02
14586 12 1.0000 704 184.516727234830 4.8727646342e-02
14587 12 1.0000 705 184.865275408821 9.5843712973e-01
14588 12 1.0000 706 184.968165280661 1.2356062182e-01
14589 12 1.0000 707 185.312859340826 6.3097804645e-02
14590 12 1.0000 708 185.593167364325 1.0312307536e+00
14591 12 1.0000 709 185.759185962741 6.5606562926e-02
14592 12 1.0000 710 186.057425082573 4.6255652147e-02
14593 12 1.0000 711 186.326555528196 4.5122213597e-02
14594 12 1.0000 712 186.609673244275 7.6787255692e-02
14595 12 1.0000 713 186.859023410798 4.7153125067e-02
14596 12 1.0000 714 187.214814522209 8.5398580629e-01
14597 12 1.0000 715 187.288859323669 2.2587601684e-01
14598 12 1.0000 716 187.622196550275 4.4653107337e-02
14599 12 1.0000 717 187.892974814121 4.4898964193e-02
14600 12 1.0000 718 188.161093320067 4.4473165417e-02
14601 12 1.0000 719 188.414808079363 7.9697235483e-02
14602 12 1.0000 720 188.688573437810 4.5347134235e-02
14603 12 1.0000 721 188.954630984989 4.3709934335e-02
14604 12 1.0000 722 189.230849431377 5.1913230814e-02
14605 12 1.0000 723 189.419070252373 1.0338689195e+00
14606 12 1.0000 724 189.716716710675 7.8773998701e-02
14607 12 1.0000 725 189.996941857160 4.7716715367e-02
14608 12 1.0000 726 190.264701221638 4.4630791783e-02
14609 12 1.0000 727 190.531760453076 4.6439811255e-02
14610 12 1.0000 728 190.767309669733 7.7466234349e-02
14611 12 1.0000 729 191.049695101139 4.6817472939e-02
14612 12 1.0000 730 191.317138379060 4.4603387209e-02
14613 12 1.0000 731 191.589233071401 4.5818060692e-02
14614 12 1.0000 732 191.894968167331 8.5575825213e-02
14615 12 1.0000 733 192.035747976027 1.0244473157e+00
14616 12 1.0000 734 192.328306432736 5.3946288012e-02
14617 12 1.0000 735 192.603315301550 4.7573648330e-02
14618 12 1.0000 736 192.885460779824 5.0020663743e-02
14619 12 1.0000 737 193.082519490570 1.0354460057e+00
14620 12 1.0000 738 193.393444555677 4.8639113689e-02
14621 12 1.0000 739 193.662054189060 4.5346415883e-02
14622 12 1.0000 740 193.921318437279 4.5726371043e-02
14623 12 1.0000 741 194.187078737616 4.6564745060e-02
14624 12 1.0000 742 194.441038467724 8.1899445251e-02
14625 12 1.0000 743 194.713369342699 4.5011258916e-02
14626 12 1.0000 744 194.980281277473 4.5148488798e-02
14627 12 1.0000 745 195.264332414063 1.0429236373e+00
14628 12 1.0000 746 195.502804961176 4.5451708951e-02
14629 12 1.0000 747 195.768733454704 4.4179173957e-02
14630 12 1.0000 748 196.054576682943 5.8434556246e-02
14631 12 1.0000 749 196.255030509158 7.2164467494e-02
14632 12 1.0000 750 196.550046784478 4.8397411420e-02
14633 12 1.0000 751 196.872954765551 1.0307714631e+00
14634 12 1.0000 752 197.036745103538 9.7138808822e-02
14635 12 1.0000 753 197.328211705165 4.5381248660e-02
14636 12 1.0000 754 197.606216897487 5.0085798514e-02
14637 12 1.0000 755 197.916537530141 1.1526647263e-01
14638 12 1.0000 756 198.022751497749 1.0110612648e+00
14639 12 1.0000 757 198.361193255326 4.6493541740e-02
14640 12 1.0000 758 198.631805935994 4.7144386699e-02
14641 12 1.0000 759 198.894705401917 4.6345511798e-02
14642 12 1.0000 760 199.166622140873 4.3118779081e-02
14643 12 1.0000 761 199.429388820424 4.5573407212e-02
14644 12 1.0000 762 199.689699663840 4.5430827201e-02
14645 12 1.0000 763 199.957449404799 4.6848382797e-02
14646 12 1.0000 764 200.203379409225 9.3703752729e-02
14647 12 1.0000 765 200.476632773137 4.3530895386e-02
14648 12 1.0000 766 200.748162606258 4.6564574041e-02
14649 12 1.0000 767 201.045100118498 8.0465215632e-02
14650 12 1.0000 768 201.263222007108 1.0560425003e+00
14651 12 1.0000 769 201.523171128238 4.6473199066e-02
14652 12 1.0000 770 201.786938531826 4.7243359408e-02
14653 12 1.0000 771 202.054189307180 4.6283516660e-02
14654 12 1.0000 772 202.359902087330 7.2217795707e-02
14655 12 1.0000 773 202.499428552907 1.0153990165e+00
14656 12 1.0000 774 202.831434836628 4.6311765853e-02
14657 12 1.0000 775 203.122967882296 5.9411245069e-02
14658 12 1.0000 776 203.320046940235 8.2238073554e-02
14659 12 1.0000 777 203.608102909759 4.5657013599e-02
14660 12 1.0000 778 203.880109478187 4.7738448763e-02
14661 12 1.0000 779 204.187456829305 1.0391606677e+00
14662 12 1.0000 780 204.401579893953 5.1140433242e-02
14663 12 1.0000 781 204.636530848535 9.8743892423e-02
14664 12 1.0000 782 204.926702690818 4.6663853522e-02
14665 12 1.0000 783 205.202493893280 5.0650008318e-02
14666 12 1.0000 784 205.397462921662 1.0366261850e+00
14667 12 1.0000 785 205.708831218201 4.6113798669e-02
14668 12 1.0000 786 205.976962307450 4.5800865758e-02
14669 12 1.0000 787 206.245680567020 1.0398826061e-01
14670 12 1.0000 788 206.502266489981 4.7004106126e-02
14671 12 1.0000 789 206.768932626035 4.4740377922e-02
14672 12 1.0000 790 207.033832628052 4.6985682393e-02
14673 12 1.0000 791 207.308646694103 4.6197085358e-02
14674 12 1.0000 792 207.614467898596 9.2156840617e-02
14675 12 1.0000 793 207.893373516283 9.4240656988e-01
14676 12 1.0000 794 207.994972574761 1.5313713003e-01
14677 12 1.0000 795 208.355287937119 7.6203044683e-02
14678 12 1.0000 796 208.545070090734 7.7738182251e-02
14679 12 1.0000 797 208.846367182409 4.8280351082e-02
14680 12 1.0000 798 209.109018920104 4.8069461271e-02
14681 12 1.0000 799 209.392095651509 5.4505446189e-02
14682 12 1.0000 800 209.579841651504 1.0349380376e+00
14683 12 1.0000 801 209.912898681820 1.1123564880e-01
14684 12 1.0000 802 210.152458720873 4.6809808398e-02
14685 12 1.0000 803 210.424312491288 4.6438781175e-02
14686 12 1.0000 804 210.687488194931 4.4371835547e-02
14687 12 1.0000 805 210.952586365369 4.5510693479e-02
14688 12 1.0000 806 211.212363363288 5.0612289239e-02
14689 12 1.0000 807 211.490278813889 4.9353137693e-02
14690 12 1.0000 808 211.693233445404 1.0392679750e+00
14691 12 1.0000 809 211.998135009116 4.7726994376e-02
14692 12 1.0000 810 212.266942469666 4.7078706870e-02
14693 12 1.0000 811 212.540630934525 4.6308318592e-02
14694 12 1.0000 812 212.824243566286 1.0928674057e-01
14695 12 1.0000 813 213.042316230106 5.4359500034e-02
14696 12 1.0000 814 213.342790179185 1.1052570926e+00
14697 12 1.0000 815 213.555088112371 5.3486148376e-02
14698 12 1.0000 816 213.824199887415 4.6929487707e-02
14699 12 1.0000 817 214.098494958655 4.9794604479e-02
14700 12 1.0000 818 214.388598228017 5.9912075597e-02
14701 12 1.0000 819 214.551575595075 1.0261360806e+00
14702 12 1.0000 820 214.891013986506 5.6260643019e-02
14703 12 1.0000 821 215.091646425279 1.0779449494e-01
14704 12 1.0000 822 215.396059654301 4.7813230338e-02
14705 12 1.0000 823 215.665081359444 4.7481611525e-02
14706 12 1.0000 824 215.933041473193 5.2094189722e-02
14707 12 1.0000 825 216.172273659307 1.0550185861e+00
14708 12 1.0000 826 216.397230088713 1.1080393080e-01
14709 12 1.0000 827 216.700838089638 4.6742772874e-02
14710 12 1.0000 828 216.966377667102 4.6351722916e-02
14711 12 1.0000 829 217.231266449695 4.6682029717e-02
14712 12 1.0000 830 217.503961016001 4.8367208605e-02
14713 12 1.0000 831 217.787219976862 1.2429921878e-01
14714 12 1.0000 832 218.011614773114 4.9074572186e-02
14715 12 1.0000 833 218.280240534659 4.5884509288e-02
14716 12 1.0000 834 218.550450721568 4.8853971396e-02
14717 12 1.0000 835 218.811789634111 4.5413713491e-02
14718 12 1.0000 836 219.067992685146 1.0455297670e+00
14719 12 1.0000 837 219.356580419848 1.2698696927e-01
14720 12 1.0000 838 219.601802461820 5.4457046998e-02
14721 12 1.0000 839 219.861472094332 4.5154571837e-02
14722 12 1.0000 840 220.130834460545 5.1658112780e-02
14723 12 1.0000 841 220.394005147535 4.8649218326e-02
14724 12 1.0000 842 220.712627274755 1.1113344301e+00
14725 12 1.0000 843 220.878179672193 6.3259484901e-02
14726 12 1.0000 844 221.162736583103 4.6117993909e-02
14727 12 1.0000 845 221.430973880534 1.0503780758e+00
14728 12 1.0000 846 221.694131501030 4.7526204424e-02
14729 12 1.0000 847 221.960250580164 4.8178129901e-02
14730 12 1.0000 848 222.230924816303 5.0694277092e-02
14731 12 1.0000 849 222.483469519863 4.6453039432e-02
14732 12 1.0000 850 222.759007592721 5.0043400946e-02
14733 12 1.0000 851 223.044145086225 5.9043028962e-02
14734 12 1.0000 852 223.226617313269 1.2135838876e-01
14735 12 1.0000 853 223.540638216521 4.9610648037e-02
14736 12 1.0000 854 223.837917309873 6.9572957136e-02
14737 12 1.0000 855 224.016394103971 1.1080552937e+00
14738 12 1.0000 856 224.297553652340 5.4295607390e-02
14739 12 1.0000 857 224.586843380245 4.9751942720e-02
14740 12 1.0000 858 224.921253988882 2.5833090588e-01
14741 12 1.0000 859 225.000191663431 8.3575765033e-01
14742 12 1.0000 860 225.398511366225 1.1504363458e-01
14743 12 1.0000 861 225.574586169946 7.5613587152e-02
14744 12 1.0000 862 225.860898742872 5.3816854990e-02
14745 12 1.0000 863 226.143011231384 4.7812995465e-02
14746 12 1.0000 864 226.445941939867 1.3586777537e-01
14747 12 1.0000 865 226.640840841632 5.5013932128e-02
14748 12 1.0000 866 226.924606030469 5.3921560947e-02
14749 12 1.0000 867 227.192583229200 4.8004067651e-02
14750 12 1.0000 868 227.423012703758 1.0484696051e+00
14751 12 1.0000 869 227.717883090505 4.7633695506e-02
14752 12 1.0000 870 227.990698740715 5.0582356987e-02
14753 12 1.0000 871 228.288629097180 1.3144949765e-01
14754 12 1.0000 872 228.466717565595 6.8822242326e-02
14755 12 1.0000 873 228.755605166265 4.9359214093e-02
14756 12 1.0000 874 229.029417488979 5.4326807783e-02
14757 12 1.0000 875 229.334563416491 1.0413391719e+00
14758 12 1.0000 876 229.536082075144 5.1451191897e-02
14759 12 1.0000 877 229.811965089879 5.0059267356e-02
14760 12 1.0000 878 230.082887097588 4.6627767168e-02
14761 12 1.0000 879 230.380183080345 1.5519558161e-01
14762 12 1.0000 880 230.595213460423 5.6776281573e-02
14763 12 1.0000 881 230.879600355714 5.2286149974e-02
14764 12 1.0000 882 231.226943652609 6.9979434008e-01
14765 12 1.0000 883 231.293755227406 3.8926456324e-01
14766 12 1.0000 884 231.641087598210 5.2763141266e-02
14767 12 1.0000 885 231.973929603797 1.0900269048e+00
14768 12 1.0000 886 232.094454314520 1.1968209320e-01
14769 12 1.0000 887 232.417002015028 5.1680473172e-02
14770 12 1.0000 888 232.717207872596 1.6303413545e-01
14771 12 1.0000 889 232.932931884445 5.6006551691e-02
14772 12 1.0000 890 233.210321622627 4.9527482911e-02
14773 12 1.0000 891 233.483568053666 5.1718680080e-02
14774 12 1.0000 892 233.695761723979 1.0436485588e+00
14775 12 1.0000 893 233.994481378403 5.0952103457e-02
14776 12 1.0000 894 234.271304229062 4.9064705911e-02
14777 12 1.0000 895 234.541655223454 4.9412927588e-02
14778 12 1.0000 896 234.849233615534 1.4998006948e-01
14779 12 1.0000 897 235.017647575701 7.4746897367e-02
14780 12 1.0000 898 235.306688135711 5.0037975606e-02
14781 12 1.0000 899 235.582138487873 5.0852745513e-02
14782 12 1.0000 900 235.843367435349 5.1719029912e-02
14783 12 1.0000 901 236.083694480667 1.8396086649e-01
14784 12 1.0000 902 236.427291922288 1.2803699405e-01
14785 12 1.0000 903 236.534134256953 9.6246669117e-01
14786 12 1.0000 904 236.864754465248 1.8744556668e-01
14787 12 1.0000 905 237.152359333624 5.2172980061e-02
14788 12 1.0000 906 237.415285736036 5.2572932299e-02
14789 12 1.0000 907 237.760056307762 9.6810893470e-01
14790 12 1.0000 908 237.869503769875 1.2341654166e-01
14791 12 1.0000 909 238.170828514855 5.6489173842e-02
14792 12 1.0000 910 238.450662833490 5.1092928683e-02
14793 12 1.0000 911 238.718522206635 4.7825595084e-02
14794 12 1.0000 912 238.990580671029 5.1937787648e-02
14795 12 1.0000 913 239.283516707933 6.6812104319e-02
14796 12 1.0000 914 239.540892347503 1.1289071718e+00
14797 12 1.0000 915 239.697368620853 9.4523353761e-02
14798 12 1.0000 916 240.011984661136 5.0638283799e-02
14799 12 1.0000 917 240.285787130793 5.5816894629e-02
14800 12 1.0000 918 240.551539064049 5.3723358074e-02
14801 12 1.0000 919 240.829048281171 5.6592623213e-02
14802 12 1.0000 920 241.055912275193 1.1840029493e+00
14803 12 1.0000 921 241.321087160909 5.4940606950e-02
14804 12 1.0000 922 241.593226850763 4.9560388712e-02
14805 12 1.0000 923 241.867659887331 5.2085638219e-02
14806 12 1.0000 924 242.130606773846 5.2168121699e-02
14807 12 1.0000 925 242.442798801628 2.0566672029e-01
14808 12 1.0000 926 242.688714778823 9.0714325993e-02
14809 12 1.0000 927 242.830492352235 1.0075481061e+00
14810 12 1.0000 928 243.177037905623 6.1221055046e-02
14811 12 1.0000 929 243.385414337713 1.9849064435e-01
14812 12 1.0000 930 243.695669346685 5.8268988486e-02
14813 12 1.0000 931 244.047138569561 7.1822032441e-01
14814 12 1.0000 932 244.118385656097 3.7976006008e-01
14815 12 1.0000 933 244.464551368835 5.3552738969e-02
14816 12 1.0000 934 244.778279371904 1.0633248194e-01
14817 12 1.0000 935 244.923222659528 1.5957361809e-01
14818 12 1.0000 936 245.242449054347 5.2721718258e-02
14819 12 1.0000 937 245.520355159349 5.7090754501e-02
14820 12 1.0000 938 245.780468020373 4.9001126402e-02
14821 12 1.0000 939 246.041225155562 5.5521816910e-02
14822 12 1.0000 940 246.310191718462 4.9137418632e-02
14823 12 1.0000 941 246.570337875947 5.1124209282e-02
14824 12 1.0000 942 246.835223394889 2.3062083442e-01
14825 12 1.0000 943 247.135150494614 1.0457229221e+00
14826 12 1.0000 944 247.360216239448 5.4036097074e-02
14827 12 1.0000 945 247.635957715183 5.6793333429e-02
14828 12 1.0000 946 247.902224299982 6.0883276156e-02
14829 12 1.0000 947 248.105391890146 1.0433921238e+00
14830 12 1.0000 948 248.434049282250 2.3365149263e-01
14831 12 1.0000 949 248.663706784688 5.7975522221e-02
14832 12 1.0000 950 248.942994295712 5.2231346338e-02
14833 12 1.0000 951 249.214805625446 5.6597424609e-02
14834 12 1.0000 952 249.559287641324 9.0849281067e-01
14835 12 1.0000 953 249.656534504870 1.9820082912e-01
14836 12 1.0000 954 249.903460759983 2.2743877989e-01
14837 12 1.0000 955 250.226261291034 5.3625534701e-02
14838 12 1.0000 956 250.494116997899 5.2398368158e-02
14839 12 1.0000 957 250.769570879067 5.2666095298e-02
14840 12 1.0000 958 251.015904620757 1.0593133826e+00
14841 12 1.0000 959 251.292573903180 5.2612952996e-02
14842 12 1.0000 960 251.561442672700 5.4631513129e-02
14843 12 1.0000 961 251.858855350020 7.6390698634e-02
14844 12 1.0000 962 252.022785932878 2.2712919840e-01
14845 12 1.0000 963 252.372696337131 8.8209323608e-02
14846 12 1.0000 964 252.526357114865 2.2053713192e-01
14847 12 1.0000 965 252.854189396204 5.7604680599e-02
14848 12 1.0000 966 253.072480367579 1.0457188655e+00
14849 12 1.0000 967 253.374008618517 5.6926111858e-02
14850 12 1.0000 968 253.649959786796 5.3057700240e-02
14851 12 1.0000 969 253.907584869362 5.3943445408e-02
14852 12 1.0000 970 254.173057921991 6.0034486908e-02
14853 12 1.0000 971 254.450197244283 2.6706091815e-01
14854 12 1.0000 972 254.705234394848 5.3764676837e-02
14855 12 1.0000 973 254.986567607740 5.7503564727e-02
14856 12 1.0000 974 255.288720610044 1.1903396410e+00
14857 12 1.0000 975 255.412964417785 1.3137722399e-01
14858 12 1.0000 976 255.747341718705 5.9376226190e-02
14859 12 1.0000 977 256.002434688973 5.8217713028e-02
14860 12 1.0000 978 256.362661836095 8.2425735615e-01
14861 12 1.0000 979 256.440463426883 2.7327763967e-01
14862 12 1.0000 980 256.780886555282 5.8389375599e-02
14863 12 1.0000 981 257.033995089454 5.9767092959e-02
14864 12 1.0000 982 257.305225651860 5.3777070299e-02
14865 12 1.0000 983 257.579649432406 5.5121533233e-02
14866 12 1.0000 984 257.846657134437 5.7912388902e-02
14867 12 1.0000 985 258.154336282987 9.5998703498e-02
14868 12 1.0000 986 258.299907529724 2.4167384057e-01
14869 12 1.0000 987 258.610589889626 1.0615202595e+00
14870 12 1.0000 988 258.894319507171 5.6282660928e-02
14871 12 1.0000 989 259.175770797332 7.0047415636e-02
14872 12 1.0000 990 259.367411917418 2.8293680063e-01
14873 12 1.0000 991 259.705623083338 7.2131196669e-02
14874 12 1.0000 992 259.879828438926 1.0352497248e+00
14875 12 1.0000 993 260.255086410420 1.7864337942e-01
14876 12 1.0000 994 260.388687467542 1.8449201642e-01
14877 12 1.0000 995 260.791947960157 9.3727640395e-01
14878 12 1.0000 996 260.892179152001 1.6485992341e-01
14879 12 1.0000 997 261.223936571466 5.9158946599e-02
14880 12 1.0000 998 261.486559454983 6.1224407158e-02
14881 12 1.0000 999 261.764188353497 5.5368756953e-02
14882 12 1.0000 1000 262.082788251330 2.8609955790e-01
14883 12 1.0000 1001 262.240575638977 8.3695936275e-02
14884 12 1.0000 1002 262.531255290313 6.3680130804e-02
14885 12 1.0000 1003 262.806311301579 5.5574875544e-02
14886 12 1.0000 1004 263.073511951188 5.5848005811e-02
14887 12 1.0000 1005 263.345130025563 5.9068062856e-02
14888 12 1.0000 1006 263.576892260440 1.3272393786e+00
14889 12 1.0000 1007 263.867180431847 5.9868306570e-02
14890 12 1.0000 1008 264.122621565085 6.2316371030e-02
14891 12 1.0000 1009 264.396425560738 5.6815876323e-02
14892 12 1.0000 1010 264.671240317967 5.9030806108e-02
14893 12 1.0000 1011 264.972951527705 3.2875053303e-01
14894 12 1.0000 1012 265.173845130236 7.1643651434e-02
14895 12 1.0000 1013 265.531012337360 6.7670779087e-01
14896 12 1.0000 1014 265.602299919655 4.2609344256e-01
14897 12 1.0000 1015 265.950761579902 5.8456555512e-02
14898 12 1.0000 1016 266.231205201292 5.8365472154e-02
14899 12 1.0000 1017 266.562165577084 3.6834988799e-01
14900 12 1.0000 1018 266.638100729248 7.4512664609e-01
14901 12 1.0000 1019 267.022268926710 3.6324429865e-01
14902 12 1.0000 1020 267.254435217557 5.8984500504e-02
14903 12 1.0000 1021 267.535579791750 6.3175356229e-02
14904 12 1.0000 1022 267.869091435613 3.3543956940e-01
14905 12 1.0000 1023 267.943343471534 7.6791557947e-01
14906 12 1.0000 1024 268.291220054662 6.5956303921e-02
14907 12 1.0000 1025 268.573147146179 3.7161209508e-01
14908 12 1.0000 1026 268.831121080791 5.4947201717e-02
14909 12 1.0000 1027 269.102687705276 5.8165146108e-02
14910 12 1.0000 1028 269.361470628277 5.6182699485e-02
14911 12 1.0000 1029 269.635691932382 5.9168246619e-02
14912 12 1.0000 1030 269.962614316960 1.0158164535e+00
14913 12 1.0000 1031 270.102701110157 9.8682812683e-02
14914 12 1.0000 1032 270.372130630695 3.8239764641e-01
14915 12 1.0000 1033 270.658428782206 6.1940981607e-02
14916 12 1.0000 1034 270.927907184912 6.4848663511e-02
14917 12 1.0000 1035 271.171772886513 3.8883451179e-01
14918 12 1.0000 1036 271.491537025752 1.0664988204e+00
14919 12 1.0000 1037 271.710306603868 6.1237196637e-02
14920 12 1.0000 1038 271.985173412651 6.0397279838e-02
14921 12 1.0000 1039 272.292019849365 3.9127465957e-01
14922 12 1.0000 1040 272.499231348420 7.0213052846e-02
14923 12 1.0000 1041 272.766028996073 5.9905543158e-02
14924 12 1.0000 1042 273.039968907577 6.6858701295e-02
14925 12 1.0000 1043 273.352144637612 1.2119039225e-01
14926 12 1.0000 1044 273.469013998532 9.8627952211e-01
14927 12 1.0000 1045 273.809651315986 6.4400601864e-02
14928 12 1.0000 1046 274.069235280929 6.4066339670e-02
14929 12 1.0000 1047 274.334591245150 6.3676968466e-02
14930 12 1.0000 1048 274.607015839450 6.1470757427e-02
14931 12 1.0000 1049 274.834197113366 4.2987922059e-01
14932 12 1.0000 1050 275.130673041289 5.9432668331e-02
14933 12 1.0000 1051 275.400727465074 7.5332303049e-02
14934 12 1.0000 1052 275.591514055311 1.0433794712e+00
14935 12 1.0000 1053 275.913440433989 6.5170501827e-02
14936 12 1.0000 1054 276.164832352326 6.2754983067e-02
14937 12 1.0000 1055 276.447863138197 1.4446618543e+00
14938 12 1.0000 1056 276.694238249364 6.4787973491e-02
14939 12 1.0000 1057 276.969237880395 5.6279815465e-02
14940 12 1.0000 1058 277.236704839998 6.4286286528e-02
14941 12 1.0000 1059 277.498735748997 6.7801758258e-02
14942 12 1.0000 1060 277.812184672257 1.3326495071e-01
14943 12 1.0000 1061 277.935394058338 3.8027075727e-01
14944 12 1.0000 1062 278.251625387088 1.0639590280e+00
14945 12 1.0000 1063 278.548367021189 6.4488012933e-02
14946 12 1.0000 1064 278.843276630560 8.9289329964e-02
14947 12 1.0000 1065 279.023510313266 4.6083223971e-01
14948 12 1.0000 1066 279.237149994458 1.0353233479e+00
14949 12 1.0000 1067 279.564321368725 6.7642075104e-02
14950 12 1.0000 1068 279.833553654885 6.6007519870e-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())