E-023-finite-height-assembly.py
Experiments: E-023 · script updated 08-19-2026
E-023-assembly.csv
— 710.1 KB, updated 08-19-2026
| # | n | margin_traced | margin_measured |
|---|---|---|---|
| 18002 | 360020 | 1607819.652795 | 1633413.284812 |
| 18003 | 360040 | 1607927.136701 | 1633521.401590 |
| 18004 | 360060 | 1608034.621231 | 1633629.518975 |
| 18005 | 360080 | 1608142.106385 | 1633737.636968 |
| 18006 | 360100 | 1608249.592164 | 1633845.755570 |
| 18007 | 360120 | 1608357.078566 | 1633953.874779 |
| 18008 | 360140 | 1608464.565592 | 1634061.994596 |
| 18009 | 360160 | 1608572.053243 | 1634170.115021 |
| 18010 | 360180 | 1608679.541517 | 1634278.236054 |
| 18011 | 360200 | 1608787.030415 | 1634386.357694 |
| 18012 | 360220 | 1608894.519937 | 1634494.479942 |
| 18013 | 360240 | 1609002.010083 | 1634602.602798 |
| 18014 | 360260 | 1609109.500853 | 1634710.726262 |
| 18015 | 360280 | 1609216.992247 | 1634818.850333 |
| 18016 | 360300 | 1609324.484264 | 1634926.975011 |
| 18017 | 360320 | 1609431.976905 | 1635035.100298 |
| 18018 | 360340 | 1609539.470170 | 1635143.226191 |
| 18019 | 360360 | 1609646.964059 | 1635251.352692 |
| 18020 | 360380 | 1609754.458571 | 1635359.479801 |
| 18021 | 360400 | 1609861.953706 | 1635467.607517 |
| 18022 | 360420 | 1609969.449465 | 1635575.735840 |
| 18023 | 360440 | 1610076.945848 | 1635683.864771 |
| 18024 | 360460 | 1610184.442854 | 1635791.994309 |
| 18025 | 360480 | 1610291.940483 | 1635900.124454 |
| 18026 | 360500 | 1610399.438736 | 1636008.255206 |
| 18027 | 360520 | 1610506.937612 | 1636116.386566 |
| 18028 | 360540 | 1610614.437112 | 1636224.518532 |
| 18029 | 360560 | 1610721.937234 | 1636332.651106 |
| 18030 | 360580 | 1610829.437980 | 1636440.784287 |
| 18031 | 360600 | 1610936.939350 | 1636548.918075 |
| 18032 | 360620 | 1611044.441342 | 1636657.052469 |
| 18033 | 360640 | 1611151.943957 | 1636765.187471 |
| 18034 | 360660 | 1611259.447196 | 1636873.323080 |
| 18035 | 360680 | 1611366.951057 | 1636981.459295 |
| 18036 | 360700 | 1611474.455542 | 1637089.596118 |
| 18037 | 360720 | 1611581.960649 | 1637197.733547 |
| 18038 | 360740 | 1611689.466380 | 1637305.871583 |
| 18039 | 360760 | 1611796.972733 | 1637414.010226 |
| 18040 | 360780 | 1611904.479709 | 1637522.149475 |
| 18041 | 360800 | 1612011.987308 | 1637630.289331 |
| 18042 | 360820 | 1612119.495530 | 1637738.429794 |
| 18043 | 360840 | 1612227.004374 | 1637846.570863 |
| 18044 | 360860 | 1612334.513842 | 1637954.712539 |
| 18045 | 360880 | 1612442.023932 | 1638062.854822 |
| 18046 | 360900 | 1612549.534644 | 1638170.997711 |
| 18047 | 360920 | 1612657.045979 | 1638279.141206 |
| 18048 | 360940 | 1612764.557937 | 1638387.285308 |
| 18049 | 360960 | 1612872.070517 | 1638495.430016 |
| 18050 | 360980 | 1612979.583720 | 1638603.575331 |
| 18051 | 361000 | 1613087.097545 | 1638711.721251 |
| 18052 | 361020 | 1613194.611992 | 1638819.867778 |
| 18053 | 361040 | 1613302.127062 | 1638928.014912 |
| 18054 | 361060 | 1613409.642755 | 1639036.162651 |
| 18055 | 361080 | 1613517.159069 | 1639144.310997 |
| 18056 | 361100 | 1613624.676006 | 1639252.459949 |
| 18057 | 361120 | 1613732.193565 | 1639360.609507 |
| 18058 | 361140 | 1613839.711746 | 1639468.759671 |
| 18059 | 361160 | 1613947.230550 | 1639576.910441 |
| 18060 | 361180 | 1614054.749975 | 1639685.061817 |
| 18061 | 361200 | 1614162.270023 | 1639793.213799 |
| 18062 | 361220 | 1614269.790692 | 1639901.366387 |
| 18063 | 361240 | 1614377.311984 | 1640009.519581 |
| 18064 | 361260 | 1614484.833897 | 1640117.673380 |
| 18065 | 361280 | 1614592.356433 | 1640225.827786 |
| 18066 | 361300 | 1614699.879590 | 1640333.982797 |
| 18067 | 361320 | 1614807.403369 | 1640442.138414 |
| 18068 | 361340 | 1614914.927770 | 1640550.294636 |
| 18069 | 361360 | 1615022.452793 | 1640658.451465 |
| 18070 | 361380 | 1615129.978438 | 1640766.608899 |
| 18071 | 361400 | 1615237.504704 | 1640874.766938 |
| 18072 | 361420 | 1615345.031592 | 1640982.925583 |
| 18073 | 361440 | 1615452.559102 | 1641091.084834 |
| 18074 | 361460 | 1615560.087233 | 1641199.244690 |
| 18075 | 361480 | 1615667.615986 | 1641307.405152 |
| 18076 | 361500 | 1615775.145360 | 1641415.566219 |
| 18077 | 361520 | 1615882.675356 | 1641523.727891 |
| 18078 | 361540 | 1615990.205973 | 1641631.890169 |
| 18079 | 361560 | 1616097.737211 | 1641740.053052 |
| 18080 | 361580 | 1616205.269071 | 1641848.216540 |
| 18081 | 361600 | 1616312.801553 | 1641956.380634 |
| 18082 | 361620 | 1616420.334655 | 1642064.545332 |
| 18083 | 361640 | 1616527.868379 | 1642172.710636 |
| 18084 | 361660 | 1616635.402724 | 1642280.876545 |
| 18085 | 361680 | 1616742.937690 | 1642389.043059 |
| 18086 | 361700 | 1616850.473278 | 1642497.210179 |
| 18087 | 361720 | 1616958.009486 | 1642605.377903 |
| 18088 | 361740 | 1617065.546316 | 1642713.546232 |
| 18089 | 361760 | 1617173.083767 | 1642821.715166 |
| 18090 | 361780 | 1617280.621838 | 1642929.884705 |
| 18091 | 361800 | 1617388.160531 | 1643038.054849 |
| 18092 | 361820 | 1617495.699845 | 1643146.225598 |
| 18093 | 361840 | 1617603.239779 | 1643254.396952 |
| 18094 | 361860 | 1617710.780334 | 1643362.568910 |
| 18095 | 361880 | 1617818.321510 | 1643470.741473 |
| 18096 | 361900 | 1617925.863307 | 1643578.914641 |
| 18097 | 361920 | 1618033.405725 | 1643687.088414 |
| 18098 | 361940 | 1618140.948763 | 1643795.262791 |
| 18099 | 361960 | 1618248.492422 | 1643903.437773 |
| 18100 | 361980 | 1618356.036702 | 1644011.613359 |
| 18101 | 362000 | 1618463.581602 | 1644119.789550 |
| 18102 | 362020 | 1618571.127123 | 1644227.966345 |
| 18103 | 362040 | 1618678.673264 | 1644336.143745 |
| 18104 | 362060 | 1618786.220026 | 1644444.321749 |
| 18105 | 362080 | 1618893.767409 | 1644552.500358 |
| 18106 | 362100 | 1619001.315411 | 1644660.679571 |
| 18107 | 362120 | 1619108.864034 | 1644768.859388 |
| 18108 | 362140 | 1619216.413278 | 1644877.039810 |
| 18109 | 362160 | 1619323.963142 | 1644985.220835 |
| 18110 | 362180 | 1619431.513625 | 1645093.402465 |
| 18111 | 362200 | 1619539.064730 | 1645201.584700 |
| 18112 | 362220 | 1619646.616454 | 1645309.767538 |
| 18113 | 362240 | 1619754.168799 | 1645417.950980 |
| 18114 | 362260 | 1619861.721763 | 1645526.135027 |
| 18115 | 362280 | 1619969.275348 | 1645634.319677 |
| 18116 | 362300 | 1620076.829553 | 1645742.504932 |
| 18117 | 362320 | 1620184.384378 | 1645850.690790 |
| 18118 | 362340 | 1620291.939822 | 1645958.877253 |
| 18119 | 362360 | 1620399.495887 | 1646067.064319 |
| 18120 | 362380 | 1620507.052572 | 1646175.251989 |
| 18121 | 362400 | 1620614.609876 | 1646283.440263 |
| 18122 | 362420 | 1620722.167801 | 1646391.629141 |
| 18123 | 362440 | 1620829.726345 | 1646499.818622 |
| 18124 | 362460 | 1620937.285508 | 1646608.008707 |
| 18125 | 362480 | 1621044.845292 | 1646716.199396 |
| 18126 | 362500 | 1621152.405695 | 1646824.390689 |
| 18127 | 362520 | 1621259.966718 | 1646932.582585 |
| 18128 | 362540 | 1621367.528361 | 1647040.775084 |
| 18129 | 362560 | 1621475.090623 | 1647148.968187 |
| 18130 | 362580 | 1621582.653504 | 1647257.161894 |
| 18131 | 362600 | 1621690.217005 | 1647365.356204 |
| 18132 | 362620 | 1621797.781126 | 1647473.551118 |
| 18133 | 362640 | 1621905.345866 | 1647581.746635 |
| 18134 | 362660 | 1622012.911225 | 1647689.942755 |
| 18135 | 362680 | 1622120.477204 | 1647798.139479 |
| 18136 | 362700 | 1622228.043802 | 1647906.336806 |
| 18137 | 362720 | 1622335.611019 | 1648014.534736 |
| 18138 | 362740 | 1622443.178855 | 1648122.733269 |
| 18139 | 362760 | 1622550.747311 | 1648230.932406 |
| 18140 | 362780 | 1622658.316386 | 1648339.132146 |
| 18141 | 362800 | 1622765.886080 | 1648447.332488 |
| 18142 | 362820 | 1622873.456393 | 1648555.533434 |
| 18143 | 362840 | 1622981.027325 | 1648663.734983 |
| 18144 | 362860 | 1623088.598876 | 1648771.937135 |
| 18145 | 362880 | 1623196.171046 | 1648880.139890 |
| 18146 | 362900 | 1623303.743835 | 1648988.343248 |
| 18147 | 362920 | 1623411.317243 | 1649096.547209 |
| 18148 | 362940 | 1623518.891270 | 1649204.751772 |
| 18149 | 362960 | 1623626.465916 | 1649312.956939 |
| 18150 | 362980 | 1623734.041180 | 1649421.162708 |
| 18151 | 363000 | 1623841.617063 | 1649529.369080 |
| 18152 | 363020 | 1623949.193565 | 1649637.576054 |
| 18153 | 363040 | 1624056.770686 | 1649745.783632 |
| 18154 | 363060 | 1624164.348425 | 1649853.991812 |
| 18155 | 363080 | 1624271.926783 | 1649962.200594 |
| 18156 | 363100 | 1624379.505760 | 1650070.409980 |
| 18157 | 363120 | 1624487.085355 | 1650178.619967 |
| 18158 | 363140 | 1624594.665568 | 1650286.830558 |
| 18159 | 363160 | 1624702.246400 | 1650395.041750 |
| 18160 | 363180 | 1624809.827850 | 1650503.253546 |
| 18161 | 363200 | 1624917.409919 | 1650611.465943 |
| 18162 | 363220 | 1625024.992606 | 1650719.678943 |
| 18163 | 363240 | 1625132.575912 | 1650827.892545 |
| 18164 | 363260 | 1625240.159836 | 1650936.106750 |
| 18165 | 363280 | 1625347.744378 | 1651044.321557 |
| 18166 | 363300 | 1625455.329538 | 1651152.536966 |
| 18167 | 363320 | 1625562.915316 | 1651260.752977 |
| 18168 | 363340 | 1625670.501713 | 1651368.969590 |
| 18169 | 363360 | 1625778.088727 | 1651477.186806 |
| 18170 | 363380 | 1625885.676360 | 1651585.404623 |
| 18171 | 363400 | 1625993.264611 | 1651693.623043 |
| 18172 | 363420 | 1626100.853479 | 1651801.842065 |
| 18173 | 363440 | 1626208.442966 | 1651910.061688 |
| 18174 | 363460 | 1626316.033070 | 1652018.281914 |
| 18175 | 363480 | 1626423.623793 | 1652126.502741 |
| 18176 | 363500 | 1626531.215133 | 1652234.724170 |
| 18177 | 363520 | 1626638.807091 | 1652342.946202 |
| 18178 | 363540 | 1626746.399667 | 1652451.168835 |
| 18179 | 363560 | 1626853.992861 | 1652559.392069 |
| 18180 | 363580 | 1626961.586672 | 1652667.615906 |
| 18181 | 363600 | 1627069.181101 | 1652775.840344 |
| 18182 | 363620 | 1627176.776148 | 1652884.065384 |
| 18183 | 363640 | 1627284.371812 | 1652992.291025 |
| 18184 | 363660 | 1627391.968093 | 1653100.517268 |
| 18185 | 363680 | 1627499.564993 | 1653208.744113 |
| 18186 | 363700 | 1627607.162509 | 1653316.971559 |
| 18187 | 363720 | 1627714.760643 | 1653425.199607 |
| 18188 | 363740 | 1627822.359395 | 1653533.428256 |
| 18189 | 363760 | 1627929.958764 | 1653641.657506 |
| 18190 | 363780 | 1628037.558750 | 1653749.887358 |
| 18191 | 363800 | 1628145.159354 | 1653858.117811 |
| 18192 | 363820 | 1628252.760575 | 1653966.348866 |
| 18193 | 363840 | 1628360.362413 | 1654074.580521 |
| 18194 | 363860 | 1628467.964868 | 1654182.812778 |
| 18195 | 363880 | 1628575.567940 | 1654291.045636 |
| 18196 | 363900 | 1628683.171630 | 1654399.279096 |
| 18197 | 363920 | 1628790.775936 | 1654507.513156 |
| 18198 | 363940 | 1628898.380860 | 1654615.747818 |
| 18199 | 363960 | 1629005.986400 | 1654723.983081 |
| 18200 | 363980 | 1629113.592558 | 1654832.218944 |
| 18201 | 364000 | 1629221.199333 | 1654940.455409 |
| 18202 | 364020 | 1629328.806724 | 1655048.692475 |
| 18203 | 364040 | 1629436.414732 | 1655156.930141 |
| 18204 | 364060 | 1629544.023357 | 1655265.168409 |
| 18205 | 364080 | 1629651.632599 | 1655373.407277 |
| 18206 | 364100 | 1629759.242458 | 1655481.646746 |
| 18207 | 364120 | 1629866.852933 | 1655589.886816 |
| 18208 | 364140 | 1629974.464025 | 1655698.127486 |
| 18209 | 364160 | 1630082.075734 | 1655806.368758 |
| 18210 | 364180 | 1630189.688059 | 1655914.610630 |
| 18211 | 364200 | 1630297.301001 | 1656022.853102 |
| 18212 | 364220 | 1630404.914559 | 1656131.096176 |
| 18213 | 364240 | 1630512.528734 | 1656239.339850 |
| 18214 | 364260 | 1630620.143525 | 1656347.584124 |
| 18215 | 364280 | 1630727.758933 | 1656455.828999 |
| 18216 | 364300 | 1630835.374957 | 1656564.074474 |
| 18217 | 364320 | 1630942.991598 | 1656672.320550 |
| 18218 | 364340 | 1631050.608854 | 1656780.567226 |
| 18219 | 364360 | 1631158.226727 | 1656888.814502 |
| 18220 | 364380 | 1631265.845217 | 1656997.062379 |
| 18221 | 364400 | 1631373.464322 | 1657105.310856 |
| 18222 | 364420 | 1631481.084044 | 1657213.559934 |
| 18223 | 364440 | 1631588.704382 | 1657321.809611 |
| 18224 | 364460 | 1631696.325335 | 1657430.059889 |
| 18225 | 364480 | 1631803.946905 | 1657538.310767 |
| 18226 | 364500 | 1631911.569091 | 1657646.562245 |
| 18227 | 364520 | 1632019.191893 | 1657754.814323 |
| 18228 | 364540 | 1632126.815311 | 1657863.067001 |
| 18229 | 364560 | 1632234.439345 | 1657971.320280 |
| 18230 | 364580 | 1632342.063995 | 1658079.574158 |
| 18231 | 364600 | 1632449.689260 | 1658187.828636 |
| 18232 | 364620 | 1632557.315141 | 1658296.083714 |
| 18233 | 364640 | 1632664.941638 | 1658404.339392 |
| 18234 | 364660 | 1632772.568751 | 1658512.595669 |
| 18235 | 364680 | 1632880.196480 | 1658620.852547 |
| 18236 | 364700 | 1632987.824824 | 1658729.110024 |
| 18237 | 364720 | 1633095.453784 | 1658837.368101 |
| 18238 | 364740 | 1633203.083359 | 1658945.626778 |
| 18239 | 364760 | 1633310.713550 | 1659053.886054 |
| 18240 | 364780 | 1633418.344356 | 1659162.145930 |
| 18241 | 364800 | 1633525.975778 | 1659270.406406 |
| 18242 | 364820 | 1633633.607816 | 1659378.667481 |
| 18243 | 364840 | 1633741.240469 | 1659486.929155 |
| 18244 | 364860 | 1633848.873737 | 1659595.191429 |
| 18245 | 364880 | 1633956.507620 | 1659703.454303 |
| 18246 | 364900 | 1634064.142119 | 1659811.717776 |
| 18247 | 364920 | 1634171.777233 | 1659919.981848 |
| 18248 | 364940 | 1634279.412962 | 1660028.246520 |
| 18249 | 364960 | 1634387.049307 | 1660136.511791 |
| 18250 | 364980 | 1634494.686266 | 1660244.777661 |
| 18251 | 365000 | 1634602.323841 | 1660353.044131 |
| 18252 | 365020 | 1634709.962031 | 1660461.311199 |
| 18253 | 365040 | 1634817.600835 | 1660569.578867 |
| 18254 | 365060 | 1634925.240255 | 1660677.847134 |
| 18255 | 365080 | 1635032.880290 | 1660786.116000 |
| 18256 | 365100 | 1635140.520940 | 1660894.385465 |
| 18257 | 365120 | 1635248.162204 | 1661002.655530 |
| 18258 | 365140 | 1635355.804084 | 1661110.926193 |
| 18259 | 365160 | 1635463.446578 | 1661219.197455 |
| 18260 | 365180 | 1635571.089687 | 1661327.469316 |
| 18261 | 365200 | 1635678.733411 | 1661435.741776 |
| 18262 | 365220 | 1635786.377749 | 1661544.014835 |
| 18263 | 365240 | 1635894.022703 | 1661652.288493 |
| 18264 | 365260 | 1636001.668271 | 1661760.562749 |
| 18265 | 365280 | 1636109.314453 | 1661868.837604 |
| 18266 | 365300 | 1636216.961250 | 1661977.113058 |
| 18267 | 365320 | 1636324.608662 | 1662085.389111 |
| 18268 | 365340 | 1636432.256688 | 1662193.665762 |
| 18269 | 365360 | 1636539.905328 | 1662301.943012 |
| 18270 | 365380 | 1636647.554583 | 1662410.220860 |
| 18271 | 365400 | 1636755.204453 | 1662518.499307 |
| 18272 | 365420 | 1636862.854936 | 1662626.778352 |
| 18273 | 365440 | 1636970.506034 | 1662735.057996 |
| 18274 | 365460 | 1637078.157747 | 1662843.338239 |
| 18275 | 365480 | 1637185.810073 | 1662951.619079 |
| 18276 | 365500 | 1637293.463014 | 1663059.900519 |
| 18277 | 365520 | 1637401.116569 | 1663168.182556 |
| 18278 | 365540 | 1637508.770738 | 1663276.465192 |
| 18279 | 365560 | 1637616.425521 | 1663384.748426 |
| 18280 | 365580 | 1637724.080919 | 1663493.032258 |
| 18281 | 365600 | 1637831.736930 | 1663601.316688 |
| 18282 | 365620 | 1637939.393555 | 1663709.601717 |
| 18283 | 365640 | 1638047.050794 | 1663817.887344 |
| 18284 | 365660 | 1638154.708647 | 1663926.173569 |
| 18285 | 365680 | 1638262.367114 | 1664034.460391 |
| 18286 | 365700 | 1638370.026195 | 1664142.747812 |
| 18287 | 365720 | 1638477.685890 | 1664251.035831 |
| 18288 | 365740 | 1638585.346199 | 1664359.324448 |
| 18289 | 365760 | 1638693.007121 | 1664467.613663 |
| 18290 | 365780 | 1638800.668657 | 1664575.903475 |
| 18291 | 365800 | 1638908.330806 | 1664684.193886 |
| 18292 | 365820 | 1639015.993569 | 1664792.484894 |
| 18293 | 365840 | 1639123.656946 | 1664900.776500 |
| 18294 | 365860 | 1639231.320937 | 1665009.068704 |
| 18295 | 365880 | 1639338.985541 | 1665117.361505 |
| 18296 | 365900 | 1639446.650758 | 1665225.654904 |
| 18297 | 365920 | 1639554.316589 | 1665333.948901 |
| 18298 | 365940 | 1639661.983033 | 1665442.243495 |
| 18299 | 365960 | 1639769.650091 | 1665550.538687 |
| 18300 | 365980 | 1639877.317762 | 1665658.834477 |
| 18301 | 366000 | 1639984.986046 | 1665767.130864 |
| 18302 | 366020 | 1640092.654943 | 1665875.427848 |
| 18303 | 366040 | 1640200.324454 | 1665983.725430 |
| 18304 | 366060 | 1640307.994578 | 1666092.023609 |
| 18305 | 366080 | 1640415.665315 | 1666200.322386 |
| 18306 | 366100 | 1640523.336666 | 1666308.621760 |
| 18307 | 366120 | 1640631.008629 | 1666416.921731 |
| 18308 | 366140 | 1640738.681205 | 1666525.222299 |
| 18309 | 366160 | 1640846.354395 | 1666633.523465 |
| 18310 | 366180 | 1640954.028197 | 1666741.825228 |
| 18311 | 366200 | 1641061.702613 | 1666850.127588 |
| 18312 | 366220 | 1641169.377641 | 1666958.430545 |
| 18313 | 366240 | 1641277.053282 | 1667066.734099 |
| 18314 | 366260 | 1641384.729536 | 1667175.038251 |
| 18315 | 366280 | 1641492.406403 | 1667283.342999 |
| 18316 | 366300 | 1641600.083882 | 1667391.648344 |
| 18317 | 366320 | 1641707.761975 | 1667499.954286 |
| 18318 | 366340 | 1641815.440680 | 1667608.260825 |
| 18319 | 366360 | 1641923.119997 | 1667716.567961 |
| 18320 | 366380 | 1642030.799928 | 1667824.875694 |
| 18321 | 366400 | 1642138.480471 | 1667933.184024 |
| 18322 | 366420 | 1642246.161626 | 1668041.492950 |
| 18323 | 366440 | 1642353.843394 | 1668149.802473 |
| 18324 | 366460 | 1642461.525774 | 1668258.112593 |
| 18325 | 366480 | 1642569.208767 | 1668366.423309 |
| 18326 | 366500 | 1642676.892372 | 1668474.734622 |
| 18327 | 366520 | 1642784.576590 | 1668583.046532 |
| 18328 | 366540 | 1642892.261420 | 1668691.359038 |
| 18329 | 366560 | 1642999.946862 | 1668799.672141 |
| 18330 | 366580 | 1643107.632917 | 1668907.985840 |
| 18331 | 366600 | 1643215.319584 | 1669016.300136 |
| 18332 | 366620 | 1643323.006863 | 1669124.615028 |
| 18333 | 366640 | 1643430.694754 | 1669232.930517 |
| 18334 | 366660 | 1643538.383257 | 1669341.246602 |
| 18335 | 366680 | 1643646.072372 | 1669449.563283 |
| 18336 | 366700 | 1643753.762100 | 1669557.880560 |
| 18337 | 366720 | 1643861.452439 | 1669666.198434 |
| 18338 | 366740 | 1643969.143390 | 1669774.516904 |
| 18339 | 366760 | 1644076.834954 | 1669882.835970 |
| 18340 | 366780 | 1644184.527129 | 1669991.155632 |
| 18341 | 366800 | 1644292.219916 | 1670099.475891 |
| 18342 | 366820 | 1644399.913315 | 1670207.796745 |
| 18343 | 366840 | 1644507.607326 | 1670316.118196 |
| 18344 | 366860 | 1644615.301948 | 1670424.440242 |
| 18345 | 366880 | 1644722.997182 | 1670532.762884 |
| 18346 | 366900 | 1644830.693028 | 1670641.086123 |
| 18347 | 366920 | 1644938.389486 | 1670749.409957 |
| 18348 | 366940 | 1645046.086555 | 1670857.734387 |
| 18349 | 366960 | 1645153.784236 | 1670966.059413 |
| 18350 | 366980 | 1645261.482528 | 1671074.385035 |
| 18351 | 367000 | 1645369.181432 | 1671182.711253 |
| 18352 | 367020 | 1645476.880947 | 1671291.038066 |
| 18353 | 367040 | 1645584.581074 | 1671399.365475 |
| 18354 | 367060 | 1645692.281812 | 1671507.693479 |
| 18355 | 367080 | 1645799.983162 | 1671616.022080 |
| 18356 | 367100 | 1645907.685122 | 1671724.351276 |
| 18357 | 367120 | 1646015.387694 | 1671832.681067 |
| 18358 | 367140 | 1646123.090878 | 1671941.011454 |
| 18359 | 367160 | 1646230.794672 | 1672049.342436 |
| 18360 | 367180 | 1646338.499078 | 1672157.674014 |
| 18361 | 367200 | 1646446.204095 | 1672266.006187 |
| 18362 | 367220 | 1646553.909723 | 1672374.338956 |
| 18363 | 367240 | 1646661.615962 | 1672482.672320 |
| 18364 | 367260 | 1646769.322813 | 1672591.006279 |
| 18365 | 367280 | 1646877.030274 | 1672699.340834 |
| 18366 | 367300 | 1646984.738346 | 1672807.675984 |
| 18367 | 367320 | 1647092.447029 | 1672916.011729 |
| 18368 | 367340 | 1647200.156323 | 1673024.348069 |
| 18369 | 367360 | 1647307.866228 | 1673132.685005 |
| 18370 | 367380 | 1647415.576744 | 1673241.022535 |
| 18371 | 367400 | 1647523.287870 | 1673349.360661 |
| 18372 | 367420 | 1647630.999608 | 1673457.699381 |
| 18373 | 367440 | 1647738.711956 | 1673566.038697 |
| 18374 | 367460 | 1647846.424914 | 1673674.378608 |
| 18375 | 367480 | 1647954.138484 | 1673782.719113 |
| 18376 | 367500 | 1648061.852664 | 1673891.060213 |
| 18377 | 367520 | 1648169.567454 | 1673999.401909 |
| 18378 | 367540 | 1648277.282855 | 1674107.744199 |
| 18379 | 367560 | 1648384.998867 | 1674216.087084 |
| 18380 | 367580 | 1648492.715489 | 1674324.430563 |
| 18381 | 367600 | 1648600.432722 | 1674432.774638 |
| 18382 | 367620 | 1648708.150564 | 1674541.119307 |
| 18383 | 367640 | 1648815.869018 | 1674649.464571 |
| 18384 | 367660 | 1648923.588081 | 1674757.810429 |
| 18385 | 367680 | 1649031.307755 | 1674866.156882 |
| 18386 | 367700 | 1649139.028039 | 1674974.503930 |
| 18387 | 367720 | 1649246.748934 | 1675082.851572 |
| 18388 | 367740 | 1649354.470438 | 1675191.199808 |
| 18389 | 367760 | 1649462.192553 | 1675299.548639 |
| 18390 | 367780 | 1649569.915278 | 1675407.898065 |
| 18391 | 367800 | 1649677.638613 | 1675516.248085 |
| 18392 | 367820 | 1649785.362558 | 1675624.598699 |
| 18393 | 367840 | 1649893.087113 | 1675732.949907 |
| 18394 | 367860 | 1650000.812278 | 1675841.301710 |
| 18395 | 367880 | 1650108.538053 | 1675949.654107 |
| 18396 | 367900 | 1650216.264438 | 1676058.007098 |
| 18397 | 367920 | 1650323.991432 | 1676166.360684 |
| 18398 | 367940 | 1650431.719037 | 1676274.714863 |
| 18399 | 367960 | 1650539.447251 | 1676383.069637 |
| 18400 | 367980 | 1650647.176075 | 1676491.425004 |
| 18401 | 368000 | 1650754.905509 | 1676599.780966 |
| 18402 | 368020 | 1650862.635553 | 1676708.137522 |
| 18403 | 368040 | 1650970.366206 | 1676816.494672 |
| 18404 | 368060 | 1651078.097468 | 1676924.852415 |
| 18405 | 368080 | 1651185.829341 | 1677033.210753 |
| 18406 | 368100 | 1651293.561823 | 1677141.569684 |
| 18407 | 368120 | 1651401.294914 | 1677249.929210 |
| 18408 | 368140 | 1651509.028615 | 1677358.289329 |
| 18409 | 368160 | 1651616.762925 | 1677466.650042 |
| 18410 | 368180 | 1651724.497845 | 1677575.011348 |
| 18411 | 368200 | 1651832.233374 | 1677683.373249 |
| 18412 | 368220 | 1651939.969513 | 1677791.735743 |
| 18413 | 368240 | 1652047.706260 | 1677900.098830 |
| 18414 | 368260 | 1652155.443617 | 1678008.462511 |
| 18415 | 368280 | 1652263.181584 | 1678116.826786 |
| 18416 | 368300 | 1652370.920159 | 1678225.191654 |
| 18417 | 368320 | 1652478.659344 | 1678333.557116 |
| 18418 | 368340 | 1652586.399137 | 1678441.923171 |
| 18419 | 368360 | 1652694.139540 | 1678550.289820 |
| 18420 | 368380 | 1652801.880552 | 1678658.657062 |
| 18421 | 368400 | 1652909.622173 | 1678767.024897 |
| 18422 | 368420 | 1653017.364403 | 1678875.393326 |
| 18423 | 368440 | 1653125.107241 | 1678983.762348 |
| 18424 | 368460 | 1653232.850689 | 1679092.131963 |
| 18425 | 368480 | 1653340.594746 | 1679200.502172 |
| 18426 | 368500 | 1653448.339411 | 1679308.872973 |
| 18427 | 368520 | 1653556.084685 | 1679417.244368 |
| 18428 | 368540 | 1653663.830568 | 1679525.616356 |
| 18429 | 368560 | 1653771.577060 | 1679633.988937 |
| 18430 | 368580 | 1653879.324160 | 1679742.362111 |
| 18431 | 368600 | 1653987.071869 | 1679850.735878 |
| 18432 | 368620 | 1654094.820187 | 1679959.110238 |
| 18433 | 368640 | 1654202.569113 | 1680067.485191 |
| 18434 | 368660 | 1654310.318648 | 1680175.860737 |
| 18435 | 368680 | 1654418.068791 | 1680284.236876 |
| 18436 | 368700 | 1654525.819543 | 1680392.613607 |
| 18437 | 368720 | 1654633.570903 | 1680500.990932 |
| 18438 | 368740 | 1654741.322872 | 1680609.368849 |
| 18439 | 368760 | 1654849.075449 | 1680717.747359 |
| 18440 | 368780 | 1654956.828634 | 1680826.126461 |
| 18441 | 368800 | 1655064.582428 | 1680934.506157 |
| 18442 | 368820 | 1655172.336830 | 1681042.886444 |
| 18443 | 368840 | 1655280.091840 | 1681151.267325 |
| 18444 | 368860 | 1655387.847458 | 1681259.648798 |
| 18445 | 368880 | 1655495.603685 | 1681368.030864 |
| 18446 | 368900 | 1655603.360520 | 1681476.413522 |
| 18447 | 368920 | 1655711.117962 | 1681584.796772 |
| 18448 | 368940 | 1655818.876013 | 1681693.180615 |
| 18449 | 368960 | 1655926.634672 | 1681801.565051 |
| 18450 | 368980 | 1656034.393939 | 1681909.950079 |
| 18451 | 369000 | 1656142.153814 | 1682018.335699 |
| 18452 | 369020 | 1656249.914296 | 1682126.721911 |
| 18453 | 369040 | 1656357.675387 | 1682235.108716 |
| 18454 | 369060 | 1656465.437085 | 1682343.496113 |
| 18455 | 369080 | 1656573.199391 | 1682451.884102 |
| 18456 | 369100 | 1656680.962305 | 1682560.272683 |
| 18457 | 369120 | 1656788.725827 | 1682668.661856 |
| 18458 | 369140 | 1656896.489957 | 1682777.051622 |
| 18459 | 369160 | 1657004.254694 | 1682885.441979 |
| 18460 | 369180 | 1657112.020038 | 1682993.832929 |
| 18461 | 369200 | 1657219.785991 | 1683102.224470 |
| 18462 | 369220 | 1657327.552551 | 1683210.616604 |
| 18463 | 369240 | 1657435.319718 | 1683319.009329 |
| 18464 | 369260 | 1657543.087493 | 1683427.402646 |
| 18465 | 369280 | 1657650.855875 | 1683535.796556 |
| 18466 | 369300 | 1657758.624865 | 1683644.191056 |
| 18467 | 369320 | 1657866.394462 | 1683752.586149 |
| 18468 | 369340 | 1657974.164667 | 1683860.981834 |
| 18469 | 369360 | 1658081.935479 | 1683969.378110 |
| 18470 | 369380 | 1658189.706898 | 1684077.774978 |
| 18471 | 369400 | 1658297.478924 | 1684186.172437 |
| 18472 | 369420 | 1658405.251558 | 1684294.570488 |
| 18473 | 369440 | 1658513.024798 | 1684402.969131 |
| 18474 | 369460 | 1658620.798646 | 1684511.368365 |
| 18475 | 369480 | 1658728.573101 | 1684619.768191 |
| 18476 | 369500 | 1658836.348163 | 1684728.168608 |
| 18477 | 369520 | 1658944.123832 | 1684836.569617 |
| 18478 | 369540 | 1659051.900108 | 1684944.971217 |
| 18479 | 369560 | 1659159.676991 | 1685053.373408 |
| 18480 | 369580 | 1659267.454481 | 1685161.776191 |
| 18481 | 369600 | 1659375.232578 | 1685270.179565 |
| 18482 | 369620 | 1659483.011282 | 1685378.583531 |
| 18483 | 369640 | 1659590.790592 | 1685486.988087 |
| 18484 | 369660 | 1659698.570510 | 1685595.393235 |
| 18485 | 369680 | 1659806.351034 | 1685703.798974 |
| 18486 | 369700 | 1659914.132164 | 1685812.205304 |
| 18487 | 369720 | 1660021.913902 | 1685920.612225 |
| 18488 | 369740 | 1660129.696246 | 1686029.019738 |
| 18489 | 369760 | 1660237.479197 | 1686137.427841 |
| 18490 | 369780 | 1660345.262754 | 1686245.836535 |
| 18491 | 369800 | 1660453.046918 | 1686354.245821 |
| 18492 | 369820 | 1660560.831688 | 1686462.655697 |
| 18493 | 369840 | 1660668.617065 | 1686571.066164 |
| 18494 | 369860 | 1660776.403048 | 1686679.477222 |
| 18495 | 369880 | 1660884.189637 | 1686787.888871 |
| 18496 | 369900 | 1660991.976833 | 1686896.301110 |
| 18497 | 369920 | 1661099.764636 | 1687004.713941 |
| 18498 | 369940 | 1661207.553044 | 1687113.127362 |
| 18499 | 369960 | 1661315.342059 | 1687221.541373 |
| 18500 | 369980 | 1661423.131680 | 1687329.955976 |
| 18501 | 370000 | 1661530.921907 | 1687438.371169 |
E-023-assembly.json
— 1.2 KB, updated 08-19-2026
JSON sidecar (click to expand)
{
"experiment": "E-023",
"task": "3.8 support: D-037 assembly (short-segment max, S_inf lower bound validation, margin/N0/N1)",
"script": "research/numerics/scripts/E-023-finite-height-assembly.py",
"checks": {
"V1_sinf_lower_holds": true,
"V2_margin_positive_convex": true,
"V3_lambda_positive_3000": true
},
"key_values": {
"M0_grid_max": 1.3323650421270834,
"M0_lipschitz": 1.4075796709577815,
"M0_use": 1.335180201468999,
"C1": -1.1303307007539063,
"C1_lower_form": -1.4189385332046727,
"sinf_lower_min_slack": 9.520071987843544,
"N0_measured_constants": 30217,
"N0_traced_constants": 32871,
"margin_N0_traced": 0.0795673057436943,
"margin_at": {
"32871": 0.0795673057436943,
"100000": 287298.63095573196,
"1000000": 5256686.503113639,
"1000000000": 8938721534.500193,
"1000000000000": 12396419838890.791,
"1000000000000000000": 1.9304327085473796e+19,
"8999999999994000000000001": 2.457962538414764e+26
},
"N1": 8999999999994000000000001,
"N1_conservative_lagarias_window": 2.725978018024122e+21,
"T0_platt_trudgian": 3000000000000.0
},
"elapsed_seconds": 56.2
}
Source code
Python script (click to expand)
"""E-023 — task 3.8 support: D-037 assembly computation.
Three components:
S1. Short-segment max M0 = max |zeta'/zeta(-5/2+it)| for |t| <= 10.
CLOSES THE D-036 GAP: the |R(s)| <= A log(t+2)+B0 bound was
E-021-verified only for |t| >= 10; segment (III) passes within
0.5 of the trivial pole at w = -2 (digamma pole), so the uniform
bound fails near t = 0. Method: mpmath dps 30 grid (step 0.002)
via the E-021 xi-route + sampled-Lipschitz correction x2 safety.
(Only feeds an additive O(1) constant; slack is enormous.)
S2. Validate the explicit S_inf lower bound used in D-037:
S_inf(n) >= (1/2) n log n + (C1 - gamma/2) n - 4 (n >= 20)
against E-021's EXACT S_inf (n <= 5000, validated 4.8e-25).
S3. Assemble the full |S_f(n)| bound B(n) (D-036 constants, A = 0.9,
B0 = 1.0, M0 from S1) and the margin
margin(n) = Sinf_lower(n) - B(n) + 1;
find N0 (margin > 0 and increasing); print margin at reference
points and at N1 = (T0-1)^2, T0 = 3e12 (Platt-Trudgian 2021);
conservative fallback N1* = T0^2/(4 log^2 T0) (Lagarias (1.16)).
Checks:
V1. S_inf lower bound holds for all 20 <= n <= 5000 (exact values).
V2. margin(n) > 0 for all n in [N0, 1e7] (grid, step 1) and margin
convex (2nd differences > 0) on a log grid to N1 — with
convexity + margin(N0) > 0 + margin'(N0) > 0 this gives
margin(n) > 0 for ALL n in [N0, N1] (analytic in D-037).
V3. lambda_n > 0 reconfirmed for n <= 3000 from E-021 exact CSV.
Outputs: research/numerics/data/E-023-assembly.csv (+ .json)
"""
import json
import sys
import time
from pathlib import Path
import mpmath as mp
import numpy as np
REPO = Path(__file__).resolve().parents[3]
DATA = REPO / "research" / "numerics" / "data"
E021 = DATA / "E-021-sinf-sf-curve.csv"
CSV = DATA / "E-023-assembly.csv"
JSON = DATA / "E-023-assembly.json"
GAMMA = 0.577215664901532860606512090082402431
C1 = (GAMMA - 1 - np.log(2 * np.pi)) / 2 # -1.1303...
C1L = C1 - GAMMA / 2 # -1.4189... (lower-bound form)
A_USE, B0_USE = 0.9, 1.0
T0_PLATT = 3.0e12
# ---------------------------------------------------------------- S1
def zeta_logder(s):
"""zeta'/zeta via xi'/xi minus explicit terms (E-021 route, dps 30)."""
sm = mp.mpc(s.real, s.imag)
def xi_mp(u):
return 0.5 * u * (u - 1) * mp.pi ** (-u / 2) * mp.gamma(u / 2) \
* mp.zeta(u)
xi_log = mp.diff(xi_mp, sm) / xi_mp(sm)
return complex(xi_log - 1 / sm - 1 / (sm - 1)
+ mp.mpf(0.5) * mp.log(mp.pi)
- mp.mpf(0.5) * mp.digamma(sm / 2))
def short_segment_max():
mp.mp.dps = 30
ts = np.arange(-10.0, 10.0 + 1e-12, 0.002)
vals = np.array([abs(zeta_logder(complex(-2.5, t))) for t in ts])
gmax = float(vals.max())
# sampled Lipschitz constant (max adjacent slope), x2 safety
lips = float(np.max(np.abs(np.diff(vals))) / 0.002)
m0 = gmax + 0.002 * lips # (h/2)*L would be 0.001*L; x2
return gmax, lips, m0
# ------------------------------------------------------- D-036 pieces
def F_count(T):
return (T / (2 * np.pi)) * np.log(T / (2 * np.pi)) - T / (2 * np.pi) \
+ 7 / 8
def S_bound(T):
return 0.137 * np.log(T) + 0.443 * np.log(np.log(T)) + 1.588
def C0(t):
return (F_count(t + 1) - F_count(t)) + S_bound(t + 1) + S_bound(t)
def H_bound(T, a, b0):
return 3 * C0(T) ** 2 + a * np.log(T + 2) + b0
def B_bound(n, m0, a=A_USE, b0=B0_USE):
"""Full |S_f(n)| upper bound (D-036, variant-B contour, T = sqrt(n)+1)."""
n = float(n)
T = np.sqrt(n) + 1.0
twoN = 2 * (F_count(T) + S_bound(T))
I3_long = 4 * T * ((2 / 3) * C0(T) + a * np.log(T + 2) + b0)
I3_short = 40.0 * m0 # |k|<=2, length 20, max m0
I24 = 2 * (np.e ** 4 + 1) * (7 * H_bound(T, a, b0) + 3.3)
# I1 in log space: log I1 = log(2 sqrt(n) (e^{sqrt(n)/2}+1) 0.5699)
# - (2 sqrt(n) - 2) log 2 -> hugely negative for sqrt(n) > 60
r = np.sqrt(n)
logI1 = np.log(2 * r * 0.5699) + r / 2 - (2 * r - 2) * np.log(2)
I1 = np.exp(logI1) if logI1 > -700 else 0.0
triv = 1.0
return twoN + I3_long + I3_short + I24 + I1 + triv
def sinf_lower(n):
n = np.asarray(n, dtype=np.float64)
return 0.5 * n * np.log(n) + C1L * n - 4.0
def margin(n, m0, a=A_USE, b0=B0_USE):
return sinf_lower(n) - B_bound(n, m0, a, b0) + 1.0
def find_N0(m0, a, b0):
ngrid = np.arange(20, 400001)
marg = np.array([margin(n, m0, a, b0) for n in ngrid])
pos = ngrid[(marg > 0) & (np.gradient(marg, ngrid) > 0)]
N0 = int(pos[0]) if len(pos) else -1
cont = bool(np.all(marg[ngrid >= N0] > 0)) if N0 > 0 else False
return N0, cont, float(marg[ngrid == N0][0]) if N0 > 0 else float("nan")
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("S1: short-segment max ...", flush=True)
gmax, lips, m0 = short_segment_max()
print(f" grid max = {gmax:.4f}, Lipschitz {lips:.1f}, "
f"M0 = {m0:.4f}", flush=True)
print("S2: S_inf lower-bound validation vs E-021 exact ...", flush=True)
import csv as csvmod
with open(E021) as f:
rows = list(csvmod.DictReader(f))
ns = np.array([int(r["n"]) for r in rows])
sinf = np.array([float(r["S_inf"]) for r in rows])
lam = np.array([float(r["lambda_n"]) for r in rows])
mask = ns >= 20
slack = sinf[mask] - sinf_lower(ns[mask])
v1 = bool(np.all(slack > 0))
print(f" V1: min slack = {slack.min():.4f} at n = "
f"{ns[mask][slack.argmin()]} (bound holds: {v1})", flush=True)
v3 = bool(np.all(lam[ns <= 3000] > 0))
print(f" V3: lambda_n > 0 for n <= 3000 reconfirmed: {v3}", flush=True)
print("S3: margin assembly ...", flush=True)
# Two constant sets: measured (0.9, 1.0) and traced (2.0, 2.0, the
# D-036 first-estimate analytic assembly).
N0_meas, cont_meas, margN0_meas = find_N0(m0, 0.9, 1.0)
N0_tr, cont_tr, margN0_tr = find_N0(m0, 2.0, 2.0)
N0, cont = N0_tr, cont_tr
print(f" N0 (measured 0.9/1.0) = {N0_meas} (contiguous {cont_meas})")
print(f" N0 (traced 2.0/2.0) = {N0_tr} (contiguous {cont_tr})")
logn = np.unique(np.logspace(np.log10(max(N0, 20)), np.log10(9e24),
4000).astype(np.float64))
bmarg = np.array([margin(n, m0, 2.0, 2.0) for n in logn])
conv = bool(np.all(np.diff(bmarg, 2) > -1e-6 * bmarg[:-2].max()))
N1 = int(3_000_000_000_000 - 1) ** 2
N1_cons = T0_PLATT ** 2 / (4 * np.log(T0_PLATT) ** 2)
refs = {int(n): float(margin(n, m0, 2.0, 2.0)) for n in
[N0, 100000, 10 ** 6, 10 ** 9, 10 ** 12, 10 ** 18, N1]}
print(f" N0 = {N0} (traced; contiguous to 4e5: {cont}, "
f"convex: {conv})")
print(f" margin(N0) = {refs[N0]:.1f}")
print(f" N1 = (T0-1)^2 = {N1:.6e}; N1* (Lagarias window) = "
f"{N1_cons:.6e}")
print(f" margin(N1) = {refs[N1]:.3e}")
v2 = bool(N0 > 0 and cont and conv and cont_meas)
with open(CSV, "w", newline="") as f:
w = csvmod.writer(f)
w.writerow(["n", "margin_traced", "margin_measured"])
for n in range(20, 400001, 20):
w.writerow([n, f"{margin(n, m0, 2.0, 2.0):.6f}",
f"{margin(n, m0, 0.9, 1.0):.6f}"])
meta = {
"experiment": "E-023",
"task": "3.8 support: D-037 assembly (short-segment max, S_inf "
"lower bound validation, margin/N0/N1)",
"script": "research/numerics/scripts/E-023-finite-height-assembly.py",
"checks": {"V1_sinf_lower_holds": v1,
"V2_margin_positive_convex": v2,
"V3_lambda_positive_3000": v3},
"key_values": {
"M0_grid_max": gmax, "M0_lipschitz": lips, "M0_use": m0,
"C1": C1, "C1_lower_form": C1L,
"sinf_lower_min_slack": float(slack.min()),
"N0_measured_constants": N0_meas,
"N0_traced_constants": N0_tr,
"margin_N0_traced": margN0_tr,
"margin_at": {str(k): float(v) for k, v in refs.items()},
"N1": N1, "N1_conservative_lagarias_window": N1_cons,
"T0_platt_trudgian": T0_PLATT,
},
"elapsed_seconds": round(time.time() - t0, 1),
}
JSON.write_text(json.dumps(meta, indent=2))
print(f" wrote {CSV.name}, {JSON.name}; "
f"elapsed {meta['elapsed_seconds']}s")
return 0 if (v1 and v2 and v3) else 1
if __name__ == "__main__":
sys.exit(main())