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 |
|---|---|---|---|
| 15002 | 300020 | 1288362.445270 | 1311977.852372 |
| 15003 | 300040 | 1288467.865796 | 1312083.961319 |
| 15004 | 300060 | 1288573.287081 | 1312190.071004 |
| 15005 | 300080 | 1288678.709126 | 1312296.181429 |
| 15006 | 300100 | 1288784.131932 | 1312402.292592 |
| 15007 | 300120 | 1288889.555497 | 1312508.404494 |
| 15008 | 300140 | 1288994.979823 | 1312614.517135 |
| 15009 | 300160 | 1289100.404908 | 1312720.630515 |
| 15010 | 300180 | 1289205.830753 | 1312826.744633 |
| 15011 | 300200 | 1289311.257358 | 1312932.859490 |
| 15012 | 300220 | 1289416.684722 | 1313038.975085 |
| 15013 | 300240 | 1289522.112847 | 1313145.091419 |
| 15014 | 300260 | 1289627.541730 | 1313251.208491 |
| 15015 | 300280 | 1289732.971374 | 1313357.326302 |
| 15016 | 300300 | 1289838.401777 | 1313463.444850 |
| 15017 | 300320 | 1289943.832939 | 1313569.564138 |
| 15018 | 300340 | 1290049.264861 | 1313675.684163 |
| 15019 | 300360 | 1290154.697542 | 1313781.804926 |
| 15020 | 300380 | 1290260.130982 | 1313887.926428 |
| 15021 | 300400 | 1290365.565182 | 1313994.048667 |
| 15022 | 300420 | 1290471.000140 | 1314100.171645 |
| 15023 | 300440 | 1290576.435858 | 1314206.295360 |
| 15024 | 300460 | 1290681.872335 | 1314312.419814 |
| 15025 | 300480 | 1290787.309571 | 1314418.545005 |
| 15026 | 300500 | 1290892.747566 | 1314524.670934 |
| 15027 | 300520 | 1290998.186319 | 1314630.797601 |
| 15028 | 300540 | 1291103.625832 | 1314736.925005 |
| 15029 | 300560 | 1291209.066103 | 1314843.053147 |
| 15030 | 300580 | 1291314.507133 | 1314949.182026 |
| 15031 | 300600 | 1291419.948922 | 1315055.311644 |
| 15032 | 300620 | 1291525.391469 | 1315161.441998 |
| 15033 | 300640 | 1291630.834775 | 1315267.573090 |
| 15034 | 300660 | 1291736.278839 | 1315373.704919 |
| 15035 | 300680 | 1291841.723662 | 1315479.837486 |
| 15036 | 300700 | 1291947.169243 | 1315585.970790 |
| 15037 | 300720 | 1292052.615583 | 1315692.104831 |
| 15038 | 300740 | 1292158.062681 | 1315798.239609 |
| 15039 | 300760 | 1292263.510537 | 1315904.375124 |
| 15040 | 300780 | 1292368.959151 | 1316010.511377 |
| 15041 | 300800 | 1292474.408523 | 1316116.648366 |
| 15042 | 300820 | 1292579.858654 | 1316222.786092 |
| 15043 | 300840 | 1292685.309542 | 1316328.924555 |
| 15044 | 300860 | 1292790.761189 | 1316435.063755 |
| 15045 | 300880 | 1292896.213593 | 1316541.203692 |
| 15046 | 300900 | 1293001.666755 | 1316647.344365 |
| 15047 | 300920 | 1293107.120675 | 1316753.485776 |
| 15048 | 300940 | 1293212.575353 | 1316859.627922 |
| 15049 | 300960 | 1293318.030788 | 1316965.770806 |
| 15050 | 300980 | 1293423.486981 | 1317071.914425 |
| 15051 | 301000 | 1293528.943932 | 1317178.058782 |
| 15052 | 301020 | 1293634.401640 | 1317284.203874 |
| 15053 | 301040 | 1293739.860105 | 1317390.349703 |
| 15054 | 301060 | 1293845.319328 | 1317496.496269 |
| 15055 | 301080 | 1293950.779309 | 1317602.643570 |
| 15056 | 301100 | 1294056.240046 | 1317708.791608 |
| 15057 | 301120 | 1294161.701541 | 1317814.940382 |
| 15058 | 301140 | 1294267.163793 | 1317921.089892 |
| 15059 | 301160 | 1294372.626802 | 1318027.240138 |
| 15060 | 301180 | 1294478.090569 | 1318133.391120 |
| 15061 | 301200 | 1294583.555092 | 1318239.542838 |
| 15062 | 301220 | 1294689.020372 | 1318345.695292 |
| 15063 | 301240 | 1294794.486410 | 1318451.848482 |
| 15064 | 301260 | 1294899.953204 | 1318558.002407 |
| 15065 | 301280 | 1295005.420755 | 1318664.157068 |
| 15066 | 301300 | 1295110.889062 | 1318770.312465 |
| 15067 | 301320 | 1295216.358127 | 1318876.468598 |
| 15068 | 301340 | 1295321.827948 | 1318982.625466 |
| 15069 | 301360 | 1295427.298525 | 1319088.783070 |
| 15070 | 301380 | 1295532.769859 | 1319194.941409 |
| 15071 | 301400 | 1295638.241950 | 1319301.100483 |
| 15072 | 301420 | 1295743.714797 | 1319407.260293 |
| 15073 | 301440 | 1295849.188400 | 1319513.420838 |
| 15074 | 301460 | 1295954.662760 | 1319619.582118 |
| 15075 | 301480 | 1296060.137876 | 1319725.744134 |
| 15076 | 301500 | 1296165.613748 | 1319831.906885 |
| 15077 | 301520 | 1296271.090376 | 1319938.070370 |
| 15078 | 301540 | 1296376.567761 | 1320044.234591 |
| 15079 | 301560 | 1296482.045901 | 1320150.399547 |
| 15080 | 301580 | 1296587.524798 | 1320256.565238 |
| 15081 | 301600 | 1296693.004450 | 1320362.731664 |
| 15082 | 301620 | 1296798.484859 | 1320468.898824 |
| 15083 | 301640 | 1296903.966023 | 1320575.066719 |
| 15084 | 301660 | 1297009.447943 | 1320681.235349 |
| 15085 | 301680 | 1297114.930618 | 1320787.404714 |
| 15086 | 301700 | 1297220.414050 | 1320893.574813 |
| 15087 | 301720 | 1297325.898237 | 1320999.745647 |
| 15088 | 301740 | 1297431.383179 | 1321105.917216 |
| 15089 | 301760 | 1297536.868877 | 1321212.089518 |
| 15090 | 301780 | 1297642.355330 | 1321318.262556 |
| 15091 | 301800 | 1297747.842539 | 1321424.436327 |
| 15092 | 301820 | 1297853.330503 | 1321530.610833 |
| 15093 | 301840 | 1297958.819223 | 1321636.786074 |
| 15094 | 301860 | 1298064.308698 | 1321742.962048 |
| 15095 | 301880 | 1298169.798927 | 1321849.138757 |
| 15096 | 301900 | 1298275.289912 | 1321955.316199 |
| 15097 | 301920 | 1298380.781652 | 1322061.494376 |
| 15098 | 301940 | 1298486.274147 | 1322167.673287 |
| 15099 | 301960 | 1298591.767397 | 1322273.852931 |
| 15100 | 301980 | 1298697.261402 | 1322380.033310 |
| 15101 | 302000 | 1298802.756162 | 1322486.214422 |
| 15102 | 302020 | 1298908.251677 | 1322592.396268 |
| 15103 | 302040 | 1299013.747946 | 1322698.578848 |
| 15104 | 302060 | 1299119.244970 | 1322804.762162 |
| 15105 | 302080 | 1299224.742749 | 1322910.946209 |
| 15106 | 302100 | 1299330.241282 | 1323017.130990 |
| 15107 | 302120 | 1299435.740570 | 1323123.316504 |
| 15108 | 302140 | 1299541.240612 | 1323229.502752 |
| 15109 | 302160 | 1299646.741408 | 1323335.689733 |
| 15110 | 302180 | 1299752.242959 | 1323441.877448 |
| 15111 | 302200 | 1299857.745265 | 1323548.065896 |
| 15112 | 302220 | 1299963.248324 | 1323654.255077 |
| 15113 | 302240 | 1300068.752138 | 1323760.444991 |
| 15114 | 302260 | 1300174.256706 | 1323866.635639 |
| 15115 | 302280 | 1300279.762028 | 1323972.827020 |
| 15116 | 302300 | 1300385.268104 | 1324079.019133 |
| 15117 | 302320 | 1300490.774934 | 1324185.211980 |
| 15118 | 302340 | 1300596.282518 | 1324291.405560 |
| 15119 | 302360 | 1300701.790855 | 1324397.599872 |
| 15120 | 302380 | 1300807.299947 | 1324503.794918 |
| 15121 | 302400 | 1300912.809792 | 1324609.990696 |
| 15122 | 302420 | 1301018.320392 | 1324716.187207 |
| 15123 | 302440 | 1301123.831744 | 1324822.384451 |
| 15124 | 302460 | 1301229.343851 | 1324928.582427 |
| 15125 | 302480 | 1301334.856711 | 1325034.781136 |
| 15126 | 302500 | 1301440.370324 | 1325140.980577 |
| 15127 | 302520 | 1301545.884691 | 1325247.180751 |
| 15128 | 302540 | 1301651.399811 | 1325353.381658 |
| 15129 | 302560 | 1301756.915685 | 1325459.583296 |
| 15130 | 302580 | 1301862.432311 | 1325565.785667 |
| 15131 | 302600 | 1301967.949692 | 1325671.988771 |
| 15132 | 302620 | 1302073.467825 | 1325778.192606 |
| 15133 | 302640 | 1302178.986711 | 1325884.397174 |
| 15134 | 302660 | 1302284.506351 | 1325990.602474 |
| 15135 | 302680 | 1302390.026743 | 1326096.808506 |
| 15136 | 302700 | 1302495.547888 | 1326203.015270 |
| 15137 | 302720 | 1302601.069787 | 1326309.222765 |
| 15138 | 302740 | 1302706.592438 | 1326415.430993 |
| 15139 | 302760 | 1302812.115842 | 1326521.639953 |
| 15140 | 302780 | 1302917.639998 | 1326627.849644 |
| 15141 | 302800 | 1303023.164908 | 1326734.060068 |
| 15142 | 302820 | 1303128.690570 | 1326840.271223 |
| 15143 | 302840 | 1303234.216984 | 1326946.483109 |
| 15144 | 302860 | 1303339.744151 | 1327052.695727 |
| 15145 | 302880 | 1303445.272071 | 1327158.909077 |
| 15146 | 302900 | 1303550.800743 | 1327265.123158 |
| 15147 | 302920 | 1303656.330167 | 1327371.337971 |
| 15148 | 302940 | 1303761.860344 | 1327477.553515 |
| 15149 | 302960 | 1303867.391273 | 1327583.769790 |
| 15150 | 302980 | 1303972.922954 | 1327689.986797 |
| 15151 | 303000 | 1304078.455387 | 1327796.204535 |
| 15152 | 303020 | 1304183.988572 | 1327902.423004 |
| 15153 | 303040 | 1304289.522510 | 1328008.642204 |
| 15154 | 303060 | 1304395.057199 | 1328114.862136 |
| 15155 | 303080 | 1304500.592640 | 1328221.082798 |
| 15156 | 303100 | 1304606.128834 | 1328327.304192 |
| 15157 | 303120 | 1304711.665779 | 1328433.526316 |
| 15158 | 303140 | 1304817.203475 | 1328539.749171 |
| 15159 | 303160 | 1304922.741924 | 1328645.972757 |
| 15160 | 303180 | 1305028.281124 | 1328752.197074 |
| 15161 | 303200 | 1305133.821076 | 1328858.422121 |
| 15162 | 303220 | 1305239.361779 | 1328964.647899 |
| 15163 | 303240 | 1305344.903234 | 1329070.874408 |
| 15164 | 303260 | 1305450.445440 | 1329177.101647 |
| 15165 | 303280 | 1305555.988397 | 1329283.329617 |
| 15166 | 303300 | 1305661.532106 | 1329389.558317 |
| 15167 | 303320 | 1305767.076567 | 1329495.787748 |
| 15168 | 303340 | 1305872.621778 | 1329602.017909 |
| 15169 | 303360 | 1305978.167741 | 1329708.248800 |
| 15170 | 303380 | 1306083.714455 | 1329814.480422 |
| 15171 | 303400 | 1306189.261919 | 1329920.712774 |
| 15172 | 303420 | 1306294.810135 | 1330026.945856 |
| 15173 | 303440 | 1306400.359102 | 1330133.179668 |
| 15174 | 303460 | 1306505.908820 | 1330239.414210 |
| 15175 | 303480 | 1306611.459288 | 1330345.649482 |
| 15176 | 303500 | 1306717.010508 | 1330451.885484 |
| 15177 | 303520 | 1306822.562478 | 1330558.122216 |
| 15178 | 303540 | 1306928.115199 | 1330664.359678 |
| 15179 | 303560 | 1307033.668670 | 1330770.597869 |
| 15180 | 303580 | 1307139.222892 | 1330876.836791 |
| 15181 | 303600 | 1307244.777865 | 1330983.076442 |
| 15182 | 303620 | 1307350.333588 | 1331089.316822 |
| 15183 | 303640 | 1307455.890061 | 1331195.557932 |
| 15184 | 303660 | 1307561.447285 | 1331301.799772 |
| 15185 | 303680 | 1307667.005259 | 1331408.042341 |
| 15186 | 303700 | 1307772.563984 | 1331514.285640 |
| 15187 | 303720 | 1307878.123458 | 1331620.529668 |
| 15188 | 303740 | 1307983.683683 | 1331726.774425 |
| 15189 | 303760 | 1308089.244658 | 1331833.019912 |
| 15190 | 303780 | 1308194.806383 | 1331939.266128 |
| 15191 | 303800 | 1308300.368858 | 1332045.513073 |
| 15192 | 303820 | 1308405.932083 | 1332151.760747 |
| 15193 | 303840 | 1308511.496058 | 1332258.009150 |
| 15194 | 303860 | 1308617.060782 | 1332364.258282 |
| 15195 | 303880 | 1308722.626257 | 1332470.508143 |
| 15196 | 303900 | 1308828.192481 | 1332576.758733 |
| 15197 | 303920 | 1308933.759454 | 1332683.010052 |
| 15198 | 303940 | 1309039.327178 | 1332789.262100 |
| 15199 | 303960 | 1309144.895651 | 1332895.514876 |
| 15200 | 303980 | 1309250.464873 | 1333001.768382 |
| 15201 | 304000 | 1309356.034845 | 1333108.022615 |
| 15202 | 304020 | 1309461.605567 | 1333214.277578 |
| 15203 | 304040 | 1309567.177037 | 1333320.533269 |
| 15204 | 304060 | 1309672.749257 | 1333426.789688 |
| 15205 | 304080 | 1309778.322227 | 1333533.046836 |
| 15206 | 304100 | 1309883.895945 | 1333639.304713 |
| 15207 | 304120 | 1309989.470413 | 1333745.563317 |
| 15208 | 304140 | 1310095.045629 | 1333851.822650 |
| 15209 | 304160 | 1310200.621595 | 1333958.082711 |
| 15210 | 304180 | 1310306.198310 | 1334064.343501 |
| 15211 | 304200 | 1310411.775773 | 1334170.605018 |
| 15212 | 304220 | 1310517.353986 | 1334276.867264 |
| 15213 | 304240 | 1310622.932947 | 1334383.130238 |
| 15214 | 304260 | 1310728.512657 | 1334489.393939 |
| 15215 | 304280 | 1310834.093116 | 1334595.658369 |
| 15216 | 304300 | 1310939.674323 | 1334701.923526 |
| 15217 | 304320 | 1311045.256279 | 1334808.189412 |
| 15218 | 304340 | 1311150.838984 | 1334914.456025 |
| 15219 | 304360 | 1311256.422437 | 1335020.723365 |
| 15220 | 304380 | 1311362.006638 | 1335126.991434 |
| 15221 | 304400 | 1311467.591588 | 1335233.260230 |
| 15222 | 304420 | 1311573.177287 | 1335339.529754 |
| 15223 | 304440 | 1311678.763733 | 1335445.800005 |
| 15224 | 304460 | 1311784.350928 | 1335552.070983 |
| 15225 | 304480 | 1311889.938871 | 1335658.342690 |
| 15226 | 304500 | 1311995.527562 | 1335764.615123 |
| 15227 | 304520 | 1312101.117001 | 1335870.888284 |
| 15228 | 304540 | 1312206.707188 | 1335977.162172 |
| 15229 | 304560 | 1312312.298123 | 1336083.436787 |
| 15230 | 304580 | 1312417.889806 | 1336189.712129 |
| 15231 | 304600 | 1312523.482237 | 1336295.988199 |
| 15232 | 304620 | 1312629.075416 | 1336402.264995 |
| 15233 | 304640 | 1312734.669342 | 1336508.542519 |
| 15234 | 304660 | 1312840.264016 | 1336614.820770 |
| 15235 | 304680 | 1312945.859438 | 1336721.099747 |
| 15236 | 304700 | 1313051.455607 | 1336827.379451 |
| 15237 | 304720 | 1313157.052524 | 1336933.659882 |
| 15238 | 304740 | 1313262.650189 | 1337039.941040 |
| 15239 | 304760 | 1313368.248601 | 1337146.222925 |
| 15240 | 304780 | 1313473.847760 | 1337252.505536 |
| 15241 | 304800 | 1313579.447666 | 1337358.788874 |
| 15242 | 304820 | 1313685.048320 | 1337465.072938 |
| 15243 | 304840 | 1313790.649721 | 1337571.357729 |
| 15244 | 304860 | 1313896.251869 | 1337677.643246 |
| 15245 | 304880 | 1314001.854765 | 1337783.929490 |
| 15246 | 304900 | 1314107.458407 | 1337890.216460 |
| 15247 | 304920 | 1314213.062796 | 1337996.504156 |
| 15248 | 304940 | 1314318.667933 | 1338102.792579 |
| 15249 | 304960 | 1314424.273816 | 1338209.081728 |
| 15250 | 304980 | 1314529.880446 | 1338315.371603 |
| 15251 | 305000 | 1314635.487823 | 1338421.662204 |
| 15252 | 305020 | 1314741.095946 | 1338527.953531 |
| 15253 | 305040 | 1314846.704817 | 1338634.245584 |
| 15254 | 305060 | 1314952.314433 | 1338740.538363 |
| 15255 | 305080 | 1315057.924797 | 1338846.831867 |
| 15256 | 305100 | 1315163.535907 | 1338953.126098 |
| 15257 | 305120 | 1315269.147763 | 1339059.421055 |
| 15258 | 305140 | 1315374.760366 | 1339165.716737 |
| 15259 | 305160 | 1315480.373716 | 1339272.013145 |
| 15260 | 305180 | 1315585.987811 | 1339378.310278 |
| 15261 | 305200 | 1315691.602653 | 1339484.608137 |
| 15262 | 305220 | 1315797.218241 | 1339590.906722 |
| 15263 | 305240 | 1315902.834575 | 1339697.206032 |
| 15264 | 305260 | 1316008.451656 | 1339803.506067 |
| 15265 | 305280 | 1316114.069482 | 1339909.806828 |
| 15266 | 305300 | 1316219.688054 | 1340016.108314 |
| 15267 | 305320 | 1316325.307373 | 1340122.410526 |
| 15268 | 305340 | 1316430.927437 | 1340228.713462 |
| 15269 | 305360 | 1316536.548247 | 1340335.017124 |
| 15270 | 305380 | 1316642.169803 | 1340441.321511 |
| 15271 | 305400 | 1316747.792104 | 1340547.626623 |
| 15272 | 305420 | 1316853.415151 | 1340653.932460 |
| 15273 | 305440 | 1316959.038944 | 1340760.239022 |
| 15274 | 305460 | 1317064.663483 | 1340866.546309 |
| 15275 | 305480 | 1317170.288767 | 1340972.854321 |
| 15276 | 305500 | 1317275.914796 | 1341079.163057 |
| 15277 | 305520 | 1317381.541571 | 1341185.472518 |
| 15278 | 305540 | 1317487.169091 | 1341291.782705 |
| 15279 | 305560 | 1317592.797357 | 1341398.093615 |
| 15280 | 305580 | 1317698.426367 | 1341504.405250 |
| 15281 | 305600 | 1317804.056123 | 1341610.717610 |
| 15282 | 305620 | 1317909.686624 | 1341717.030695 |
| 15283 | 305640 | 1318015.317870 | 1341823.344504 |
| 15284 | 305660 | 1318120.949862 | 1341929.659037 |
| 15285 | 305680 | 1318226.582598 | 1342035.974294 |
| 15286 | 305700 | 1318332.216079 | 1342142.290276 |
| 15287 | 305720 | 1318437.850305 | 1342248.606982 |
| 15288 | 305740 | 1318543.485276 | 1342354.924413 |
| 15289 | 305760 | 1318649.120992 | 1342461.242567 |
| 15290 | 305780 | 1318754.757452 | 1342567.561446 |
| 15291 | 305800 | 1318860.394657 | 1342673.881048 |
| 15292 | 305820 | 1318966.032607 | 1342780.201375 |
| 15293 | 305840 | 1319071.671301 | 1342886.522425 |
| 15294 | 305860 | 1319177.310740 | 1342992.844200 |
| 15295 | 305880 | 1319282.950923 | 1343099.166698 |
| 15296 | 305900 | 1319388.591851 | 1343205.489920 |
| 15297 | 305920 | 1319494.233523 | 1343311.813866 |
| 15298 | 305940 | 1319599.875939 | 1343418.138536 |
| 15299 | 305960 | 1319705.519099 | 1343524.463929 |
| 15300 | 305980 | 1319811.163004 | 1343630.790045 |
| 15301 | 306000 | 1319916.807653 | 1343737.116886 |
| 15302 | 306020 | 1320022.453046 | 1343843.444450 |
| 15303 | 306040 | 1320128.099183 | 1343949.772737 |
| 15304 | 306060 | 1320233.746064 | 1344056.101747 |
| 15305 | 306080 | 1320339.393689 | 1344162.431481 |
| 15306 | 306100 | 1320445.042058 | 1344268.761939 |
| 15307 | 306120 | 1320550.691170 | 1344375.093119 |
| 15308 | 306140 | 1320656.341027 | 1344481.425023 |
| 15309 | 306160 | 1320761.991627 | 1344587.757649 |
| 15310 | 306180 | 1320867.642970 | 1344694.090999 |
| 15311 | 306200 | 1320973.295058 | 1344800.425072 |
| 15312 | 306220 | 1321078.947889 | 1344906.759868 |
| 15313 | 306240 | 1321184.601463 | 1345013.095387 |
| 15314 | 306260 | 1321290.255781 | 1345119.431628 |
| 15315 | 306280 | 1321395.910843 | 1345225.768593 |
| 15316 | 306300 | 1321501.566647 | 1345332.106280 |
| 15317 | 306320 | 1321607.223195 | 1345438.444690 |
| 15318 | 306340 | 1321712.880487 | 1345544.783823 |
| 15319 | 306360 | 1321818.538521 | 1345651.123678 |
| 15320 | 306380 | 1321924.197299 | 1345757.464256 |
| 15321 | 306400 | 1322029.856819 | 1345863.805557 |
| 15322 | 306420 | 1322135.517083 | 1345970.147579 |
| 15323 | 306440 | 1322241.178090 | 1346076.490325 |
| 15324 | 306460 | 1322346.839839 | 1346182.833792 |
| 15325 | 306480 | 1322452.502332 | 1346289.177982 |
| 15326 | 306500 | 1322558.165567 | 1346395.522895 |
| 15327 | 306520 | 1322663.829545 | 1346501.868529 |
| 15328 | 306540 | 1322769.494266 | 1346608.214886 |
| 15329 | 306560 | 1322875.159730 | 1346714.561965 |
| 15330 | 306580 | 1322980.825936 | 1346820.909766 |
| 15331 | 306600 | 1323086.492885 | 1346927.258288 |
| 15332 | 306620 | 1323192.160576 | 1347033.607533 |
| 15333 | 306640 | 1323297.829009 | 1347139.957500 |
| 15334 | 306660 | 1323403.498185 | 1347246.308189 |
| 15335 | 306680 | 1323509.168104 | 1347352.659599 |
| 15336 | 306700 | 1323614.838765 | 1347459.011731 |
| 15337 | 306720 | 1323720.510168 | 1347565.364585 |
| 15338 | 306740 | 1323826.182313 | 1347671.718161 |
| 15339 | 306760 | 1323931.855200 | 1347778.072458 |
| 15340 | 306780 | 1324037.528829 | 1347884.427477 |
| 15341 | 306800 | 1324143.203201 | 1347990.783217 |
| 15342 | 306820 | 1324248.878314 | 1348097.139679 |
| 15343 | 306840 | 1324354.554170 | 1348203.496862 |
| 15344 | 306860 | 1324460.230767 | 1348309.854766 |
| 15345 | 306880 | 1324565.908106 | 1348416.213392 |
| 15346 | 306900 | 1324671.586187 | 1348522.572739 |
| 15347 | 306920 | 1324777.265009 | 1348628.932808 |
| 15348 | 306940 | 1324882.944574 | 1348735.293597 |
| 15349 | 306960 | 1324988.624879 | 1348841.655108 |
| 15350 | 306980 | 1325094.305927 | 1348948.017339 |
| 15351 | 307000 | 1325199.987716 | 1349054.380292 |
| 15352 | 307020 | 1325305.670246 | 1349160.743965 |
| 15353 | 307040 | 1325411.353518 | 1349267.108360 |
| 15354 | 307060 | 1325517.037531 | 1349373.473475 |
| 15355 | 307080 | 1325622.722286 | 1349479.839312 |
| 15356 | 307100 | 1325728.407781 | 1349586.205868 |
| 15357 | 307120 | 1325834.094018 | 1349692.573146 |
| 15358 | 307140 | 1325939.780996 | 1349798.941144 |
| 15359 | 307160 | 1326045.468716 | 1349905.309863 |
| 15360 | 307180 | 1326151.157176 | 1350011.679303 |
| 15361 | 307200 | 1326256.846377 | 1350118.049463 |
| 15362 | 307220 | 1326362.536319 | 1350224.420343 |
| 15363 | 307240 | 1326468.227002 | 1350330.791944 |
| 15364 | 307260 | 1326573.918426 | 1350437.164265 |
| 15365 | 307280 | 1326679.610591 | 1350543.537306 |
| 15366 | 307300 | 1326785.303496 | 1350649.911068 |
| 15367 | 307320 | 1326890.997142 | 1350756.285550 |
| 15368 | 307340 | 1326996.691529 | 1350862.660752 |
| 15369 | 307360 | 1327102.386656 | 1350969.036674 |
| 15370 | 307380 | 1327208.082524 | 1351075.413316 |
| 15371 | 307400 | 1327313.779132 | 1351181.790679 |
| 15372 | 307420 | 1327419.476481 | 1351288.168761 |
| 15373 | 307440 | 1327525.174570 | 1351394.547563 |
| 15374 | 307460 | 1327630.873399 | 1351500.927085 |
| 15375 | 307480 | 1327736.572969 | 1351607.307327 |
| 15376 | 307500 | 1327842.273279 | 1351713.688288 |
| 15377 | 307520 | 1327947.974328 | 1351820.069969 |
| 15378 | 307540 | 1328053.676119 | 1351926.452370 |
| 15379 | 307560 | 1328159.378649 | 1352032.835490 |
| 15380 | 307580 | 1328265.081919 | 1352139.219330 |
| 15381 | 307600 | 1328370.785929 | 1352245.603890 |
| 15382 | 307620 | 1328476.490679 | 1352351.989169 |
| 15383 | 307640 | 1328582.196168 | 1352458.375167 |
| 15384 | 307660 | 1328687.902398 | 1352564.761885 |
| 15385 | 307680 | 1328793.609367 | 1352671.149322 |
| 15386 | 307700 | 1328899.317076 | 1352777.537478 |
| 15387 | 307720 | 1329005.025525 | 1352883.926353 |
| 15388 | 307740 | 1329110.734713 | 1352990.315948 |
| 15389 | 307760 | 1329216.444641 | 1353096.706262 |
| 15390 | 307780 | 1329322.155308 | 1353203.097294 |
| 15391 | 307800 | 1329427.866715 | 1353309.489046 |
| 15392 | 307820 | 1329533.578861 | 1353415.881517 |
| 15393 | 307840 | 1329639.291746 | 1353522.274706 |
| 15394 | 307860 | 1329745.005371 | 1353628.668614 |
| 15395 | 307880 | 1329850.719734 | 1353735.063242 |
| 15396 | 307900 | 1329956.434837 | 1353841.458588 |
| 15397 | 307920 | 1330062.150679 | 1353947.854652 |
| 15398 | 307940 | 1330167.867261 | 1354054.251435 |
| 15399 | 307960 | 1330273.584581 | 1354160.648937 |
| 15400 | 307980 | 1330379.302640 | 1354267.047158 |
| 15401 | 308000 | 1330485.021438 | 1354373.446097 |
| 15402 | 308020 | 1330590.740975 | 1354479.845754 |
| 15403 | 308040 | 1330696.461250 | 1354586.246130 |
| 15404 | 308060 | 1330802.182265 | 1354692.647224 |
| 15405 | 308080 | 1330907.904018 | 1354799.049036 |
| 15406 | 308100 | 1331013.626509 | 1354905.451567 |
| 15407 | 308120 | 1331119.349740 | 1355011.854815 |
| 15408 | 308140 | 1331225.073709 | 1355118.258782 |
| 15409 | 308160 | 1331330.798416 | 1355224.663468 |
| 15410 | 308180 | 1331436.523862 | 1355331.068871 |
| 15411 | 308200 | 1331542.250046 | 1355437.474992 |
| 15412 | 308220 | 1331647.976968 | 1355543.881831 |
| 15413 | 308240 | 1331753.704629 | 1355650.289388 |
| 15414 | 308260 | 1331859.433028 | 1355756.697662 |
| 15415 | 308280 | 1331965.162165 | 1355863.106655 |
| 15416 | 308300 | 1332070.892041 | 1355969.516365 |
| 15417 | 308320 | 1332176.622654 | 1356075.926793 |
| 15418 | 308340 | 1332282.354005 | 1356182.337939 |
| 15419 | 308360 | 1332388.086095 | 1356288.749802 |
| 15420 | 308380 | 1332493.818922 | 1356395.162383 |
| 15421 | 308400 | 1332599.552487 | 1356501.575681 |
| 15422 | 308420 | 1332705.286790 | 1356607.989697 |
| 15423 | 308440 | 1332811.021831 | 1356714.404430 |
| 15424 | 308460 | 1332916.757609 | 1356820.819881 |
| 15425 | 308480 | 1333022.494125 | 1356927.236048 |
| 15426 | 308500 | 1333128.231379 | 1357033.652933 |
| 15427 | 308520 | 1333233.969370 | 1357140.070536 |
| 15428 | 308540 | 1333339.708099 | 1357246.488855 |
| 15429 | 308560 | 1333445.447565 | 1357352.907892 |
| 15430 | 308580 | 1333551.187769 | 1357459.327645 |
| 15431 | 308600 | 1333656.928710 | 1357565.748116 |
| 15432 | 308620 | 1333762.670388 | 1357672.169303 |
| 15433 | 308640 | 1333868.412803 | 1357778.591207 |
| 15434 | 308660 | 1333974.155956 | 1357885.013828 |
| 15435 | 308680 | 1334079.899846 | 1357991.437166 |
| 15436 | 308700 | 1334185.644472 | 1358097.861221 |
| 15437 | 308720 | 1334291.389836 | 1358204.285993 |
| 15438 | 308740 | 1334397.135937 | 1358310.711481 |
| 15439 | 308760 | 1334502.882775 | 1358417.137685 |
| 15440 | 308780 | 1334608.630350 | 1358523.564607 |
| 15441 | 308800 | 1334714.378661 | 1358629.992244 |
| 15442 | 308820 | 1334820.127710 | 1358736.420598 |
| 15443 | 308840 | 1334925.877495 | 1358842.849669 |
| 15444 | 308860 | 1335031.628016 | 1358949.279456 |
| 15445 | 308880 | 1335137.379274 | 1359055.709959 |
| 15446 | 308900 | 1335243.131269 | 1359162.141179 |
| 15447 | 308920 | 1335348.884001 | 1359268.573114 |
| 15448 | 308940 | 1335454.637469 | 1359375.005766 |
| 15449 | 308960 | 1335560.391673 | 1359481.439134 |
| 15450 | 308980 | 1335666.146613 | 1359587.873218 |
| 15451 | 309000 | 1335771.902290 | 1359694.308018 |
| 15452 | 309020 | 1335877.658704 | 1359800.743534 |
| 15453 | 309040 | 1335983.415853 | 1359907.179765 |
| 15454 | 309060 | 1336089.173739 | 1360013.616713 |
| 15455 | 309080 | 1336194.932360 | 1360120.054377 |
| 15456 | 309100 | 1336300.691718 | 1360226.492756 |
| 15457 | 309120 | 1336406.451812 | 1360332.931851 |
| 15458 | 309140 | 1336512.212641 | 1360439.371661 |
| 15459 | 309160 | 1336617.974207 | 1360545.812187 |
| 15460 | 309180 | 1336723.736508 | 1360652.253429 |
| 15461 | 309200 | 1336829.499545 | 1360758.695386 |
| 15462 | 309220 | 1336935.263318 | 1360865.138059 |
| 15463 | 309240 | 1337041.027827 | 1360971.581447 |
| 15464 | 309260 | 1337146.793071 | 1361078.025550 |
| 15465 | 309280 | 1337252.559051 | 1361184.470369 |
| 15466 | 309300 | 1337358.325766 | 1361290.915903 |
| 15467 | 309320 | 1337464.093217 | 1361397.362152 |
| 15468 | 309340 | 1337569.861403 | 1361503.809117 |
| 15469 | 309360 | 1337675.630325 | 1361610.256796 |
| 15470 | 309380 | 1337781.399982 | 1361716.705190 |
| 15471 | 309400 | 1337887.170374 | 1361823.154300 |
| 15472 | 309420 | 1337992.941502 | 1361929.604124 |
| 15473 | 309440 | 1338098.713365 | 1362036.054664 |
| 15474 | 309460 | 1338204.485962 | 1362142.505918 |
| 15475 | 309480 | 1338310.259295 | 1362248.957887 |
| 15476 | 309500 | 1338416.033363 | 1362355.410571 |
| 15477 | 309520 | 1338521.808166 | 1362461.863969 |
| 15478 | 309540 | 1338627.583704 | 1362568.318082 |
| 15479 | 309560 | 1338733.359976 | 1362674.772910 |
| 15480 | 309580 | 1338839.136984 | 1362781.228453 |
| 15481 | 309600 | 1338944.914726 | 1362887.684709 |
| 15482 | 309620 | 1339050.693203 | 1362994.141681 |
| 15483 | 309640 | 1339156.472415 | 1363100.599366 |
| 15484 | 309660 | 1339262.252361 | 1363207.057766 |
| 15485 | 309680 | 1339368.033041 | 1363313.516881 |
| 15486 | 309700 | 1339473.814457 | 1363419.976709 |
| 15487 | 309720 | 1339579.596606 | 1363526.437252 |
| 15488 | 309740 | 1339685.379490 | 1363632.898509 |
| 15489 | 309760 | 1339791.163109 | 1363739.360480 |
| 15490 | 309780 | 1339896.947462 | 1363845.823166 |
| 15491 | 309800 | 1340002.732549 | 1363952.286565 |
| 15492 | 309820 | 1340108.518370 | 1364058.750678 |
| 15493 | 309840 | 1340214.304925 | 1364165.215505 |
| 15494 | 309860 | 1340320.092215 | 1364271.681046 |
| 15495 | 309880 | 1340425.880238 | 1364378.147301 |
| 15496 | 309900 | 1340531.668996 | 1364484.614269 |
| 15497 | 309920 | 1340637.458487 | 1364591.081952 |
| 15498 | 309940 | 1340743.248712 | 1364697.550348 |
| 15499 | 309960 | 1340849.039671 | 1364804.019457 |
| 15500 | 309980 | 1340954.831364 | 1364910.489280 |
| 15501 | 310000 | 1341060.623791 | 1365016.959817 |
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())