Current task: —

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

← prev page 30 of 40 · 500/page · 20000 rows next →
# nmargin_tracedmargin_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())