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 |
|---|---|---|---|
| 14502 | 290020 | 1235748.566636 | 1259017.061277 |
| 14503 | 290040 | 1235853.600021 | 1259122.793960 |
| 14504 | 290060 | 1235958.634195 | 1259228.527409 |
| 14505 | 290080 | 1236063.669158 | 1259334.261625 |
| 14506 | 290100 | 1236168.704909 | 1259439.996607 |
| 14507 | 290120 | 1236273.741449 | 1259545.732355 |
| 14508 | 290140 | 1236378.778777 | 1259651.468869 |
| 14509 | 290160 | 1236483.816894 | 1259757.206149 |
| 14510 | 290180 | 1236588.855798 | 1259862.944196 |
| 14511 | 290200 | 1236693.895492 | 1259968.683008 |
| 14512 | 290220 | 1236798.935973 | 1260074.422587 |
| 14513 | 290240 | 1236903.977243 | 1260180.162931 |
| 14514 | 290260 | 1237009.019300 | 1260285.904041 |
| 14515 | 290280 | 1237114.062146 | 1260391.645917 |
| 14516 | 290300 | 1237219.105780 | 1260497.388558 |
| 14517 | 290320 | 1237324.150201 | 1260603.131965 |
| 14518 | 290340 | 1237429.195411 | 1260708.876138 |
| 14519 | 290360 | 1237534.241408 | 1260814.621076 |
| 14520 | 290380 | 1237639.288193 | 1260920.366780 |
| 14521 | 290400 | 1237744.335766 | 1261026.113249 |
| 14522 | 290420 | 1237849.384126 | 1261131.860484 |
| 14523 | 290440 | 1237954.433274 | 1261237.608484 |
| 14524 | 290460 | 1238059.483210 | 1261343.357249 |
| 14525 | 290480 | 1238164.533933 | 1261449.106779 |
| 14526 | 290500 | 1238269.585443 | 1261554.857075 |
| 14527 | 290520 | 1238374.637741 | 1261660.608135 |
| 14528 | 290540 | 1238479.690826 | 1261766.359961 |
| 14529 | 290560 | 1238584.744698 | 1261872.112551 |
| 14530 | 290580 | 1238689.799357 | 1261977.865907 |
| 14531 | 290600 | 1238794.854804 | 1262083.620027 |
| 14532 | 290620 | 1238899.911037 | 1262189.374912 |
| 14533 | 290640 | 1239004.968058 | 1262295.130562 |
| 14534 | 290660 | 1239110.025865 | 1262400.886977 |
| 14535 | 290680 | 1239215.084459 | 1262506.644156 |
| 14536 | 290700 | 1239320.143840 | 1262612.402100 |
| 14537 | 290720 | 1239425.204008 | 1262718.160808 |
| 14538 | 290740 | 1239530.264962 | 1262823.920281 |
| 14539 | 290760 | 1239635.326703 | 1262929.680518 |
| 14540 | 290780 | 1239740.389231 | 1263035.441519 |
| 14541 | 290800 | 1239845.452545 | 1263141.203285 |
| 14542 | 290820 | 1239950.516646 | 1263246.965815 |
| 14543 | 290840 | 1240055.581533 | 1263352.729109 |
| 14544 | 290860 | 1240160.647206 | 1263458.493167 |
| 14545 | 290880 | 1240265.713666 | 1263564.257990 |
| 14546 | 290900 | 1240370.780912 | 1263670.023576 |
| 14547 | 290920 | 1240475.848944 | 1263775.789927 |
| 14548 | 290940 | 1240580.917762 | 1263881.557041 |
| 14549 | 290960 | 1240685.987366 | 1263987.324919 |
| 14550 | 290980 | 1240791.057756 | 1264093.093561 |
| 14551 | 291000 | 1240896.128932 | 1264198.862966 |
| 14552 | 291020 | 1241001.200894 | 1264304.633135 |
| 14553 | 291040 | 1241106.273642 | 1264410.404068 |
| 14554 | 291060 | 1241211.347175 | 1264516.175765 |
| 14555 | 291080 | 1241316.421494 | 1264621.948224 |
| 14556 | 291100 | 1241421.496599 | 1264727.721448 |
| 14557 | 291120 | 1241526.572489 | 1264833.495435 |
| 14558 | 291140 | 1241631.649165 | 1264939.270185 |
| 14559 | 291160 | 1241736.726627 | 1265045.045698 |
| 14560 | 291180 | 1241841.804873 | 1265150.821974 |
| 14561 | 291200 | 1241946.883905 | 1265256.599014 |
| 14562 | 291220 | 1242051.963723 | 1265362.376817 |
| 14563 | 291240 | 1242157.044325 | 1265468.155383 |
| 14564 | 291260 | 1242262.125713 | 1265573.934712 |
| 14565 | 291280 | 1242367.207886 | 1265679.714803 |
| 14566 | 291300 | 1242472.290844 | 1265785.495658 |
| 14567 | 291320 | 1242577.374586 | 1265891.277275 |
| 14568 | 291340 | 1242682.459114 | 1265997.059656 |
| 14569 | 291360 | 1242787.544427 | 1266102.842799 |
| 14570 | 291380 | 1242892.630524 | 1266208.626704 |
| 14571 | 291400 | 1242997.717406 | 1266314.411372 |
| 14572 | 291420 | 1243102.805073 | 1266420.196803 |
| 14573 | 291440 | 1243207.893525 | 1266525.982996 |
| 14574 | 291460 | 1243312.982761 | 1266631.769952 |
| 14575 | 291480 | 1243418.072781 | 1266737.557670 |
| 14576 | 291500 | 1243523.163586 | 1266843.346150 |
| 14577 | 291520 | 1243628.255176 | 1266949.135393 |
| 14578 | 291540 | 1243733.347549 | 1267054.925398 |
| 14579 | 291560 | 1243838.440707 | 1267160.716164 |
| 14580 | 291580 | 1243943.534650 | 1267266.507693 |
| 14581 | 291600 | 1244048.629376 | 1267372.299984 |
| 14582 | 291620 | 1244153.724887 | 1267478.093037 |
| 14583 | 291640 | 1244258.821181 | 1267583.886852 |
| 14584 | 291660 | 1244363.918260 | 1267689.681429 |
| 14585 | 291680 | 1244469.016122 | 1267795.476768 |
| 14586 | 291700 | 1244574.114769 | 1267901.272868 |
| 14587 | 291720 | 1244679.214199 | 1268007.069730 |
| 14588 | 291740 | 1244784.314413 | 1268112.867354 |
| 14589 | 291760 | 1244889.415410 | 1268218.665739 |
| 14590 | 291780 | 1244994.517192 | 1268324.464886 |
| 14591 | 291800 | 1245099.619756 | 1268430.264794 |
| 14592 | 291820 | 1245204.723105 | 1268536.065464 |
| 14593 | 291840 | 1245309.827237 | 1268641.866895 |
| 14594 | 291860 | 1245414.932152 | 1268747.669087 |
| 14595 | 291880 | 1245520.037850 | 1268853.472041 |
| 14596 | 291900 | 1245625.144332 | 1268959.275756 |
| 14597 | 291920 | 1245730.251597 | 1269065.080231 |
| 14598 | 291940 | 1245835.359646 | 1269170.885468 |
| 14599 | 291960 | 1245940.468477 | 1269276.691466 |
| 14600 | 291980 | 1246045.578091 | 1269382.498225 |
| 14601 | 292000 | 1246150.688489 | 1269488.305745 |
| 14602 | 292020 | 1246255.799669 | 1269594.114026 |
| 14603 | 292040 | 1246360.911632 | 1269699.923068 |
| 14604 | 292060 | 1246466.024378 | 1269805.732870 |
| 14605 | 292080 | 1246571.137907 | 1269911.543433 |
| 14606 | 292100 | 1246676.252219 | 1270017.354756 |
| 14607 | 292120 | 1246781.367313 | 1270123.166840 |
| 14608 | 292140 | 1246886.483189 | 1270228.979685 |
| 14609 | 292160 | 1246991.599849 | 1270334.793290 |
| 14610 | 292180 | 1247096.717290 | 1270440.607656 |
| 14611 | 292200 | 1247201.835515 | 1270546.422782 |
| 14612 | 292220 | 1247306.954521 | 1270652.238668 |
| 14613 | 292240 | 1247412.074310 | 1270758.055314 |
| 14614 | 292260 | 1247517.194881 | 1270863.872721 |
| 14615 | 292280 | 1247622.316234 | 1270969.690887 |
| 14616 | 292300 | 1247727.438369 | 1271075.509814 |
| 14617 | 292320 | 1247832.561287 | 1271181.329501 |
| 14618 | 292340 | 1247937.684986 | 1271287.149948 |
| 14619 | 292360 | 1248042.809467 | 1271392.971154 |
| 14620 | 292380 | 1248147.934731 | 1271498.793121 |
| 14621 | 292400 | 1248253.060776 | 1271604.615847 |
| 14622 | 292420 | 1248358.187602 | 1271710.439333 |
| 14623 | 292440 | 1248463.315211 | 1271816.263579 |
| 14624 | 292460 | 1248568.443601 | 1271922.088584 |
| 14625 | 292480 | 1248673.572773 | 1272027.914349 |
| 14626 | 292500 | 1248778.702726 | 1272133.740873 |
| 14627 | 292520 | 1248883.833461 | 1272239.568157 |
| 14628 | 292540 | 1248988.964977 | 1272345.396200 |
| 14629 | 292560 | 1249094.097275 | 1272451.225003 |
| 14630 | 292580 | 1249199.230354 | 1272557.054565 |
| 14631 | 292600 | 1249304.364214 | 1272662.884886 |
| 14632 | 292620 | 1249409.498855 | 1272768.715966 |
| 14633 | 292640 | 1249514.634278 | 1272874.547805 |
| 14634 | 292660 | 1249619.770481 | 1272980.380404 |
| 14635 | 292680 | 1249724.907466 | 1273086.213761 |
| 14636 | 292700 | 1249830.045231 | 1273192.047878 |
| 14637 | 292720 | 1249935.183777 | 1273297.882753 |
| 14638 | 292740 | 1250040.323105 | 1273403.718387 |
| 14639 | 292760 | 1250145.463213 | 1273509.554780 |
| 14640 | 292780 | 1250250.604101 | 1273615.391931 |
| 14641 | 292800 | 1250355.745771 | 1273721.229842 |
| 14642 | 292820 | 1250460.888221 | 1273827.068511 |
| 14643 | 292840 | 1250566.031451 | 1273932.907938 |
| 14644 | 292860 | 1250671.175462 | 1274038.748124 |
| 14645 | 292880 | 1250776.320254 | 1274144.589068 |
| 14646 | 292900 | 1250881.465826 | 1274250.430771 |
| 14647 | 292920 | 1250986.612178 | 1274356.273232 |
| 14648 | 292940 | 1251091.759310 | 1274462.116452 |
| 14649 | 292960 | 1251196.907223 | 1274567.960429 |
| 14650 | 292980 | 1251302.055916 | 1274673.805165 |
| 14651 | 293000 | 1251407.205389 | 1274779.650659 |
| 14652 | 293020 | 1251512.355642 | 1274885.496911 |
| 14653 | 293040 | 1251617.506675 | 1274991.343921 |
| 14654 | 293060 | 1251722.658487 | 1275097.191689 |
| 14655 | 293080 | 1251827.811080 | 1275203.040215 |
| 14656 | 293100 | 1251932.964452 | 1275308.889498 |
| 14657 | 293120 | 1252038.118605 | 1275414.739540 |
| 14658 | 293140 | 1252143.273536 | 1275520.590339 |
| 14659 | 293160 | 1252248.429248 | 1275626.441896 |
| 14660 | 293180 | 1252353.585739 | 1275732.294210 |
| 14661 | 293200 | 1252458.743010 | 1275838.147282 |
| 14662 | 293220 | 1252563.901060 | 1275944.001112 |
| 14663 | 293240 | 1252669.059889 | 1276049.855699 |
| 14664 | 293260 | 1252774.219498 | 1276155.711043 |
| 14665 | 293280 | 1252879.379886 | 1276261.567144 |
| 14666 | 293300 | 1252984.541053 | 1276367.424003 |
| 14667 | 293320 | 1253089.702999 | 1276473.281620 |
| 14668 | 293340 | 1253194.865725 | 1276579.139993 |
| 14669 | 293360 | 1253300.029229 | 1276684.999123 |
| 14670 | 293380 | 1253405.193513 | 1276790.859011 |
| 14671 | 293400 | 1253510.358575 | 1276896.719655 |
| 14672 | 293420 | 1253615.524417 | 1277002.581057 |
| 14673 | 293440 | 1253720.691037 | 1277108.443215 |
| 14674 | 293460 | 1253825.858436 | 1277214.306130 |
| 14675 | 293480 | 1253931.026613 | 1277320.169802 |
| 14676 | 293500 | 1254036.195570 | 1277426.034231 |
| 14677 | 293520 | 1254141.365304 | 1277531.899416 |
| 14678 | 293540 | 1254246.535818 | 1277637.765358 |
| 14679 | 293560 | 1254351.707110 | 1277743.632056 |
| 14680 | 293580 | 1254456.879180 | 1277849.499511 |
| 14681 | 293600 | 1254562.052028 | 1277955.367723 |
| 14682 | 293620 | 1254667.225655 | 1278061.236691 |
| 14683 | 293640 | 1254772.400060 | 1278167.106415 |
| 14684 | 293660 | 1254877.575244 | 1278272.976895 |
| 14685 | 293680 | 1254982.751205 | 1278378.848132 |
| 14686 | 293700 | 1255087.927945 | 1278484.720125 |
| 14687 | 293720 | 1255193.105462 | 1278590.592874 |
| 14688 | 293740 | 1255298.283758 | 1278696.466379 |
| 14689 | 293760 | 1255403.462831 | 1278802.340640 |
| 14690 | 293780 | 1255508.642682 | 1278908.215657 |
| 14691 | 293800 | 1255613.823311 | 1279014.091429 |
| 14692 | 293820 | 1255719.004718 | 1279119.967958 |
| 14693 | 293840 | 1255824.186902 | 1279225.845243 |
| 14694 | 293860 | 1255929.369864 | 1279331.723283 |
| 14695 | 293880 | 1256034.553603 | 1279437.602079 |
| 14696 | 293900 | 1256139.738120 | 1279543.481630 |
| 14697 | 293920 | 1256244.923415 | 1279649.361937 |
| 14698 | 293940 | 1256350.109486 | 1279755.243000 |
| 14699 | 293960 | 1256455.296336 | 1279861.124818 |
| 14700 | 293980 | 1256560.483962 | 1279967.007391 |
| 14701 | 294000 | 1256665.672365 | 1280072.890720 |
| 14702 | 294020 | 1256770.861546 | 1280178.774804 |
| 14703 | 294040 | 1256876.051504 | 1280284.659643 |
| 14704 | 294060 | 1256981.242239 | 1280390.545237 |
| 14705 | 294080 | 1257086.433750 | 1280496.431587 |
| 14706 | 294100 | 1257191.626039 | 1280602.318691 |
| 14707 | 294120 | 1257296.819105 | 1280708.206551 |
| 14708 | 294140 | 1257402.012947 | 1280814.095165 |
| 14709 | 294160 | 1257507.207566 | 1280919.984535 |
| 14710 | 294180 | 1257612.402962 | 1281025.874659 |
| 14711 | 294200 | 1257717.599134 | 1281131.765538 |
| 14712 | 294220 | 1257822.796083 | 1281237.657172 |
| 14713 | 294240 | 1257927.993809 | 1281343.549560 |
| 14714 | 294260 | 1258033.192311 | 1281449.442703 |
| 14715 | 294280 | 1258138.391589 | 1281555.336601 |
| 14716 | 294300 | 1258243.591644 | 1281661.231253 |
| 14717 | 294320 | 1258348.792474 | 1281767.126660 |
| 14718 | 294340 | 1258453.994082 | 1281873.022821 |
| 14719 | 294360 | 1258559.196465 | 1281978.919736 |
| 14720 | 294380 | 1258664.399624 | 1282084.817405 |
| 14721 | 294400 | 1258769.603560 | 1282190.715829 |
| 14722 | 294420 | 1258874.808271 | 1282296.615007 |
| 14723 | 294440 | 1258980.013759 | 1282402.514939 |
| 14724 | 294460 | 1259085.220022 | 1282508.415626 |
| 14725 | 294480 | 1259190.427061 | 1282614.317066 |
| 14726 | 294500 | 1259295.634876 | 1282720.219260 |
| 14727 | 294520 | 1259400.843467 | 1282826.122208 |
| 14728 | 294540 | 1259506.052833 | 1282932.025910 |
| 14729 | 294560 | 1259611.262975 | 1283037.930366 |
| 14730 | 294580 | 1259716.473892 | 1283143.835575 |
| 14731 | 294600 | 1259821.685585 | 1283249.741538 |
| 14732 | 294620 | 1259926.898053 | 1283355.648255 |
| 14733 | 294640 | 1260032.111297 | 1283461.555726 |
| 14734 | 294660 | 1260137.325316 | 1283567.463949 |
| 14735 | 294680 | 1260242.540110 | 1283673.372927 |
| 14736 | 294700 | 1260347.755680 | 1283779.282657 |
| 14737 | 294720 | 1260452.972024 | 1283885.193142 |
| 14738 | 294740 | 1260558.189144 | 1283991.104379 |
| 14739 | 294760 | 1260663.407038 | 1284097.016370 |
| 14740 | 294780 | 1260768.625708 | 1284202.929113 |
| 14741 | 294800 | 1260873.845153 | 1284308.842610 |
| 14742 | 294820 | 1260979.065372 | 1284414.756860 |
| 14743 | 294840 | 1261084.286366 | 1284520.671863 |
| 14744 | 294860 | 1261189.508135 | 1284626.587619 |
| 14745 | 294880 | 1261294.730679 | 1284732.504128 |
| 14746 | 294900 | 1261399.953997 | 1284838.421390 |
| 14747 | 294920 | 1261505.178089 | 1284944.339405 |
| 14748 | 294940 | 1261610.402957 | 1285050.258172 |
| 14749 | 294960 | 1261715.628598 | 1285156.177692 |
| 14750 | 294980 | 1261820.855015 | 1285262.097965 |
| 14751 | 295000 | 1261926.082205 | 1285368.018990 |
| 14752 | 295020 | 1262031.310170 | 1285473.940768 |
| 14753 | 295040 | 1262136.538909 | 1285579.863298 |
| 14754 | 295060 | 1262241.768422 | 1285685.786580 |
| 14755 | 295080 | 1262346.998709 | 1285791.710616 |
| 14756 | 295100 | 1262452.229770 | 1285897.635403 |
| 14757 | 295120 | 1262557.461606 | 1286003.560942 |
| 14758 | 295140 | 1262662.694215 | 1286109.487234 |
| 14759 | 295160 | 1262767.927598 | 1286215.414278 |
| 14760 | 295180 | 1262873.161755 | 1286321.342074 |
| 14761 | 295200 | 1262978.396685 | 1286427.270622 |
| 14762 | 295220 | 1263083.632390 | 1286533.199922 |
| 14763 | 295240 | 1263188.868868 | 1286639.129974 |
| 14764 | 295260 | 1263294.106119 | 1286745.060778 |
| 14765 | 295280 | 1263399.344145 | 1286850.992334 |
| 14766 | 295300 | 1263504.582943 | 1286956.924641 |
| 14767 | 295320 | 1263609.822515 | 1287062.857700 |
| 14768 | 295340 | 1263715.062861 | 1287168.791511 |
| 14769 | 295360 | 1263820.303979 | 1287274.726073 |
| 14770 | 295380 | 1263925.545871 | 1287380.661387 |
| 14771 | 295400 | 1264030.788537 | 1287486.597452 |
| 14772 | 295420 | 1264136.031975 | 1287592.534269 |
| 14773 | 295440 | 1264241.276186 | 1287698.471837 |
| 14774 | 295460 | 1264346.521171 | 1287804.410157 |
| 14775 | 295480 | 1264451.766928 | 1287910.349227 |
| 14776 | 295500 | 1264557.013458 | 1288016.289049 |
| 14777 | 295520 | 1264662.260762 | 1288122.229623 |
| 14778 | 295540 | 1264767.508838 | 1288228.170947 |
| 14779 | 295560 | 1264872.757686 | 1288334.113022 |
| 14780 | 295580 | 1264978.007308 | 1288440.055848 |
| 14781 | 295600 | 1265083.257702 | 1288545.999426 |
| 14782 | 295620 | 1265188.508868 | 1288651.943754 |
| 14783 | 295640 | 1265293.760807 | 1288757.888833 |
| 14784 | 295660 | 1265399.013519 | 1288863.834662 |
| 14785 | 295680 | 1265504.267003 | 1288969.781243 |
| 14786 | 295700 | 1265609.521259 | 1289075.728574 |
| 14787 | 295720 | 1265714.776288 | 1289181.676655 |
| 14788 | 295740 | 1265820.032089 | 1289287.625488 |
| 14789 | 295760 | 1265925.288662 | 1289393.575070 |
| 14790 | 295780 | 1266030.546007 | 1289499.525404 |
| 14791 | 295800 | 1266135.804124 | 1289605.476487 |
| 14792 | 295820 | 1266241.063013 | 1289711.428321 |
| 14793 | 295840 | 1266346.322674 | 1289817.380905 |
| 14794 | 295860 | 1266451.583107 | 1289923.334240 |
| 14795 | 295880 | 1266556.844312 | 1290029.288324 |
| 14796 | 295900 | 1266662.106289 | 1290135.243159 |
| 14797 | 295920 | 1266767.369037 | 1290241.198744 |
| 14798 | 295940 | 1266872.632557 | 1290347.155079 |
| 14799 | 295960 | 1266977.896848 | 1290453.112164 |
| 14800 | 295980 | 1267083.161912 | 1290559.069998 |
| 14801 | 296000 | 1267188.427746 | 1290665.028583 |
| 14802 | 296020 | 1267293.694352 | 1290770.987917 |
| 14803 | 296040 | 1267398.961730 | 1290876.948001 |
| 14804 | 296060 | 1267504.229878 | 1290982.908835 |
| 14805 | 296080 | 1267609.498799 | 1291088.870418 |
| 14806 | 296100 | 1267714.768490 | 1291194.832751 |
| 14807 | 296120 | 1267820.038952 | 1291300.795834 |
| 14808 | 296140 | 1267925.310186 | 1291406.759665 |
| 14809 | 296160 | 1268030.582190 | 1291512.724247 |
| 14810 | 296180 | 1268135.854966 | 1291618.689577 |
| 14811 | 296200 | 1268241.128512 | 1291724.655657 |
| 14812 | 296220 | 1268346.402829 | 1291830.622487 |
| 14813 | 296240 | 1268451.677918 | 1291936.590065 |
| 14814 | 296260 | 1268556.953776 | 1292042.558393 |
| 14815 | 296280 | 1268662.230406 | 1292148.527469 |
| 14816 | 296300 | 1268767.507806 | 1292254.497295 |
| 14817 | 296320 | 1268872.785977 | 1292360.467870 |
| 14818 | 296340 | 1268978.064918 | 1292466.439193 |
| 14819 | 296360 | 1269083.344630 | 1292572.411266 |
| 14820 | 296380 | 1269188.625112 | 1292678.384087 |
| 14821 | 296400 | 1269293.906365 | 1292784.357657 |
| 14822 | 296420 | 1269399.188388 | 1292890.331976 |
| 14823 | 296440 | 1269504.471181 | 1292996.307043 |
| 14824 | 296460 | 1269609.754744 | 1293102.282859 |
| 14825 | 296480 | 1269715.039078 | 1293208.259424 |
| 14826 | 296500 | 1269820.324181 | 1293314.236737 |
| 14827 | 296520 | 1269925.610055 | 1293420.214798 |
| 14828 | 296540 | 1270030.896698 | 1293526.193608 |
| 14829 | 296560 | 1270136.184112 | 1293632.173166 |
| 14830 | 296580 | 1270241.472295 | 1293738.153472 |
| 14831 | 296600 | 1270346.761248 | 1293844.134527 |
| 14832 | 296620 | 1270452.050971 | 1293950.116330 |
| 14833 | 296640 | 1270557.341463 | 1294056.098881 |
| 14834 | 296660 | 1270662.632725 | 1294162.082180 |
| 14835 | 296680 | 1270767.924757 | 1294268.066226 |
| 14836 | 296700 | 1270873.217558 | 1294374.051021 |
| 14837 | 296720 | 1270978.511129 | 1294480.036564 |
| 14838 | 296740 | 1271083.805469 | 1294586.022855 |
| 14839 | 296760 | 1271189.100578 | 1294692.009893 |
| 14840 | 296780 | 1271294.396457 | 1294797.997679 |
| 14841 | 296800 | 1271399.693105 | 1294903.986213 |
| 14842 | 296820 | 1271504.990522 | 1295009.975494 |
| 14843 | 296840 | 1271610.288708 | 1295115.965523 |
| 14844 | 296860 | 1271715.587664 | 1295221.956300 |
| 14845 | 296880 | 1271820.887388 | 1295327.947824 |
| 14846 | 296900 | 1271926.187881 | 1295433.940095 |
| 14847 | 296920 | 1272031.489143 | 1295539.933114 |
| 14848 | 296940 | 1272136.791174 | 1295645.926880 |
| 14849 | 296960 | 1272242.093974 | 1295751.921393 |
| 14850 | 296980 | 1272347.397542 | 1295857.916653 |
| 14851 | 297000 | 1272452.701880 | 1295963.912661 |
| 14852 | 297020 | 1272558.006985 | 1296069.909415 |
| 14853 | 297040 | 1272663.312860 | 1296175.906917 |
| 14854 | 297060 | 1272768.619502 | 1296281.905166 |
| 14855 | 297080 | 1272873.926914 | 1296387.904161 |
| 14856 | 297100 | 1272979.235093 | 1296493.903904 |
| 14857 | 297120 | 1273084.544041 | 1296599.904393 |
| 14858 | 297140 | 1273189.853758 | 1296705.905629 |
| 14859 | 297160 | 1273295.164242 | 1296811.907611 |
| 14860 | 297180 | 1273400.475495 | 1296917.910341 |
| 14861 | 297200 | 1273505.787515 | 1297023.913816 |
| 14862 | 297220 | 1273611.100304 | 1297129.918039 |
| 14863 | 297240 | 1273716.413861 | 1297235.923008 |
| 14864 | 297260 | 1273821.728186 | 1297341.928723 |
| 14865 | 297280 | 1273927.043278 | 1297447.935185 |
| 14866 | 297300 | 1274032.359139 | 1297553.942393 |
| 14867 | 297320 | 1274137.675767 | 1297659.950347 |
| 14868 | 297340 | 1274242.993163 | 1297765.959048 |
| 14869 | 297360 | 1274348.311326 | 1297871.968494 |
| 14870 | 297380 | 1274453.630257 | 1297977.978687 |
| 14871 | 297400 | 1274558.949956 | 1298083.989626 |
| 14872 | 297420 | 1274664.270422 | 1298190.001311 |
| 14873 | 297440 | 1274769.591656 | 1298296.013741 |
| 14874 | 297460 | 1274874.913657 | 1298402.026918 |
| 14875 | 297480 | 1274980.236425 | 1298508.040840 |
| 14876 | 297500 | 1275085.559961 | 1298614.055509 |
| 14877 | 297520 | 1275190.884264 | 1298720.070923 |
| 14878 | 297540 | 1275296.209333 | 1298826.087082 |
| 14879 | 297560 | 1275401.535170 | 1298932.103987 |
| 14880 | 297580 | 1275506.861775 | 1299038.121638 |
| 14881 | 297600 | 1275612.189146 | 1299144.140035 |
| 14882 | 297620 | 1275717.517284 | 1299250.159176 |
| 14883 | 297640 | 1275822.846188 | 1299356.179064 |
| 14884 | 297660 | 1275928.175860 | 1299462.199696 |
| 14885 | 297680 | 1276033.506299 | 1299568.221074 |
| 14886 | 297700 | 1276138.837504 | 1299674.243197 |
| 14887 | 297720 | 1276244.169475 | 1299780.266065 |
| 14888 | 297740 | 1276349.502214 | 1299886.289679 |
| 14889 | 297760 | 1276454.835719 | 1299992.314037 |
| 14890 | 297780 | 1276560.169990 | 1300098.339141 |
| 14891 | 297800 | 1276665.505028 | 1300204.364989 |
| 14892 | 297820 | 1276770.840832 | 1300310.391583 |
| 14893 | 297840 | 1276876.177403 | 1300416.418921 |
| 14894 | 297860 | 1276981.514739 | 1300522.447004 |
| 14895 | 297880 | 1277086.852842 | 1300628.475832 |
| 14896 | 297900 | 1277192.191711 | 1300734.505404 |
| 14897 | 297920 | 1277297.531347 | 1300840.535722 |
| 14898 | 297940 | 1277402.871748 | 1300946.566783 |
| 14899 | 297960 | 1277508.212915 | 1301052.598590 |
| 14900 | 297980 | 1277613.554848 | 1301158.631140 |
| 14901 | 298000 | 1277718.897547 | 1301264.664436 |
| 14902 | 298020 | 1277824.241012 | 1301370.698475 |
| 14903 | 298040 | 1277929.585242 | 1301476.733259 |
| 14904 | 298060 | 1278034.930239 | 1301582.768788 |
| 14905 | 298080 | 1278140.276001 | 1301688.805060 |
| 14906 | 298100 | 1278245.622528 | 1301794.842077 |
| 14907 | 298120 | 1278350.969821 | 1301900.879837 |
| 14908 | 298140 | 1278456.317879 | 1302006.918342 |
| 14909 | 298160 | 1278561.666703 | 1302112.957591 |
| 14910 | 298180 | 1278667.016293 | 1302218.997584 |
| 14911 | 298200 | 1278772.366647 | 1302325.038320 |
| 14912 | 298220 | 1278877.717767 | 1302431.079801 |
| 14913 | 298240 | 1278983.069652 | 1302537.122025 |
| 14914 | 298260 | 1279088.422302 | 1302643.164993 |
| 14915 | 298280 | 1279193.775717 | 1302749.208705 |
| 14916 | 298300 | 1279299.129898 | 1302855.253160 |
| 14917 | 298320 | 1279404.484843 | 1302961.298359 |
| 14918 | 298340 | 1279509.840553 | 1303067.344302 |
| 14919 | 298360 | 1279615.197028 | 1303173.390987 |
| 14920 | 298380 | 1279720.554268 | 1303279.438417 |
| 14921 | 298400 | 1279825.912272 | 1303385.486589 |
| 14922 | 298420 | 1279931.271042 | 1303491.535505 |
| 14923 | 298440 | 1280036.630575 | 1303597.585165 |
| 14924 | 298460 | 1280141.990874 | 1303703.635567 |
| 14925 | 298480 | 1280247.351937 | 1303809.686713 |
| 14926 | 298500 | 1280352.713764 | 1303915.738601 |
| 14927 | 298520 | 1280458.076356 | 1304021.791233 |
| 14928 | 298540 | 1280563.439713 | 1304127.844608 |
| 14929 | 298560 | 1280668.803833 | 1304233.898725 |
| 14930 | 298580 | 1280774.168718 | 1304339.953586 |
| 14931 | 298600 | 1280879.534367 | 1304446.009189 |
| 14932 | 298620 | 1280984.900780 | 1304552.065535 |
| 14933 | 298640 | 1281090.267957 | 1304658.122624 |
| 14934 | 298660 | 1281195.635898 | 1304764.180456 |
| 14935 | 298680 | 1281301.004604 | 1304870.239030 |
| 14936 | 298700 | 1281406.374073 | 1304976.298347 |
| 14937 | 298720 | 1281511.744306 | 1305082.358406 |
| 14938 | 298740 | 1281617.115302 | 1305188.419207 |
| 14939 | 298760 | 1281722.487063 | 1305294.480751 |
| 14940 | 298780 | 1281827.859587 | 1305400.543038 |
| 14941 | 298800 | 1281933.232875 | 1305506.606067 |
| 14942 | 298820 | 1282038.606926 | 1305612.669837 |
| 14943 | 298840 | 1282143.981741 | 1305718.734351 |
| 14944 | 298860 | 1282249.357320 | 1305824.799606 |
| 14945 | 298880 | 1282354.733662 | 1305930.865603 |
| 14946 | 298900 | 1282460.110767 | 1306036.932342 |
| 14947 | 298920 | 1282565.488635 | 1306142.999824 |
| 14948 | 298940 | 1282670.867267 | 1306249.068047 |
| 14949 | 298960 | 1282776.246662 | 1306355.137012 |
| 14950 | 298980 | 1282881.626820 | 1306461.206719 |
| 14951 | 299000 | 1282987.007741 | 1306567.277168 |
| 14952 | 299020 | 1283092.389426 | 1306673.348358 |
| 14953 | 299040 | 1283197.771873 | 1306779.420290 |
| 14954 | 299060 | 1283303.155083 | 1306885.492963 |
| 14955 | 299080 | 1283408.539056 | 1306991.566379 |
| 14956 | 299100 | 1283513.923792 | 1307097.640535 |
| 14957 | 299120 | 1283619.309290 | 1307203.715433 |
| 14958 | 299140 | 1283724.695551 | 1307309.791073 |
| 14959 | 299160 | 1283830.082575 | 1307415.867454 |
| 14960 | 299180 | 1283935.470361 | 1307521.944576 |
| 14961 | 299200 | 1284040.858910 | 1307628.022439 |
| 14962 | 299220 | 1284146.248222 | 1307734.101043 |
| 14963 | 299240 | 1284251.638296 | 1307840.180389 |
| 14964 | 299260 | 1284357.029132 | 1307946.260476 |
| 14965 | 299280 | 1284462.420730 | 1308052.341303 |
| 14966 | 299300 | 1284567.813091 | 1308158.422872 |
| 14967 | 299320 | 1284673.206214 | 1308264.505181 |
| 14968 | 299340 | 1284778.600099 | 1308370.588232 |
| 14969 | 299360 | 1284883.994746 | 1308476.672023 |
| 14970 | 299380 | 1284989.390155 | 1308582.756555 |
| 14971 | 299400 | 1285094.786327 | 1308688.841828 |
| 14972 | 299420 | 1285200.183260 | 1308794.927841 |
| 14973 | 299440 | 1285305.580955 | 1308901.014595 |
| 14974 | 299460 | 1285410.979411 | 1309007.102089 |
| 14975 | 299480 | 1285516.378630 | 1309113.190324 |
| 14976 | 299500 | 1285621.778610 | 1309219.279299 |
| 14977 | 299520 | 1285727.179352 | 1309325.369015 |
| 14978 | 299540 | 1285832.580855 | 1309431.459471 |
| 14979 | 299560 | 1285937.983120 | 1309537.550667 |
| 14980 | 299580 | 1286043.386147 | 1309643.642603 |
| 14981 | 299600 | 1286148.789935 | 1309749.735280 |
| 14982 | 299620 | 1286254.194484 | 1309855.828697 |
| 14983 | 299640 | 1286359.599794 | 1309961.922854 |
| 14984 | 299660 | 1286465.005866 | 1310068.017750 |
| 14985 | 299680 | 1286570.412699 | 1310174.113387 |
| 14986 | 299700 | 1286675.820293 | 1310280.209764 |
| 14987 | 299720 | 1286781.228649 | 1310386.306880 |
| 14988 | 299740 | 1286886.637765 | 1310492.404736 |
| 14989 | 299760 | 1286992.047642 | 1310598.503332 |
| 14990 | 299780 | 1287097.458280 | 1310704.602668 |
| 14991 | 299800 | 1287202.869679 | 1310810.702743 |
| 14992 | 299820 | 1287308.281839 | 1310916.803558 |
| 14993 | 299840 | 1287413.694760 | 1311022.905113 |
| 14994 | 299860 | 1287519.108441 | 1311129.007406 |
| 14995 | 299880 | 1287624.522883 | 1311235.110440 |
| 14996 | 299900 | 1287729.938086 | 1311341.214212 |
| 14997 | 299920 | 1287835.354049 | 1311447.318724 |
| 14998 | 299940 | 1287940.770772 | 1311553.423976 |
| 14999 | 299960 | 1288046.188256 | 1311659.529966 |
| 15000 | 299980 | 1288151.606501 | 1311765.636696 |
| 15001 | 300000 | 1288257.025505 | 1311871.744164 |
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())