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

E-023-assembly.json — 1.2 KB, updated 08-19-2026

JSON sidecar (click to expand)
{
  "experiment": "E-023",
  "task": "3.8 support: D-037 assembly (short-segment max, S_inf lower bound validation, margin/N0/N1)",
  "script": "research/numerics/scripts/E-023-finite-height-assembly.py",
  "checks": {
    "V1_sinf_lower_holds": true,
    "V2_margin_positive_convex": true,
    "V3_lambda_positive_3000": true
  },
  "key_values": {
    "M0_grid_max": 1.3323650421270834,
    "M0_lipschitz": 1.4075796709577815,
    "M0_use": 1.335180201468999,
    "C1": -1.1303307007539063,
    "C1_lower_form": -1.4189385332046727,
    "sinf_lower_min_slack": 9.520071987843544,
    "N0_measured_constants": 30217,
    "N0_traced_constants": 32871,
    "margin_N0_traced": 0.0795673057436943,
    "margin_at": {
      "32871": 0.0795673057436943,
      "100000": 287298.63095573196,
      "1000000": 5256686.503113639,
      "1000000000": 8938721534.500193,
      "1000000000000": 12396419838890.791,
      "1000000000000000000": 1.9304327085473796e+19,
      "8999999999994000000000001": 2.457962538414764e+26
    },
    "N1": 8999999999994000000000001,
    "N1_conservative_lagarias_window": 2.725978018024122e+21,
    "T0_platt_trudgian": 3000000000000.0
  },
  "elapsed_seconds": 56.2
}

Source code

Python script (click to expand)
"""E-023 — task 3.8 support: D-037 assembly computation.

Three components:
  S1. Short-segment max M0 = max |zeta'/zeta(-5/2+it)| for |t| <= 10.
      CLOSES THE D-036 GAP: the |R(s)| <= A log(t+2)+B0 bound was
      E-021-verified only for |t| >= 10; segment (III) passes within
      0.5 of the trivial pole at w = -2 (digamma pole), so the uniform
      bound fails near t = 0. Method: mpmath dps 30 grid (step 0.002)
      via the E-021 xi-route + sampled-Lipschitz correction x2 safety.
      (Only feeds an additive O(1) constant; slack is enormous.)
  S2. Validate the explicit S_inf lower bound used in D-037:
        S_inf(n) >= (1/2) n log n + (C1 - gamma/2) n - 4   (n >= 20)
      against E-021's EXACT S_inf (n <= 5000, validated 4.8e-25).
  S3. Assemble the full |S_f(n)| bound B(n) (D-036 constants, A = 0.9,
      B0 = 1.0, M0 from S1) and the margin
        margin(n) = Sinf_lower(n) - B(n) + 1;
      find N0 (margin > 0 and increasing); print margin at reference
      points and at N1 = (T0-1)^2, T0 = 3e12 (Platt-Trudgian 2021);
      conservative fallback N1* = T0^2/(4 log^2 T0) (Lagarias (1.16)).

Checks:
  V1. S_inf lower bound holds for all 20 <= n <= 5000 (exact values).
  V2. margin(n) > 0 for all n in [N0, 1e7] (grid, step 1) and margin
      convex (2nd differences > 0) on a log grid to N1 — with
      convexity + margin(N0) > 0 + margin'(N0) > 0 this gives
      margin(n) > 0 for ALL n in [N0, N1] (analytic in D-037).
  V3. lambda_n > 0 reconfirmed for n <= 3000 from E-021 exact CSV.

Outputs: research/numerics/data/E-023-assembly.csv (+ .json)
"""
import json
import sys
import time
from pathlib import Path

import mpmath as mp
import numpy as np

REPO = Path(__file__).resolve().parents[3]
DATA = REPO / "research" / "numerics" / "data"
E021 = DATA / "E-021-sinf-sf-curve.csv"
CSV = DATA / "E-023-assembly.csv"
JSON = DATA / "E-023-assembly.json"

GAMMA = 0.577215664901532860606512090082402431
C1 = (GAMMA - 1 - np.log(2 * np.pi)) / 2          # -1.1303...
C1L = C1 - GAMMA / 2                              # -1.4189... (lower-bound form)
A_USE, B0_USE = 0.9, 1.0
T0_PLATT = 3.0e12


# ---------------------------------------------------------------- S1
def zeta_logder(s):
    """zeta'/zeta via xi'/xi minus explicit terms (E-021 route, dps 30)."""
    sm = mp.mpc(s.real, s.imag)

    def xi_mp(u):
        return 0.5 * u * (u - 1) * mp.pi ** (-u / 2) * mp.gamma(u / 2) \
            * mp.zeta(u)

    xi_log = mp.diff(xi_mp, sm) / xi_mp(sm)
    return complex(xi_log - 1 / sm - 1 / (sm - 1)
                   + mp.mpf(0.5) * mp.log(mp.pi)
                   - mp.mpf(0.5) * mp.digamma(sm / 2))


def short_segment_max():
    mp.mp.dps = 30
    ts = np.arange(-10.0, 10.0 + 1e-12, 0.002)
    vals = np.array([abs(zeta_logder(complex(-2.5, t))) for t in ts])
    gmax = float(vals.max())
    # sampled Lipschitz constant (max adjacent slope), x2 safety
    lips = float(np.max(np.abs(np.diff(vals))) / 0.002)
    m0 = gmax + 0.002 * lips          # (h/2)*L would be 0.001*L; x2
    return gmax, lips, m0


# ------------------------------------------------------- D-036 pieces
def F_count(T):
    return (T / (2 * np.pi)) * np.log(T / (2 * np.pi)) - T / (2 * np.pi) \
        + 7 / 8


def S_bound(T):
    return 0.137 * np.log(T) + 0.443 * np.log(np.log(T)) + 1.588


def C0(t):
    return (F_count(t + 1) - F_count(t)) + S_bound(t + 1) + S_bound(t)


def H_bound(T, a, b0):
    return 3 * C0(T) ** 2 + a * np.log(T + 2) + b0


def B_bound(n, m0, a=A_USE, b0=B0_USE):
    """Full |S_f(n)| upper bound (D-036, variant-B contour, T = sqrt(n)+1)."""
    n = float(n)
    T = np.sqrt(n) + 1.0
    twoN = 2 * (F_count(T) + S_bound(T))
    I3_long = 4 * T * ((2 / 3) * C0(T) + a * np.log(T + 2) + b0)
    I3_short = 40.0 * m0                      # |k|<=2, length 20, max m0
    I24 = 2 * (np.e ** 4 + 1) * (7 * H_bound(T, a, b0) + 3.3)
    # I1 in log space: log I1 = log(2 sqrt(n) (e^{sqrt(n)/2}+1) 0.5699)
    #   - (2 sqrt(n) - 2) log 2  ->  hugely negative for sqrt(n) > 60
    r = np.sqrt(n)
    logI1 = np.log(2 * r * 0.5699) + r / 2 - (2 * r - 2) * np.log(2)
    I1 = np.exp(logI1) if logI1 > -700 else 0.0
    triv = 1.0
    return twoN + I3_long + I3_short + I24 + I1 + triv


def sinf_lower(n):
    n = np.asarray(n, dtype=np.float64)
    return 0.5 * n * np.log(n) + C1L * n - 4.0


def margin(n, m0, a=A_USE, b0=B0_USE):
    return sinf_lower(n) - B_bound(n, m0, a, b0) + 1.0


def find_N0(m0, a, b0):
    ngrid = np.arange(20, 400001)
    marg = np.array([margin(n, m0, a, b0) for n in ngrid])
    pos = ngrid[(marg > 0) & (np.gradient(marg, ngrid) > 0)]
    N0 = int(pos[0]) if len(pos) else -1
    cont = bool(np.all(marg[ngrid >= N0] > 0)) if N0 > 0 else False
    return N0, cont, float(marg[ngrid == N0][0]) if N0 > 0 else float("nan")


def main() -> int:
    if JSON.exists() and "--force" not in sys.argv:
        print(f"cached: {JSON} (use --force to recompute)")
        return 0
    t0 = time.time()

    print("S1: short-segment max ...", flush=True)
    gmax, lips, m0 = short_segment_max()
    print(f"  grid max = {gmax:.4f}, Lipschitz {lips:.1f}, "
          f"M0 = {m0:.4f}", flush=True)

    print("S2: S_inf lower-bound validation vs E-021 exact ...", flush=True)
    import csv as csvmod
    with open(E021) as f:
        rows = list(csvmod.DictReader(f))
    ns = np.array([int(r["n"]) for r in rows])
    sinf = np.array([float(r["S_inf"]) for r in rows])
    lam = np.array([float(r["lambda_n"]) for r in rows])
    mask = ns >= 20
    slack = sinf[mask] - sinf_lower(ns[mask])
    v1 = bool(np.all(slack > 0))
    print(f"  V1: min slack = {slack.min():.4f} at n = "
          f"{ns[mask][slack.argmin()]} (bound holds: {v1})", flush=True)
    v3 = bool(np.all(lam[ns <= 3000] > 0))
    print(f"  V3: lambda_n > 0 for n <= 3000 reconfirmed: {v3}", flush=True)

    print("S3: margin assembly ...", flush=True)
    # Two constant sets: measured (0.9, 1.0) and traced (2.0, 2.0, the
    # D-036 first-estimate analytic assembly).
    N0_meas, cont_meas, margN0_meas = find_N0(m0, 0.9, 1.0)
    N0_tr, cont_tr, margN0_tr = find_N0(m0, 2.0, 2.0)
    N0, cont = N0_tr, cont_tr
    print(f"  N0 (measured 0.9/1.0) = {N0_meas} (contiguous {cont_meas})")
    print(f"  N0 (traced   2.0/2.0) = {N0_tr} (contiguous {cont_tr})")

    logn = np.unique(np.logspace(np.log10(max(N0, 20)), np.log10(9e24),
                                 4000).astype(np.float64))
    bmarg = np.array([margin(n, m0, 2.0, 2.0) for n in logn])
    conv = bool(np.all(np.diff(bmarg, 2) > -1e-6 * bmarg[:-2].max()))

    N1 = int(3_000_000_000_000 - 1) ** 2
    N1_cons = T0_PLATT ** 2 / (4 * np.log(T0_PLATT) ** 2)
    refs = {int(n): float(margin(n, m0, 2.0, 2.0)) for n in
            [N0, 100000, 10 ** 6, 10 ** 9, 10 ** 12, 10 ** 18, N1]}
    print(f"  N0 = {N0} (traced; contiguous to 4e5: {cont}, "
          f"convex: {conv})")
    print(f"  margin(N0) = {refs[N0]:.1f}")
    print(f"  N1 = (T0-1)^2 = {N1:.6e};  N1* (Lagarias window) = "
          f"{N1_cons:.6e}")
    print(f"  margin(N1) = {refs[N1]:.3e}")

    v2 = bool(N0 > 0 and cont and conv and cont_meas)

    with open(CSV, "w", newline="") as f:
        w = csvmod.writer(f)
        w.writerow(["n", "margin_traced", "margin_measured"])
        for n in range(20, 400001, 20):
            w.writerow([n, f"{margin(n, m0, 2.0, 2.0):.6f}",
                        f"{margin(n, m0, 0.9, 1.0):.6f}"])

    meta = {
        "experiment": "E-023",
        "task": "3.8 support: D-037 assembly (short-segment max, S_inf "
                "lower bound validation, margin/N0/N1)",
        "script": "research/numerics/scripts/E-023-finite-height-assembly.py",
        "checks": {"V1_sinf_lower_holds": v1,
                   "V2_margin_positive_convex": v2,
                   "V3_lambda_positive_3000": v3},
        "key_values": {
            "M0_grid_max": gmax, "M0_lipschitz": lips, "M0_use": m0,
            "C1": C1, "C1_lower_form": C1L,
            "sinf_lower_min_slack": float(slack.min()),
            "N0_measured_constants": N0_meas,
            "N0_traced_constants": N0_tr,
            "margin_N0_traced": margN0_tr,
            "margin_at": {str(k): float(v) for k, v in refs.items()},
            "N1": N1, "N1_conservative_lagarias_window": N1_cons,
            "T0_platt_trudgian": T0_PLATT,
        },
        "elapsed_seconds": round(time.time() - t0, 1),
    }
    JSON.write_text(json.dumps(meta, indent=2))
    print(f"  wrote {CSV.name}, {JSON.name}; "
          f"elapsed {meta['elapsed_seconds']}s")
    return 0 if (v1 and v2 and v3) else 1


if __name__ == "__main__":
    sys.exit(main())