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 39 of 40 · 500/page · 20000 rows next →
# nmargin_tracedmargin_measured
19002 380020 1715609.322374 1741827.948651
19003 380040 1715717.412545 1741936.656131
19004 380060 1715825.503305 1742045.364184
19005 380080 1715933.594654 1742154.072812
19006 380100 1716041.686592 1742262.782013
19007 380120 1716149.779119 1742371.491789
19008 380140 1716257.872235 1742480.202138
19009 380160 1716365.965939 1742588.913061
19010 380180 1716474.060232 1742697.624558
19011 380200 1716582.155114 1742806.336629
19012 380220 1716690.250585 1742915.049273
19013 380240 1716798.346644 1743023.762491
19014 380260 1716906.443292 1743132.476283
19015 380280 1717014.540529 1743241.190649
19016 380300 1717122.638354 1743349.905588
19017 380320 1717230.736768 1743458.621101
19018 380340 1717338.835770 1743567.337187
19019 380360 1717446.935361 1743676.053847
19020 380380 1717555.035540 1743784.771081
19021 380400 1717663.136308 1743893.488888
19022 380420 1717771.237664 1744002.207268
19023 380440 1717879.339608 1744110.926222
19024 380460 1717987.442141 1744219.645749
19025 380480 1718095.545262 1744328.365849
19026 380500 1718203.648971 1744437.086523
19027 380520 1718311.753268 1744545.807770
19028 380540 1718419.858153 1744654.529590
19029 380560 1718527.963627 1744763.251984
19030 380580 1718636.069689 1744871.974951
19031 380600 1718744.176339 1744980.698491
19032 380620 1718852.283577 1745089.422604
19033 380640 1718960.391403 1745198.147290
19034 380660 1719068.499816 1745306.872549
19035 380680 1719176.608818 1745415.598381
19036 380700 1719284.718408 1745524.324786
19037 380720 1719392.828586 1745633.051764
19038 380740 1719500.939351 1745741.779316
19039 380760 1719609.050704 1745850.507439
19040 380780 1719717.162645 1745959.236136
19041 380800 1719825.275174 1746067.965406
19042 380820 1719933.388291 1746176.695248
19043 380840 1720041.501995 1746285.425664
19044 380860 1720149.616287 1746394.156652
19045 380880 1720257.731166 1746502.888212
19046 380900 1720365.846633 1746611.620346
19047 380920 1720473.962688 1746720.353052
19048 380940 1720582.079330 1746829.086330
19049 380960 1720690.196560 1746937.820182
19050 380980 1720798.314377 1747046.554605
19051 381000 1720906.432781 1747155.289602
19052 381020 1721014.551773 1747264.025170
19053 381040 1721122.671352 1747372.761311
19054 381060 1721230.791519 1747481.498025
19055 381080 1721338.912272 1747590.235311
19056 381100 1721447.033613 1747698.973169
19057 381120 1721555.155542 1747807.711600
19058 381140 1721663.278057 1747916.450603
19059 381160 1721771.401160 1748025.190178
19060 381180 1721879.524849 1748133.930326
19061 381200 1721987.649126 1748242.671045
19062 381220 1722095.773990 1748351.412337
19063 381240 1722203.899441 1748460.154201
19064 381260 1722312.025479 1748568.896637
19065 381280 1722420.152104 1748677.639645
19066 381300 1722528.279315 1748786.383225
19067 381320 1722636.407114 1748895.127378
19068 381340 1722744.535499 1749003.872102
19069 381360 1722852.664472 1749112.617398
19070 381380 1722960.794031 1749221.363266
19071 381400 1723068.924176 1749330.109706
19072 381420 1723177.054909 1749438.856717
19073 381440 1723285.186228 1749547.604301
19074 381460 1723393.318134 1749656.352456
19075 381480 1723501.450627 1749765.101183
19076 381500 1723609.583706 1749873.850482
19077 381520 1723717.717371 1749982.600352
19078 381540 1723825.851623 1750091.350794
19079 381560 1723933.986462 1750200.101808
19080 381580 1724042.121887 1750308.853393
19081 381600 1724150.257899 1750417.605550
19082 381620 1724258.394497 1750526.358279
19083 381640 1724366.531681 1750635.111579
19084 381660 1724474.669452 1750743.865450
19085 381680 1724582.807809 1750852.619893
19086 381700 1724690.946752 1750961.374907
19087 381720 1724799.086281 1751070.130492
19088 381740 1724907.226397 1751178.886649
19089 381760 1725015.367099 1751287.643378
19090 381780 1725123.508386 1751396.400677
19091 381800 1725231.650260 1751505.158548
19092 381820 1725339.792720 1751613.916990
19093 381840 1725447.935767 1751722.676003
19094 381860 1725556.079399 1751831.435587
19095 381880 1725664.223617 1751940.195742
19096 381900 1725772.368421 1752048.956469
19097 381920 1725880.513810 1752157.717766
19098 381940 1725988.659786 1752266.479635
19099 381960 1726096.806348 1752375.242074
19100 381980 1726204.953495 1752484.005085
19101 382000 1726313.101228 1752592.768666
19102 382020 1726421.249547 1752701.532818
19103 382040 1726529.398452 1752810.297541
19104 382060 1726637.547942 1752919.062835
19105 382080 1726745.698018 1753027.828700
19106 382100 1726853.848679 1753136.595135
19107 382120 1726961.999926 1753245.362142
19108 382140 1727070.151759 1753354.129719
19109 382160 1727178.304177 1753462.897866
19110 382180 1727286.457180 1753571.666584
19111 382200 1727394.610769 1753680.435873
19112 382220 1727502.764944 1753789.205733
19113 382240 1727610.919703 1753897.976163
19114 382260 1727719.075048 1754006.747163
19115 382280 1727827.230979 1754115.518734
19116 382300 1727935.387495 1754224.290875
19117 382320 1728043.544595 1754333.063587
19118 382340 1728151.702282 1754441.836869
19119 382360 1728259.860553 1754550.610722
19120 382380 1728368.019409 1754659.385145
19121 382400 1728476.178851 1754768.160138
19122 382420 1728584.338877 1754876.935701
19123 382440 1728692.499489 1754985.711835
19124 382460 1728800.660686 1755094.488539
19125 382480 1728908.822467 1755203.265813
19126 382500 1729016.984834 1755312.043657
19127 382520 1729125.147785 1755420.822071
19128 382540 1729233.311322 1755529.601056
19129 382560 1729341.475443 1755638.380610
19130 382580 1729449.640149 1755747.160734
19131 382600 1729557.805440 1755855.941428
19132 382620 1729665.971316 1755964.722693
19133 382640 1729774.137776 1756073.504527
19134 382660 1729882.304821 1756182.286931
19135 382680 1729990.472450 1756291.069905
19136 382700 1730098.640665 1756399.853448
19137 382720 1730206.809463 1756508.637562
19138 382740 1730314.978847 1756617.422245
19139 382760 1730423.148815 1756726.207498
19140 382780 1730531.319367 1756834.993321
19141 382800 1730639.490504 1756943.779713
19142 382820 1730747.662225 1757052.566675
19143 382840 1730855.834531 1757161.354206
19144 382860 1730964.007421 1757270.142307
19145 382880 1731072.180895 1757378.930978
19146 382900 1731180.354954 1757487.720218
19147 382920 1731288.529596 1757596.510028
19148 382940 1731396.704824 1757705.300407
19149 382960 1731504.880635 1757814.091355
19150 382980 1731613.057030 1757922.882873
19151 383000 1731721.234010 1758031.674960
19152 383020 1731829.411573 1758140.467616
19153 383040 1731937.589721 1758249.260842
19154 383060 1732045.768453 1758358.054637
19155 383080 1732153.947769 1758466.849001
19156 383100 1732262.127668 1758575.643934
19157 383120 1732370.308152 1758684.439437
19158 383140 1732478.489219 1758793.235508
19159 383160 1732586.670871 1758902.032149
19160 383180 1732694.853106 1759010.829359
19161 383200 1732803.035925 1759119.627137
19162 383220 1732911.219328 1759228.425485
19163 383240 1733019.403314 1759337.224402
19164 383260 1733127.587884 1759446.023888
19165 383280 1733235.773038 1759554.823942
19166 383300 1733343.958776 1759663.624565
19167 383320 1733452.145097 1759772.425758
19168 383340 1733560.332002 1759881.227519
19169 383360 1733668.519490 1759990.029849
19170 383380 1733776.707562 1760098.832747
19171 383400 1733884.896217 1760207.636214
19172 383420 1733993.085455 1760316.440250
19173 383440 1734101.275277 1760425.244855
19174 383460 1734209.465683 1760534.050028
19175 383480 1734317.656672 1760642.855770
19176 383500 1734425.848244 1760751.662080
19177 383520 1734534.040399 1760860.468959
19178 383540 1734642.233138 1760969.276406
19179 383560 1734750.426459 1761078.084422
19180 383580 1734858.620364 1761186.893006
19181 383600 1734966.814853 1761295.702159
19182 383620 1735075.009924 1761404.511880
19183 383640 1735183.205578 1761513.322169
19184 383660 1735291.401815 1761622.133027
19185 383680 1735399.598636 1761730.944453
19186 383700 1735507.796039 1761839.756447
19187 383720 1735615.994026 1761948.569009
19188 383740 1735724.192595 1762057.382140
19189 383760 1735832.391747 1762166.195838
19190 383780 1735940.591482 1762275.010105
19191 383800 1736048.791800 1762383.824940
19192 383820 1736156.992700 1762492.640343
19193 383840 1736265.194184 1762601.456314
19194 383860 1736373.396250 1762710.272853
19195 383880 1736481.598898 1762819.089959
19196 383900 1736589.802130 1762927.907634
19197 383920 1736698.005944 1763036.725877
19198 383940 1736806.210340 1763145.544687
19199 383960 1736914.415320 1763254.364066
19200 383980 1737022.620881 1763363.184012
19201 384000 1737130.827025 1763472.004526
19202 384020 1737239.033752 1763580.825607
19203 384040 1737347.241061 1763689.647257
19204 384060 1737455.448953 1763798.469474
19205 384080 1737563.657426 1763907.292258
19206 384100 1737671.866483 1764016.115610
19207 384120 1737780.076121 1764124.939530
19208 384140 1737888.286342 1764233.764018
19209 384160 1737996.497145 1764342.589072
19210 384180 1738104.708530 1764451.414695
19211 384200 1738212.920497 1764560.240885
19212 384220 1738321.133047 1764669.067642
19213 384240 1738429.346178 1764777.894967
19214 384260 1738537.559892 1764886.722859
19215 384280 1738645.774188 1764995.551318
19216 384300 1738753.989066 1765104.380344
19217 384320 1738862.204525 1765213.209938
19218 384340 1738970.420567 1765322.040099
19219 384360 1739078.637190 1765430.870828
19220 384380 1739186.854396 1765539.702123
19221 384400 1739295.072183 1765648.533986
19222 384420 1739403.290552 1765757.366415
19223 384440 1739511.509503 1765866.199412
19224 384460 1739619.729036 1765975.032976
19225 384480 1739727.949150 1766083.867107
19226 384500 1739836.169846 1766192.701805
19227 384520 1739944.391123 1766301.537069
19228 384540 1740052.612983 1766410.372901
19229 384560 1740160.835424 1766519.209300
19230 384580 1740269.058446 1766628.046265
19231 384600 1740377.282050 1766736.883797
19232 384620 1740485.506235 1766845.721896
19233 384640 1740593.731002 1766954.560562
19234 384660 1740701.956350 1767063.399795
19235 384680 1740810.182280 1767172.239594
19236 384700 1740918.408791 1767281.079960
19237 384720 1741026.635883 1767389.920893
19238 384740 1741134.863557 1767498.762392
19239 384760 1741243.091812 1767607.604457
19240 384780 1741351.320648 1767716.447090
19241 384800 1741459.550065 1767825.290288
19242 384820 1741567.780064 1767934.134054
19243 384840 1741676.010644 1768042.978385
19244 384860 1741784.241804 1768151.823284
19245 384880 1741892.473546 1768260.668748
19246 384900 1742000.705869 1768369.514779
19247 384920 1742108.938773 1768478.361376
19248 384940 1742217.172257 1768587.208540
19249 384960 1742325.406323 1768696.056269
19250 384980 1742433.640970 1768804.904565
19251 385000 1742541.876197 1768913.753428
19252 385020 1742650.112006 1769022.602856
19253 385040 1742758.348395 1769131.452850
19254 385060 1742866.585365 1769240.303411
19255 385080 1742974.822915 1769349.154538
19256 385100 1743083.061047 1769458.006230
19257 385120 1743191.299759 1769566.858489
19258 385140 1743299.539052 1769675.711314
19259 385160 1743407.778925 1769784.564704
19260 385180 1743516.019379 1769893.418661
19261 385200 1743624.260413 1770002.273183
19262 385220 1743732.502028 1770111.128272
19263 385240 1743840.744224 1770219.983926
19264 385260 1743948.987000 1770328.840146
19265 385280 1744057.230356 1770437.696932
19266 385300 1744165.474293 1770546.554283
19267 385320 1744273.718810 1770655.412200
19268 385340 1744381.963907 1770764.270683
19269 385360 1744490.209585 1770873.129731
19270 385380 1744598.455843 1770981.989345
19271 385400 1744706.702681 1771090.849525
19272 385420 1744814.950099 1771199.710270
19273 385440 1744923.198098 1771308.571581
19274 385460 1745031.446676 1771417.433457
19275 385480 1745139.695835 1771526.295899
19276 385500 1745247.945574 1771635.158906
19277 385520 1745356.195893 1771744.022478
19278 385540 1745464.446791 1771852.886616
19279 385560 1745572.698270 1771961.751319
19280 385580 1745680.950329 1772070.616587
19281 385600 1745789.202968 1772179.482421
19282 385620 1745897.456186 1772288.348820
19283 385640 1746005.709984 1772397.215784
19284 385660 1746113.964363 1772506.083313
19285 385680 1746222.219320 1772614.951408
19286 385700 1746330.474858 1772723.820067
19287 385720 1746438.730975 1772832.689292
19288 385740 1746546.987673 1772941.559081
19289 385760 1746655.244949 1773050.429436
19290 385780 1746763.502806 1773159.300356
19291 385800 1746871.761241 1773268.171840
19292 385820 1746980.020257 1773377.043890
19293 385840 1747088.279852 1773485.916504
19294 385860 1747196.540026 1773594.789683
19295 385880 1747304.800780 1773703.663427
19296 385900 1747413.062113 1773812.537736
19297 385920 1747521.324026 1773921.412610
19298 385940 1747629.586518 1774030.288048
19299 385960 1747737.849590 1774139.164051
19300 385980 1747846.113240 1774248.040619
19301 386000 1747954.377470 1774356.917751
19302 386020 1748062.642279 1774465.795448
19303 386040 1748170.907668 1774574.673710
19304 386060 1748279.173635 1774683.552536
19305 386080 1748387.440182 1774792.431927
19306 386100 1748495.707308 1774901.311882
19307 386120 1748603.975012 1775010.192402
19308 386140 1748712.243296 1775119.073486
19309 386160 1748820.512159 1775227.955134
19310 386180 1748928.781601 1775336.837347
19311 386200 1749037.051622 1775445.720124
19312 386220 1749145.322221 1775554.603465
19313 386240 1749253.593400 1775663.487371
19314 386260 1749361.865157 1775772.371841
19315 386280 1749470.137493 1775881.256875
19316 386300 1749578.410408 1775990.142473
19317 386320 1749686.683902 1776099.028636
19318 386340 1749794.957974 1776207.915362
19319 386360 1749903.232625 1776316.802653
19320 386380 1750011.507855 1776425.690508
19321 386400 1750119.783663 1776534.578926
19322 386420 1750228.060050 1776643.467909
19323 386440 1750336.337016 1776752.357456
19324 386460 1750444.614560 1776861.247566
19325 386480 1750552.892682 1776970.138241
19326 386500 1750661.171383 1777079.029479
19327 386520 1750769.450663 1777187.921281
19328 386540 1750877.730520 1777296.813647
19329 386560 1750986.010956 1777405.706577
19330 386580 1751094.291971 1777514.600071
19331 386600 1751202.573564 1777623.494128
19332 386620 1751310.855735 1777732.388749
19333 386640 1751419.138484 1777841.283933
19334 386660 1751527.421811 1777950.179682
19335 386680 1751635.705717 1778059.075993
19336 386700 1751743.990201 1778167.972869
19337 386720 1751852.275262 1778276.870308
19338 386740 1751960.560902 1778385.768310
19339 386760 1752068.847120 1778494.666876
19340 386780 1752177.133916 1778603.566005
19341 386800 1752285.421290 1778712.465698
19342 386820 1752393.709242 1778821.365954
19343 386840 1752501.997772 1778930.266773
19344 386860 1752610.286879 1779039.168156
19345 386880 1752718.576565 1779148.070102
19346 386900 1752826.866828 1779256.972611
19347 386920 1752935.157669 1779365.875683
19348 386940 1753043.449088 1779474.779319
19349 386960 1753151.741085 1779583.683518
19350 386980 1753260.033659 1779692.588279
19351 387000 1753368.326811 1779801.493604
19352 387020 1753476.620540 1779910.399492
19353 387040 1753584.914847 1780019.305943
19354 387060 1753693.209732 1780128.212958
19355 387080 1753801.505194 1780237.120535
19356 387100 1753909.801234 1780346.028675
19357 387120 1754018.097851 1780454.937377
19358 387140 1754126.395046 1780563.846643
19359 387160 1754234.692818 1780672.756472
19360 387180 1754342.991167 1780781.666863
19361 387200 1754451.290094 1780890.577817
19362 387220 1754559.589598 1780999.489334
19363 387240 1754667.889679 1781108.401414
19364 387260 1754776.190338 1781217.314056
19365 387280 1754884.491573 1781326.227261
19366 387300 1754992.793386 1781435.141029
19367 387320 1755101.095776 1781544.055359
19368 387340 1755209.398743 1781652.970252
19369 387360 1755317.702287 1781761.885708
19370 387380 1755426.006409 1781870.801725
19371 387400 1755534.311107 1781979.718306
19372 387420 1755642.616382 1782088.635449
19373 387440 1755750.922234 1782197.553154
19374 387460 1755859.228664 1782306.471421
19375 387480 1755967.535670 1782415.390251
19376 387500 1756075.843252 1782524.309644
19377 387520 1756184.151412 1782633.229598
19378 387540 1756292.460149 1782742.150115
19379 387560 1756400.769462 1782851.071194
19380 387580 1756509.079352 1782959.992835
19381 387600 1756617.389818 1783068.915039
19382 387620 1756725.700862 1783177.837804
19383 387640 1756834.012482 1783286.761132
19384 387660 1756942.324678 1783395.685022
19385 387680 1757050.637451 1783504.609473
19386 387700 1757158.950801 1783613.534487
19387 387720 1757267.264727 1783722.460063
19388 387740 1757375.579230 1783831.386201
19389 387760 1757483.894309 1783940.312900
19390 387780 1757592.209964 1784049.240162
19391 387800 1757700.526196 1784158.167985
19392 387820 1757808.843004 1784267.096370
19393 387840 1757917.160389 1784376.025317
19394 387860 1758025.478350 1784484.954826
19395 387880 1758133.796887 1784593.884897
19396 387900 1758242.116000 1784702.815529
19397 387920 1758350.435689 1784811.746723
19398 387940 1758458.755955 1784920.678478
19399 387960 1758567.076797 1785029.610796
19400 387980 1758675.398215 1785138.543674
19401 388000 1758783.720208 1785247.477115
19402 388020 1758892.042778 1785356.411117
19403 388040 1759000.365924 1785465.345680
19404 388060 1759108.689646 1785574.280805
19405 388080 1759217.013944 1785683.216491
19406 388100 1759325.338818 1785792.152738
19407 388120 1759433.664267 1785901.089547
19408 388140 1759541.990293 1786010.026918
19409 388160 1759650.316894 1786118.964849
19410 388180 1759758.644071 1786227.903342
19411 388200 1759866.971823 1786336.842396
19412 388220 1759975.300152 1786445.782012
19413 388240 1760083.629056 1786554.722188
19414 388260 1760191.958536 1786663.662926
19415 388280 1760300.288591 1786772.604225
19416 388300 1760408.619222 1786881.546085
19417 388320 1760516.950428 1786990.488506
19418 388340 1760625.282210 1787099.431488
19419 388360 1760733.614568 1787208.375031
19420 388380 1760841.947501 1787317.319135
19421 388400 1760950.281009 1787426.263800
19422 388420 1761058.615093 1787535.209025
19423 388440 1761166.949752 1787644.154812
19424 388460 1761275.284986 1787753.101160
19425 388480 1761383.620796 1787862.048068
19426 388500 1761491.957181 1787970.995537
19427 388520 1761600.294141 1788079.943567
19428 388540 1761708.631677 1788188.892158
19429 388560 1761816.969787 1788297.841309
19430 388580 1761925.308473 1788406.791021
19431 388600 1762033.647734 1788515.741294
19432 388620 1762141.987570 1788624.692127
19433 388640 1762250.327981 1788733.643521
19434 388660 1762358.668967 1788842.595475
19435 388680 1762467.010528 1788951.547990
19436 388700 1762575.352664 1789060.501065
19437 388720 1762683.695374 1789169.454701
19438 388740 1762792.038660 1789278.408897
19439 388760 1762900.382521 1789387.363654
19440 388780 1763008.726956 1789496.318971
19441 388800 1763117.071966 1789605.274848
19442 388820 1763225.417551 1789714.231285
19443 388840 1763333.763711 1789823.188283
19444 388860 1763442.110445 1789932.145841
19445 388880 1763550.457754 1790041.103960
19446 388900 1763658.805637 1790150.062638
19447 388920 1763767.154096 1790259.021877
19448 388940 1763875.503128 1790367.981675
19449 388960 1763983.852736 1790476.942034
19450 388980 1764092.202918 1790585.902953
19451 389000 1764200.553674 1790694.864432
19452 389020 1764308.905005 1790803.826470
19453 389040 1764417.256910 1790912.789069
19454 389060 1764525.609389 1791021.752228
19455 389080 1764633.962443 1791130.715947
19456 389100 1764742.316071 1791239.680225
19457 389120 1764850.670274 1791348.645063
19458 389140 1764959.025050 1791457.610462
19459 389160 1765067.380401 1791566.576419
19460 389180 1765175.736326 1791675.542937
19461 389200 1765284.092826 1791784.510014
19462 389220 1765392.449899 1791893.477651
19463 389240 1765500.807546 1792002.445848
19464 389260 1765609.165768 1792111.414605
19465 389280 1765717.524563 1792220.383920
19466 389300 1765825.883933 1792329.353796
19467 389320 1765934.243877 1792438.324231
19468 389340 1766042.604394 1792547.295225
19469 389360 1766150.965485 1792656.266779
19470 389380 1766259.327151 1792765.238893
19471 389400 1766367.689390 1792874.211566
19472 389420 1766476.052202 1792983.184798
19473 389440 1766584.415589 1793092.158590
19474 389460 1766692.779549 1793201.132940
19475 389480 1766801.144084 1793310.107851
19476 389500 1766909.509191 1793419.083320
19477 389520 1767017.874873 1793528.059349
19478 389540 1767126.241128 1793637.035937
19479 389560 1767234.607956 1793746.013084
19480 389580 1767342.975359 1793854.990790
19481 389600 1767451.343334 1793963.969055
19482 389620 1767559.711884 1794072.947879
19483 389640 1767668.081006 1794181.927263
19484 389660 1767776.450702 1794290.907205
19485 389680 1767884.820972 1794399.887706
19486 389700 1767993.191815 1794508.868767
19487 389720 1768101.563231 1794617.850386
19488 389740 1768209.935220 1794726.832564
19489 389760 1768318.307783 1794835.815301
19490 389780 1768426.680919 1794944.798597
19491 389800 1768535.054628 1795053.782452
19492 389820 1768643.428911 1795162.766865
19493 389840 1768751.803766 1795271.751837
19494 389860 1768860.179195 1795380.737368
19495 389880 1768968.555196 1795489.723458
19496 389900 1769076.931771 1795598.710106
19497 389920 1769185.308919 1795707.697313
19498 389940 1769293.686640 1795816.685078
19499 389960 1769402.064934 1795925.673402
19500 389980 1769510.443800 1796034.662284
19501 390000 1769618.823240 1796143.651725

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())