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 18 of 30 · 500/page · 14949 rows next →
# atheta_over_pikz_kw_k
8502 12 0.0000 1030 269.794668256401 7.3610580394e-02
8503 12 0.0000 1031 269.975183006868 1.0450802122e+00
8504 12 0.0000 1032 270.348278162022 3.5515267488e-01
8505 12 0.0000 1033 270.519227471930 8.5934505440e-02
8506 12 0.0000 1034 270.818475911132 6.6541130653e-02
8507 12 0.0000 1035 271.145300721021 3.5445418428e-01
8508 12 0.0000 1036 271.326275713520 1.1836053647e-01
8509 12 0.0000 1037 271.501191321225 1.0363394976e+00
8510 12 0.0000 1038 271.839648699589 6.1209616491e-02
8511 12 0.0000 1039 272.124312386309 7.0063722707e-02
8512 12 0.0000 1040 272.314117907857 3.8596948675e-01
8513 12 0.0000 1041 272.620803280074 6.6265374450e-02
8514 12 0.0000 1042 272.897310326161 6.0389965082e-02
8515 12 0.0000 1043 273.152166347053 6.1121212348e-02
8516 12 0.0000 1044 273.457207994125 1.0559686536e+00
8517 12 0.0000 1045 273.681638866393 6.1067562688e-02
8518 12 0.0000 1046 273.949255820606 6.6933218821e-02
8519 12 0.0000 1047 274.218336753433 6.4285663204e-02
8520 12 0.0000 1048 274.484630509990 6.1626719782e-02
8521 12 0.0000 1049 274.809728879550 3.9277888100e-01
8522 12 0.0000 1050 274.960142642208 9.2399114185e-02
8523 12 0.0000 1051 275.269018369193 6.8273843339e-02
8524 12 0.0000 1052 275.582445983501 1.0414649410e+00
8525 12 0.0000 1053 275.764797028033 7.1901321710e-02
8526 12 0.0000 1054 276.049416470988 7.2714298925e-02
8527 12 0.0000 1055 276.399255613981 4.2213060894e-01
8528 12 0.0000 1056 276.466949008752 1.0741234473e+00
8529 12 0.0000 1057 276.807251216156 6.1142505571e-02
8530 12 0.0000 1058 277.090609008791 6.0475455784e-02
8531 12 0.0000 1059 277.356747926241 6.7399556233e-02
8532 12 0.0000 1060 277.618993485778 6.2959490835e-02
8533 12 0.0000 1061 277.906752441710 4.6530302132e-01
8534 12 0.0000 1062 278.237396972680 9.3519612969e-01
8535 12 0.0000 1063 278.336345286214 1.7566409850e-01
8536 12 0.0000 1064 278.662327704101 6.7203485152e-02
8537 12 0.0000 1065 278.989209598398 4.4846531699e-01
8538 12 0.0000 1066 279.223155286624 1.0567169226e+00
8539 12 0.0000 1067 279.407827409432 8.5309889483e-02
8540 12 0.0000 1068 279.697541517143 6.7850406374e-02
8541 12 0.0000 1069 279.972219622134 7.1429091667e-02
8542 12 0.1667 1 0.283832708474 4.1927918638e-02
8543 12 0.1667 2 0.546562235034 4.1753955125e-02
8544 12 0.1667 3 0.808770263175 4.1716444513e-02
8545 12 0.1667 4 1.070832650754 4.1702455916e-02
8546 12 0.1667 5 1.332834283677 4.1695855100e-02
8547 12 0.1667 6 1.594804085346 4.1692083709e-02
8548 12 0.1667 7 1.856756160641 4.1689856779e-02
8549 12 0.1667 8 2.118696159391 4.1688350507e-02
8550 12 0.1667 9 2.380629173336 4.1687462423e-02
8551 12 0.1667 10 2.642555974798 4.1686461480e-02
8552 12 0.1667 11 2.904479505234 4.1686316578e-02
8553 12 0.1667 12 3.166400945439 4.1685758194e-02
8554 12 0.1667 13 3.428317964741 4.1685210750e-02
8555 12 0.1667 14 3.690235846299 4.1685371088e-02
8556 12 0.1667 15 3.952151137427 4.1685362604e-02
8557 12 0.1667 16 4.214066695230 4.1684249472e-02
8558 12 0.1667 17 4.475977851974 4.1685129731e-02
8559 12 0.1667 18 4.737891422815 4.1684363510e-02
8560 12 0.1667 19 4.999805968842 4.1685333403e-02
8561 12 0.1667 20 5.261716096161 4.1683588182e-02
8562 12 0.1667 21 5.523630268392 4.1685514513e-02
8563 12 0.1667 22 5.785537190154 4.1683515986e-02
8564 12 0.1667 23 6.047456331647 4.1685447749e-02
8565 12 0.1667 24 6.309361097780 4.1684040795e-02
8566 12 0.1667 25 6.571276869358 4.1684572185e-02
8567 12 0.1667 26 6.833190149955 4.1685030634e-02
8568 12 0.1667 27 7.095101117518 4.1684940346e-02
8569 12 0.1667 28 7.357014736724 4.1683709542e-02
8570 12 0.1667 29 7.618932625544 4.1686832140e-02
8571 12 0.1667 30 7.880841805773 4.1683446033e-02
8572 12 0.1667 31 8.142761075177 4.1685742048e-02
8573 12 0.1667 32 8.404678521214 4.1685887652e-02
8574 12 0.1667 33 8.666593053351 4.1685676284e-02
8575 12 0.1667 34 8.928515411630 4.1683309120e-02
8576 12 0.1667 35 9.190427490875 4.1689583425e-02
8577 12 0.1667 36 9.452357374107 4.1683557074e-02
8578 12 0.1667 37 9.714280699159 4.1688401840e-02
8579 12 0.1667 38 9.976200384733 4.1684786723e-02
8580 12 0.1667 39 10.238122984460 4.1687988284e-02
8581 12 0.1667 40 10.500056597960 4.1685978868e-02
8582 12 0.1667 41 10.761985266667 4.1690843564e-02
8583 12 0.1667 42 11.023924204194 4.1687030487e-02
8584 12 0.1667 43 11.285870737899 4.1689510875e-02
8585 12 0.1667 44 11.547807639967 4.1692946732e-02
8586 12 0.1667 45 11.809769118468 4.1688678457e-02
8587 12 0.1667 46 12.071738227485 4.1697639757e-02
8588 12 0.1667 47 12.333711658784 4.1696523394e-02
8589 12 0.1667 48 12.595739094493 4.1704153784e-02
8590 12 0.1667 49 12.857777317290 4.1708481728e-02
8591 12 0.1667 50 13.119888681355 4.1728170103e-02
8592 12 0.1667 51 13.382160829258 4.1757419100e-02
8593 12 0.1667 52 13.644812549042 4.1872566345e-02
8594 12 0.1667 53 13.909421193093 4.2698936727e-02
8595 12 0.1667 54 14.136066456257 1.0395418389e+00
8596 12 0.1667 55 14.425659303892 4.2067201951e-02
8597 12 0.1667 56 14.688896286240 4.1809276584e-02
8598 12 0.1667 57 14.951334215337 4.1731131752e-02
8599 12 0.1667 58 15.213511698176 4.1733432657e-02
8600 12 0.1667 59 15.475628646225 4.1697591953e-02
8601 12 0.1667 60 15.737660455386 4.1711778735e-02
8602 12 0.1667 61 15.999693065201 4.1695491846e-02
8603 12 0.1667 62 16.261676339686 4.1698407679e-02
8604 12 0.1667 63 16.523686746077 4.1701396828e-02
8605 12 0.1667 64 16.785688600790 4.1695564680e-02
8606 12 0.1667 65 17.047651023126 4.1695977364e-02
8607 12 0.1667 66 17.309654776766 4.1695937652e-02
8608 12 0.1667 67 17.571638770311 4.1701265387e-02
8609 12 0.1667 68 17.833633388713 4.1695781977e-02
8610 12 0.1667 69 18.095655652710 4.1703795593e-02
8611 12 0.1667 70 18.357642027741 4.1694846601e-02
8612 12 0.1667 71 18.619661970378 4.1711139714e-02
8613 12 0.1667 72 18.881755176236 4.1705866213e-02
8614 12 0.1667 73 19.143768337566 4.1710963849e-02
8615 12 0.1667 74 19.405929950737 4.1731412441e-02
8616 12 0.1667 75 19.668120743784 4.1724183074e-02
8617 12 0.1667 76 19.930350050978 4.1762985752e-02
8618 12 0.1667 77 20.192854410098 4.1785988851e-02
8619 12 0.1667 78 20.455688700163 4.1909569089e-02
8620 12 0.1667 79 20.720026042654 4.2355491533e-02
8621 12 0.1667 80 21.020033828290 1.0369176738e+00
8622 12 0.1667 81 21.228460035028 4.4372653350e-02
8623 12 0.1667 82 21.496770830691 4.2081659075e-02
8624 12 0.1667 83 21.760310728192 4.1865499279e-02
8625 12 0.1667 84 22.023150603728 4.1802260949e-02
8626 12 0.1667 85 22.285626377234 4.1767697721e-02
8627 12 0.1667 86 22.548048108216 4.1755061172e-02
8628 12 0.1667 87 22.810449286566 4.1780702313e-02
8629 12 0.1667 88 23.072907563189 4.1760096589e-02
8630 12 0.1667 89 23.335409621987 4.1795957344e-02
8631 12 0.1667 90 23.598085980086 4.1829627594e-02
8632 12 0.1667 91 23.861039977281 4.1871852922e-02
8633 12 0.1667 92 24.124499554682 4.2011356496e-02
8634 12 0.1667 93 24.389215918504 4.2309886582e-02
8635 12 0.1667 94 24.657893631869 4.3530182815e-02
8636 12 0.1667 95 25.000842798914 9.3425476633e-01
8637 12 0.1667 96 25.089700877454 1.4179036241e-01
8638 12 0.1667 97 25.411592491468 4.3496593119e-02
8639 12 0.1667 98 25.680136081906 4.2306107095e-02
8640 12 0.1667 99 25.944830065297 4.2003476884e-02
8641 12 0.1667 100 26.208289436592 4.1878207981e-02
8642 12 0.1667 101 26.471223638418 4.1824362451e-02
8643 12 0.1667 102 26.733801889757 4.1772142448e-02
8644 12 0.1667 103 26.996324112947 4.1771871255e-02
8645 12 0.1667 104 27.258551103832 4.1748169815e-02
8646 12 0.1667 105 27.521006084062 4.1739677448e-02
8647 12 0.1667 106 27.783153716749 4.1756350896e-02
8648 12 0.1667 107 28.045436437632 4.1706863357e-02
8649 12 0.1667 108 28.307571292213 4.1730914800e-02
8650 12 0.1667 109 28.569680552716 4.1726134089e-02
8651 12 0.1667 110 28.831846911029 4.1726875959e-02
8652 12 0.1667 111 29.094134338507 4.1745243378e-02
8653 12 0.1667 112 29.356154123813 4.1710105129e-02
8654 12 0.1667 113 29.618536524450 4.1755489552e-02
8655 12 0.1667 114 29.880808139356 4.1792396331e-02
8656 12 0.1667 115 30.143644442102 4.1893092407e-02
8657 12 0.1667 116 30.424042752915 1.0409150524e+00
8658 12 0.1667 117 30.665004610947 4.2084478132e-02
8659 12 0.1667 118 30.928271917318 4.1809947436e-02
8660 12 0.1667 119 31.190838858209 4.1798632758e-02
8661 12 0.1667 120 31.453622401170 4.1844235136e-02
8662 12 0.1667 121 31.716498295272 4.1842930184e-02
8663 12 0.1667 122 31.979670629848 4.1964924402e-02
8664 12 0.1667 123 32.243987552318 4.2200495678e-02
8665 12 0.1667 124 32.511185038358 4.3114464502e-02
8666 12 0.1667 125 32.808806045123 7.1572393584e-02
8667 12 0.1667 126 32.940632694898 1.0058706431e+00
8668 12 0.1667 127 33.271073472368 4.3265451001e-02
8669 12 0.1667 128 33.538804119698 4.2206289547e-02
8670 12 0.1667 129 33.803054414697 4.1971203684e-02
8671 12 0.1667 130 34.066423180502 4.1897118622e-02
8672 12 0.1667 131 34.329339150633 4.1791523059e-02
8673 12 0.1667 132 34.592016875571 4.1836474750e-02
8674 12 0.1667 133 34.854427560016 4.1739011285e-02
8675 12 0.1667 134 35.117046210282 4.1785613628e-02
8676 12 0.1667 135 35.379434270849 4.1814109720e-02
8677 12 0.1667 136 35.642144371983 4.1773509649e-02
8678 12 0.1667 137 35.904728625512 4.1830182293e-02
8679 12 0.1667 138 36.167447455336 4.1873005535e-02
8680 12 0.1667 139 36.430710316310 4.1866332651e-02
8681 12 0.1667 140 36.694217354382 4.2086650549e-02
8682 12 0.1667 141 36.959046689529 4.2304994035e-02
8683 12 0.1667 142 37.228228000165 4.3669895955e-02
8684 12 0.1667 143 37.573906298936 8.8837424379e-01
8685 12 0.1667 144 37.651824604570 1.8740966381e-01
8686 12 0.1667 145 37.980999920293 4.3635362010e-02
8687 12 0.1667 146 38.250019170807 4.2300758551e-02
8688 12 0.1667 147 38.514631242755 4.2033804659e-02
8689 12 0.1667 148 38.778304323100 4.1914823682e-02
8690 12 0.1667 149 39.041538202406 4.1875442999e-02
8691 12 0.1667 150 39.304321192654 4.1812148346e-02
8692 12 0.1667 151 39.567063748307 4.1805675432e-02
8693 12 0.1667 152 39.829788482505 4.1833396970e-02
8694 12 0.1667 153 40.092589094025 4.1844508679e-02
8695 12 0.1667 154 40.355580756405 4.1914163409e-02
8696 12 0.1667 155 40.619921163097 4.2365408089e-02
8697 12 0.1667 156 40.916942016487 1.0379821126e+00
8698 12 0.1667 157 41.132074635895 4.3774360242e-02
8699 12 0.1667 158 41.399286866600 4.2050958215e-02
8700 12 0.1667 159 41.663061730726 4.1972067823e-02
8701 12 0.1667 160 41.926190304815 4.1853840511e-02
8702 12 0.1667 161 42.189515363503 4.1957550307e-02
8703 12 0.1667 162 42.453022977268 4.2042957385e-02
8704 12 0.1667 163 42.717808711590 4.2231122219e-02
8705 12 0.1667 164 42.985655161495 4.3388500625e-02
8706 12 0.1667 165 43.320500444121 9.9259467506e-01
8707 12 0.1667 166 43.439100116577 8.4385294579e-02
8708 12 0.1667 167 43.743586410406 4.3264377981e-02
8709 12 0.1667 168 44.011460265139 4.2245290663e-02
8710 12 0.1667 169 44.275703697297 4.2012600932e-02
8711 12 0.1667 170 44.539450772704 4.1886260225e-02
8712 12 0.1667 171 44.802150852821 4.1855796956e-02
8713 12 0.1667 172 45.064896245031 4.1762013298e-02
8714 12 0.1667 173 45.327308146587 4.1863707820e-02
8715 12 0.1667 174 45.589802089798 4.1680483469e-02
8716 12 0.1667 175 45.852088844933 4.1805847058e-02
8717 12 0.1667 176 46.114386367050 4.1764149841e-02
8718 12 0.1667 177 46.377099440087 4.1867320534e-02
8719 12 0.1667 178 46.639258056508 4.1664555055e-02
8720 12 0.1667 179 46.901760464539 4.1888948237e-02
8721 12 0.1667 180 47.164562194299 4.1824325634e-02
8722 12 0.1667 181 47.428125957101 4.2006422927e-02
8723 12 0.1667 182 47.693259004406 4.2698631975e-02
8724 12 0.1667 183 48.002445379991 1.0329859658e+00
8725 12 0.1667 184 48.192125078231 4.7293471105e-02
8726 12 0.1667 185 48.465369842219 4.2361745528e-02
8727 12 0.1667 186 48.730481382697 4.1970798618e-02
8728 12 0.1667 187 48.993223610344 4.1848756124e-02
8729 12 0.1667 188 49.255981456648 4.1850486623e-02
8730 12 0.1667 189 49.518681863276 4.1837234814e-02
8731 12 0.1667 190 49.774109769622 1.0416353276e+00
8732 12 0.1667 191 50.042821814359 4.1795670296e-02
8733 12 0.1667 192 50.305247837012 4.1738584563e-02
8734 12 0.1667 193 50.567648183203 4.1770023780e-02
8735 12 0.1667 194 50.829607073251 4.1708907026e-02
8736 12 0.1667 195 51.092060508046 4.1727814702e-02
8737 12 0.1667 196 51.353888801947 4.1857926777e-02
8738 12 0.1667 197 51.616604739139 4.1765086287e-02
8739 12 0.1667 198 51.878949835515 4.1791354382e-02
8740 12 0.1667 199 52.141391122723 4.1762933961e-02
8741 12 0.1667 200 52.404336813105 4.2009315020e-02
8742 12 0.1667 201 52.668767157715 4.2369760143e-02
8743 12 0.1667 202 52.968352686784 1.0371590271e+00
8744 12 0.1667 203 53.178006381798 4.4340599005e-02
8745 12 0.1667 204 53.446492122633 4.2150406361e-02
8746 12 0.1667 205 53.710057190336 4.1932179109e-02
8747 12 0.1667 206 53.972828288481 4.1741958434e-02
8748 12 0.1667 207 54.235835229175 4.1971635437e-02
8749 12 0.1667 208 54.498474060627 4.1753409221e-02
8750 12 0.1667 209 54.761052508943 4.1931364248e-02
8751 12 0.1667 210 55.024045382177 4.1858102191e-02
8752 12 0.1667 211 55.287369521015 4.2000244829e-02
8753 12 0.1667 212 55.551390816260 4.2042607295e-02
8754 12 0.1667 213 55.816118707434 4.2439128426e-02
8755 12 0.1667 214 56.085350374570 4.3741680816e-02
8756 12 0.1667 215 56.432417239091 8.5493703085e-01
8757 12 0.1667 216 56.505172671648 2.2079320760e-01
8758 12 0.1667 217 56.837985679496 4.3743760719e-02
8759 12 0.1667 218 57.107609463464 4.2332586628e-02
8760 12 0.1667 219 57.372788774200 4.2170139436e-02
8761 12 0.1667 220 57.636708024877 4.1980003828e-02
8762 12 0.1667 221 57.900758061637 4.2034772810e-02
8763 12 0.1667 222 58.164874567694 4.2192031135e-02
8764 12 0.1667 223 58.428443528813 4.1962238466e-02
8765 12 0.1667 224 58.694167548747 4.2593294914e-02
8766 12 0.1667 225 58.963775293462 4.3713677810e-02
8767 12 0.1667 226 59.306246285222 3.6604304530e-01
8768 12 0.1667 227 59.367372300429 7.0973946796e-01
8769 12 0.1667 228 59.716762336935 4.3828399989e-02
8770 12 0.1667 229 59.986618347568 4.2535337909e-02
8771 12 0.1667 230 60.252903302229 4.2282506612e-02
8772 12 0.1667 231 60.519829106957 4.3007282006e-02
8773 12 0.1667 232 60.829131225053 1.0336584742e+00
8774 12 0.1667 233 61.021677315774 4.7035243913e-02
8775 12 0.1667 234 61.295172406339 4.2461470194e-02
8776 12 0.1667 235 61.560096404970 4.2092110997e-02
8777 12 0.1667 236 61.823702389311 4.1943288654e-02
8778 12 0.1667 237 62.086672835496 4.1957911101e-02
8779 12 0.1667 238 62.349304619545 4.1696962595e-02
8780 12 0.1667 239 62.612199071019 4.1982144471e-02
8781 12 0.1667 240 62.874931513798 4.1805202417e-02
8782 12 0.1667 241 63.137837991502 4.1743069811e-02
8783 12 0.1667 242 63.400248346888 4.1963763968e-02
8784 12 0.1667 243 63.663517836767 4.1838149338e-02
8785 12 0.1667 244 63.926091234971 4.2026099343e-02
8786 12 0.1667 245 64.190013205069 4.2389932033e-02
8787 12 0.1667 246 64.455203144134 4.2284141411e-02
8788 12 0.1667 247 64.724073425697 4.3691924979e-02
8789 12 0.1667 248 65.060677968376 2.6527347637e-01
8790 12 0.1667 249 65.128350128377 8.1047797338e-01
8791 12 0.1667 250 65.476800978677 4.3707276383e-02
8792 12 0.1667 251 65.746120718652 4.2637879975e-02
8793 12 0.1667 252 66.010752913007 4.1989534885e-02
8794 12 0.1667 253 66.275100530917 4.2055231459e-02
8795 12 0.1667 254 66.537895871584 4.1999970827e-02
8796 12 0.1667 255 66.801663967518 4.1817012841e-02
8797 12 0.1667 256 67.079163399282 1.0415740065e+00
8798 12 0.1667 257 67.325017415027 4.1858823810e-02
8799 12 0.1667 258 67.588902396733 4.2035381084e-02
8800 12 0.1667 259 67.851408234632 4.1827101333e-02
8801 12 0.1667 260 68.114100883484 4.2054590511e-02
8802 12 0.1667 261 68.377733174912 4.2116799459e-02
8803 12 0.1667 262 68.641608893221 4.2079328861e-02
8804 12 0.1667 263 68.906868357112 4.2511310625e-02
8805 12 0.1667 264 69.175968610030 4.3833697800e-02
8806 12 0.1667 265 69.524253817595 6.6903914968e-01
8807 12 0.1667 266 69.583848121899 4.0646078236e-01
8808 12 0.1667 267 69.927600713346 4.3701922334e-02
8809 12 0.1667 268 70.196838205144 4.2433349060e-02
8810 12 0.1667 269 70.461612240477 4.1939606068e-02
8811 12 0.1667 270 70.726054030962 4.2504778493e-02
8812 12 0.1667 271 70.989131157539 4.1814019110e-02
8813 12 0.1667 272 71.251964396384 4.1901992950e-02
8814 12 0.1667 273 71.514696969786 4.2244936869e-02
8815 12 0.1667 274 71.778693480829 4.1955307405e-02
8816 12 0.1667 275 72.065943444822 1.0402660471e+00
8817 12 0.1667 276 72.296894222192 4.2431952283e-02
8818 12 0.1667 277 72.561327797907 4.2401697976e-02
8819 12 0.1667 278 72.824352618578 4.1651067032e-02
8820 12 0.1667 279 73.086463282726 4.2005092653e-02
8821 12 0.1667 280 73.349188964589 4.1737334675e-02
8822 12 0.1667 281 73.611670216741 4.1843273817e-02
8823 12 0.1667 282 73.874376251232 4.1860936915e-02
8824 12 0.1667 283 74.136007982024 4.1803054204e-02
8825 12 0.1667 284 74.398993044092 4.1830489691e-02
8826 12 0.1667 285 74.660502674592 4.2066422311e-02
8827 12 0.1667 286 74.923334292315 4.1781846503e-02
8828 12 0.1667 287 75.186507879659 4.1853779627e-02
8829 12 0.1667 288 75.448442935530 4.1886780870e-02
8830 12 0.1667 289 75.704971461931 1.0418406397e+00
8831 12 0.1667 290 75.973987859264 4.2015949988e-02
8832 12 0.1667 291 76.238489369786 4.2476876722e-02
8833 12 0.1667 292 76.502818004250 4.2240085823e-02
8834 12 0.1667 293 76.772130278000 4.3998948869e-02
8835 12 0.1667 294 77.120684093046 6.2785636581e-01
8836 12 0.1667 295 77.179289116129 4.4779308734e-01
8837 12 0.1667 296 77.523360876859 4.4079853692e-02
8838 12 0.1667 297 77.793258796896 4.2327342686e-02
8839 12 0.1667 298 78.058207035463 4.2293447033e-02
8840 12 0.1667 299 78.322503101854 4.2031687745e-02
8841 12 0.1667 300 78.586460976117 4.1936414340e-02
8842 12 0.1667 301 78.849248379307 4.2417472290e-02
8843 12 0.1667 302 79.115613913187 4.3220074508e-02
8844 12 0.1667 303 79.338879154216 1.0391382066e+00
8845 12 0.1667 304 79.631331998037 4.2228576909e-02
8846 12 0.1667 305 79.896074727562 4.2204904830e-02
8847 12 0.1667 306 80.158215400428 4.1793882462e-02
8848 12 0.1667 307 80.421926355394 4.2493129111e-02
8849 12 0.1667 308 80.684113783303 4.1688011601e-02
8850 12 0.1667 309 80.946878184369 4.2051930797e-02
8851 12 0.1667 310 81.210657367980 4.2303796919e-02
8852 12 0.1667 311 81.472348865525 4.1984658033e-02
8853 12 0.1667 312 81.736295055441 4.1976056429e-02
8854 12 0.1667 313 81.999887936506 4.2121387016e-02
8855 12 0.1667 314 82.265000645028 4.2518952104e-02
8856 12 0.1667 315 82.536468391137 4.4150223808e-02
8857 12 0.1667 316 82.881672886428 5.4333394388e-01
8858 12 0.1667 317 82.939664252394 5.3257705497e-01
8859 12 0.1667 318 83.287492564642 4.3917307434e-02
8860 12 0.1667 319 83.557911315579 4.2823310087e-02
8861 12 0.1667 320 83.824520652509 4.2532008940e-02
8862 12 0.1667 321 84.091162756576 4.3203792820e-02
8863 12 0.1667 322 84.361891390563 4.3965947685e-02
8864 12 0.1667 323 84.710618369925 6.1377337375e-01
8865 12 0.1667 324 84.769080955091 4.6214400789e-01
8866 12 0.1667 325 85.115601376904 4.3595154683e-02
8867 12 0.1667 326 85.384670088873 4.2662760024e-02
8868 12 0.1667 327 85.650730388181 4.2104944117e-02
8869 12 0.1667 328 85.913950249183 4.2196514707e-02
8870 12 0.1667 329 86.177943391286 4.2032653842e-02
8871 12 0.1667 330 86.442343834962 4.2595828941e-02
8872 12 0.1667 331 86.704759205030 4.2088668709e-02
8873 12 0.1667 332 86.971136764427 4.2718212516e-02
8874 12 0.1667 333 87.248501167370 4.9654843967e-02
8875 12 0.1667 334 87.428418144734 1.0303326578e+00
8876 12 0.1667 335 87.741747603812 4.3672718056e-02
8877 12 0.1667 336 88.008293387581 4.2535636045e-02
8878 12 0.1667 337 88.271183148443 4.2276882174e-02
8879 12 0.1667 338 88.534420125580 4.1785433971e-02
8880 12 0.1667 339 88.808601537918 1.0417717913e+00
8881 12 0.1667 340 89.059615368658 4.2074808130e-02
8882 12 0.1667 341 89.320933712820 4.1729523435e-02
8883 12 0.1667 342 89.583811379654 4.2044525821e-02
8884 12 0.1667 343 89.847352060935 4.2520929790e-02
8885 12 0.1667 344 90.108422661182 4.1679203478e-02
8886 12 0.1667 345 90.371080199848 4.2250346929e-02
8887 12 0.1667 346 90.633250216253 4.1580772614e-02
8888 12 0.1667 347 90.895216808524 4.2011875620e-02
8889 12 0.1667 348 91.159381140383 4.2451295605e-02
8890 12 0.1667 349 91.419097680271 4.2056709069e-02
8891 12 0.1667 350 91.681998754776 4.2000526662e-02
8892 12 0.1667 351 91.944358013892 4.1731142127e-02
8893 12 0.1667 352 92.208071164282 4.2316036821e-02
8894 12 0.1667 353 92.490946826970 1.0405726678e+00
8895 12 0.1667 354 92.727247082522 4.3247877403e-02
8896 12 0.1667 355 92.992307686341 4.2113213069e-02
8897 12 0.1667 356 93.255596355245 4.2053494810e-02
8898 12 0.1667 357 93.518312461188 4.1976107919e-02
8899 12 0.1667 358 93.782914765363 4.1997185967e-02
8900 12 0.1667 359 94.045604875078 4.2769705943e-02
8901 12 0.1667 360 94.315666137068 4.3248761267e-02
8902 12 0.1667 361 94.645257074433 1.0015935964e+00
8903 12 0.1667 362 94.772260316278 7.6654654134e-02
8904 12 0.1667 363 95.073374136824 4.3390698772e-02
8905 12 0.1667 364 95.341274631326 4.2299121175e-02
8906 12 0.1667 365 95.604772680857 4.3304296630e-02
8907 12 0.1667 366 95.870571362727 1.0419828868e+00
8908 12 0.1667 367 96.131212298304 4.2120844522e-02
8909 12 0.1667 368 96.393819835841 4.1810313024e-02
8910 12 0.1667 369 96.656925957537 4.2138253835e-02
8911 12 0.1667 370 96.919295018913 4.1787392334e-02
8912 12 0.1667 371 97.182537926077 4.1939861858e-02
8913 12 0.1667 372 97.445818339203 4.3307329684e-02
8914 12 0.1667 373 97.708183486692 4.1628879008e-02
8915 12 0.1667 374 97.971493051182 4.2102184674e-02
8916 12 0.1667 375 98.235577351093 4.2417616485e-02
8917 12 0.1667 376 98.503092995573 4.4132683550e-02
8918 12 0.1667 377 98.826662908224 1.0185816685e+00
8919 12 0.1667 378 98.977387655002 6.0650858398e-02
8920 12 0.1667 379 99.267715755512 4.2647483891e-02
8921 12 0.1667 380 99.533175294271 4.2544446544e-02
8922 12 0.1667 381 99.799186325686 4.2611841328e-02
8923 12 0.1667 382 100.059906278460 4.2897456040e-02
8924 12 0.1667 383 100.326315702681 4.3356164254e-02
8925 12 0.1667 384 100.586825650057 4.2383741597e-02
8926 12 0.1667 385 100.851577114153 4.2174340789e-02
8927 12 0.1667 386 101.123330107016 4.6504065560e-02
8928 12 0.1667 387 101.320300894846 1.0345090595e+00
8929 12 0.1667 388 101.626498583404 4.2678478350e-02
8930 12 0.1667 389 101.891986650775 4.2399698167e-02
8931 12 0.1667 390 102.154291458426 4.1970044952e-02
8932 12 0.1667 391 102.418367596077 4.2269676737e-02
8933 12 0.1667 392 102.680841414748 4.1786449965e-02
8934 12 0.1667 393 102.944132431590 4.2150738792e-02
8935 12 0.1667 394 103.207135253860 4.3515384486e-02
8936 12 0.1667 395 103.469026784800 4.2065619518e-02
8937 12 0.1667 396 103.725777898005 1.0418450380e+00
8938 12 0.1667 397 103.995349196979 4.2178381584e-02
8939 12 0.1667 398 104.258530183805 4.2716456562e-02
8940 12 0.1667 399 104.519301177695 4.3092591815e-02
8941 12 0.1667 400 104.785882558044 4.2669350763e-02
8942 12 0.1667 401 105.054779831139 4.3663050367e-02
8943 12 0.1667 402 105.388719788516 2.2637218822e-01
8944 12 0.1667 403 105.460707413141 8.4978048507e-01
8945 12 0.1667 404 105.809712511947 4.5056816561e-02
8946 12 0.1667 405 106.077353908321 4.2995735989e-02
8947 12 0.1667 406 106.343321885905 4.2163478067e-02
8948 12 0.1667 407 106.607445949525 4.2868514001e-02
8949 12 0.1667 408 106.869151378375 4.3741065766e-02
8950 12 0.1667 409 107.166959642365 1.0388435789e+00
8951 12 0.1667 410 107.386047540342 4.3960542537e-02
8952 12 0.1667 411 107.653535288727 4.2360797408e-02
8953 12 0.1667 412 107.916072753976 4.1874616133e-02
8954 12 0.1667 413 108.180610514715 4.3791132125e-02
8955 12 0.1667 414 108.441191435942 4.2119208857e-02
8956 12 0.1667 415 108.705060612441 4.2078090780e-02
8957 12 0.1667 416 108.967224380028 4.2518556827e-02
8958 12 0.1667 417 109.230033509010 4.1393415223e-02
8959 12 0.1667 418 109.491547783249 4.2071456337e-02
8960 12 0.1667 419 109.754376856059 4.1979635750e-02
8961 12 0.1667 420 110.018594574056 4.3498757283e-02
8962 12 0.1667 421 110.279415377595 4.3114896170e-02
8963 12 0.1667 422 110.543135500115 4.2191762221e-02
8964 12 0.1667 423 110.805671561280 4.4810881767e-02
8965 12 0.1667 424 111.031030163408 1.0395059980e+00
8966 12 0.1667 425 111.323874289049 4.2369278951e-02
8967 12 0.1667 426 111.588207301201 4.2670800372e-02
8968 12 0.1667 427 111.873594213982 1.0408273092e+00
8969 12 0.1667 428 112.108984812147 4.2846393746e-02
8970 12 0.1667 429 112.373921702462 4.2222422364e-02
8971 12 0.1667 430 112.636731580168 4.2211949620e-02
8972 12 0.1667 431 112.897961497399 4.3997110273e-02
8973 12 0.1667 432 113.165209381337 4.2766797701e-02
8974 12 0.1667 433 113.428247247713 4.2605087431e-02
8975 12 0.1667 434 113.694876192064 4.2558283258e-02
8976 12 0.1667 435 113.962377645248 4.3738417267e-02
8977 12 0.1667 436 114.308461771925 9.0225594912e-01
8978 12 0.1667 437 114.389864610971 1.7428343609e-01
8979 12 0.1667 438 114.714574048351 4.6152015559e-02
8980 12 0.1667 439 114.986909152187 4.2872272161e-02
8981 12 0.1667 440 115.254435650734 4.2265929153e-02
8982 12 0.1667 441 115.519814533131 4.3784218878e-02
8983 12 0.1667 442 115.782513743511 4.4783761244e-02
8984 12 0.1667 443 116.070286707877 5.6510699366e-02
8985 12 0.1667 444 116.230763374253 1.0230170626e+00
8986 12 0.1667 445 116.553352641313 4.3478266773e-02
8987 12 0.1667 446 116.816732572317 4.4602208477e-02
8988 12 0.1667 447 117.083281502769 4.3140814334e-02
8989 12 0.1667 448 117.348142909095 4.1970117748e-02
8990 12 0.1667 449 117.614569841580 4.2883009919e-02
8991 12 0.1667 450 117.880026061322 4.2925125995e-02
8992 12 0.1667 451 118.140771656736 4.4704954196e-02
8993 12 0.1667 452 118.411675237637 4.4641114229e-02
8994 12 0.1667 453 118.759207024434 4.9318219530e-01
8995 12 0.1667 454 118.817375909019 5.8264740051e-01
8996 12 0.1667 455 119.165416463505 4.4107695799e-02
8997 12 0.1667 456 119.438495162820 4.5683571392e-02
8998 12 0.1667 457 119.699460865688 4.2847843052e-02
8999 12 0.1667 458 119.963932546893 4.2930554670e-02
9000 12 0.1667 459 120.229291974929 4.2414474770e-02
9001 12 0.1667 460 120.495297467802 4.2598735546e-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())