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 36 of 40 · 500/page · 20000 rows next →
# nmargin_tracedmargin_measured
17502 350020 1554156.673905 1579431.812870
17503 350040 1554263.840947 1579539.621053
17504 350060 1554371.008632 1579647.429863
17505 350080 1554478.176961 1579755.239300
17506 350100 1554585.345933 1579863.049362
17507 350120 1554692.515549 1579970.860052
17508 350140 1554799.685807 1580078.671367
17509 350160 1554906.856709 1580186.483309
17510 350180 1555014.028255 1580294.295878
17511 350200 1555121.200443 1580402.109072
17512 350220 1555228.373274 1580509.922893
17513 350240 1555335.546749 1580617.737340
17514 350260 1555442.720866 1580725.552413
17515 350280 1555549.895627 1580833.368112
17516 350300 1555657.071030 1580941.184437
17517 350320 1555764.247076 1581049.001389
17518 350340 1555871.423765 1581156.818966
17519 350360 1555978.601097 1581264.637169
17520 350380 1556085.779072 1581372.455998
17521 350400 1556192.957689 1581480.275453
17522 350420 1556300.136950 1581588.095534
17523 350440 1556407.316852 1581695.916241
17524 350460 1556514.497398 1581803.737573
17525 350480 1556621.678586 1581911.559531
17526 350500 1556728.860416 1582019.382115
17527 350520 1556836.042889 1582127.205325
17528 350540 1556943.226005 1582235.029160
17529 350560 1557050.409763 1582342.853621
17530 350580 1557157.594163 1582450.678707
17531 350600 1557264.779206 1582558.504419
17532 350620 1557371.964891 1582666.330756
17533 350640 1557479.151218 1582774.157718
17534 350660 1557586.338188 1582881.985306
17535 350680 1557693.525799 1582989.813520
17536 350700 1557800.714053 1583097.642358
17537 350720 1557907.902949 1583205.471822
17538 350740 1558015.092487 1583313.301911
17539 350760 1558122.282667 1583421.132626
17540 350780 1558229.473489 1583528.963965
17541 350800 1558336.664953 1583636.795930
17542 350820 1558443.857059 1583744.628519
17543 350840 1558551.049807 1583852.461734
17544 350860 1558658.243197 1583960.295574
17545 350880 1558765.437228 1584068.130038
17546 350900 1558872.631901 1584175.965128
17547 350920 1558979.827216 1584283.800843
17548 350940 1559087.023172 1584391.637182
17549 350960 1559194.219771 1584499.474146
17550 350980 1559301.417010 1584607.311735
17551 351000 1559408.614892 1584715.149949
17552 351020 1559515.813415 1584822.988787
17553 351040 1559623.012579 1584930.828250
17554 351060 1559730.212385 1585038.668338
17555 351080 1559837.412832 1585146.509050
17556 351100 1559944.613920 1585254.350387
17557 351120 1560051.815650 1585362.192348
17558 351140 1560159.018021 1585470.034934
17559 351160 1560266.221034 1585577.878144
17560 351180 1560373.424687 1585685.721979
17561 351200 1560480.628982 1585793.566438
17562 351220 1560587.833918 1585901.411521
17563 351240 1560695.039495 1586009.257228
17564 351260 1560802.245713 1586117.103560
17565 351280 1560909.452572 1586224.950516
17566 351300 1561016.660072 1586332.798096
17567 351320 1561123.868212 1586440.646301
17568 351340 1561231.076994 1586548.495129
17569 351360 1561338.286417 1586656.344582
17570 351380 1561445.496480 1586764.194658
17571 351400 1561552.707184 1586872.045358
17572 351420 1561659.918529 1586979.896683
17573 351440 1561767.130515 1587087.748631
17574 351460 1561874.343141 1587195.601203
17575 351480 1561981.556408 1587303.454399
17576 351500 1562088.770316 1587411.308219
17577 351520 1562195.984864 1587519.162663
17578 351540 1562303.200052 1587627.017730
17579 351560 1562410.415881 1587734.873421
17580 351580 1562517.632350 1587842.729735
17581 351600 1562624.849460 1587950.586673
17582 351620 1562732.067210 1588058.444235
17583 351640 1562839.285601 1588166.302420
17584 351660 1562946.504631 1588274.161229
17585 351680 1563053.724302 1588382.020661
17586 351700 1563160.944613 1588489.880717
17587 351720 1563268.165564 1588597.741396
17588 351740 1563375.387156 1588705.602698
17589 351760 1563482.609387 1588813.464624
17590 351780 1563589.832258 1588921.327173
17591 351800 1563697.055770 1589029.190345
17592 351820 1563804.279921 1589137.054140
17593 351840 1563911.504712 1589244.918558
17594 351860 1564018.730143 1589352.783600
17595 351880 1564125.956214 1589460.649264
17596 351900 1564233.182925 1589568.515552
17597 351920 1564340.410275 1589676.382463
17598 351940 1564447.638266 1589784.249996
17599 351960 1564554.866895 1589892.118153
17600 351980 1564662.096165 1589999.986932
17601 352000 1564769.326074 1590107.856334
17602 352020 1564876.556623 1590215.726359
17603 352040 1564983.787811 1590323.597007
17604 352060 1565091.019638 1590431.468278
17605 352080 1565198.252105 1590539.340171
17606 352100 1565305.485212 1590647.212687
17607 352120 1565412.718958 1590755.085825
17608 352140 1565519.953343 1590862.959586
17609 352160 1565627.188367 1590970.833970
17610 352180 1565734.424031 1591078.708976
17611 352200 1565841.660334 1591186.584605
17612 352220 1565948.897276 1591294.460856
17613 352240 1566056.134857 1591402.337729
17614 352260 1566163.373077 1591510.215225
17615 352280 1566270.611936 1591618.093343
17616 352300 1566377.851435 1591725.972083
17617 352320 1566485.091572 1591833.851446
17618 352340 1566592.332348 1591941.731431
17619 352360 1566699.573763 1592049.612038
17620 352380 1566806.815817 1592157.493267
17621 352400 1566914.058510 1592265.375118
17622 352420 1567021.301841 1592373.257591
17623 352440 1567128.545811 1592481.140687
17624 352460 1567235.790420 1592589.024404
17625 352480 1567343.035668 1592696.908743
17626 352500 1567450.281554 1592804.793704
17627 352520 1567557.528079 1592912.679287
17628 352540 1567664.775242 1593020.565492
17629 352560 1567772.023044 1593128.452318
17630 352580 1567879.271484 1593236.339767
17631 352600 1567986.520563 1593344.227837
17632 352620 1568093.770280 1593452.116528
17633 352640 1568201.020636 1593560.005842
17634 352660 1568308.271629 1593667.895777
17635 352680 1568415.523261 1593775.786333
17636 352700 1568522.775532 1593883.677511
17637 352720 1568630.028440 1593991.569311
17638 352740 1568737.281987 1594099.461732
17639 352760 1568844.536171 1594207.354774
17640 352780 1568951.790994 1594315.248438
17641 352800 1569059.046455 1594423.142723
17642 352820 1569166.302554 1594531.037630
17643 352840 1569273.559290 1594638.933157
17644 352860 1569380.816665 1594746.829306
17645 352880 1569488.074677 1594854.726076
17646 352900 1569595.333328 1594962.623467
17647 352920 1569702.592616 1595070.521480
17648 352940 1569809.852542 1595178.420113
17649 352960 1569917.113106 1595286.319368
17650 352980 1570024.374307 1595394.219243
17651 353000 1570131.636146 1595502.119740
17652 353020 1570238.898622 1595610.020857
17653 353040 1570346.161736 1595717.922595
17654 353060 1570453.425488 1595825.824954
17655 353080 1570560.689877 1595933.727934
17656 353100 1570667.954904 1596041.631535
17657 353120 1570775.220568 1596149.535756
17658 353140 1570882.486869 1596257.440598
17659 353160 1570989.753808 1596365.346061
17660 353180 1571097.021384 1596473.252145
17661 353200 1571204.289597 1596581.158849
17662 353220 1571311.558448 1596689.066173
17663 353240 1571418.827935 1596796.974118
17664 353260 1571526.098060 1596904.882684
17665 353280 1571633.368822 1597012.791870
17666 353300 1571740.640221 1597120.701676
17667 353320 1571847.912257 1597228.612103
17668 353340 1571955.184930 1597336.523150
17669 353360 1572062.458240 1597444.434817
17670 353380 1572169.732186 1597552.347105
17671 353400 1572277.006770 1597660.260013
17672 353420 1572384.281991 1597768.173541
17673 353440 1572491.557848 1597876.087689
17674 353460 1572598.834342 1597984.002457
17675 353480 1572706.111473 1598091.917846
17676 353500 1572813.389240 1598199.833854
17677 353520 1572920.667644 1598307.750482
17678 353540 1573027.946685 1598415.667731
17679 353560 1573135.226362 1598523.585599
17680 353580 1573242.506675 1598631.504087
17681 353600 1573349.787626 1598739.423195
17682 353620 1573457.069212 1598847.342923
17683 353640 1573564.351435 1598955.263270
17684 353660 1573671.634295 1599063.184237
17685 353680 1573778.917790 1599171.105824
17686 353700 1573886.201922 1599279.028031
17687 353720 1573993.486691 1599386.950857
17688 353740 1574100.772095 1599494.874303
17689 353760 1574208.058136 1599602.798368
17690 353780 1574315.344812 1599710.723053
17691 353800 1574422.632125 1599818.648357
17692 353820 1574529.920074 1599926.574281
17693 353840 1574637.208659 1600034.500824
17694 353860 1574744.497880 1600142.427986
17695 353880 1574851.787737 1600250.355768
17696 353900 1574959.078229 1600358.284169
17697 353920 1575066.369358 1600466.213189
17698 353940 1575173.661122 1600574.142829
17699 353960 1575280.953522 1600682.073087
17700 353980 1575388.246558 1600790.003965
17701 354000 1575495.540230 1600897.935462
17702 354020 1575602.834537 1601005.867578
17703 354040 1575710.129480 1601113.800313
17704 354060 1575817.425058 1601221.733667
17705 354080 1575924.721272 1601329.667640
17706 354100 1576032.018122 1601437.602232
17707 354120 1576139.315607 1601545.537442
17708 354140 1576246.613727 1601653.473272
17709 354160 1576353.912483 1601761.409720
17710 354180 1576461.211874 1601869.346787
17711 354200 1576568.511901 1601977.284473
17712 354220 1576675.812563 1602085.222777
17713 354240 1576783.113860 1602193.161700
17714 354260 1576890.415792 1602301.101242
17715 354280 1576997.718359 1602409.041402
17716 354300 1577105.021562 1602516.982181
17717 354320 1577212.325399 1602624.923579
17718 354340 1577319.629872 1602732.865594
17719 354360 1577426.934980 1602840.808229
17720 354380 1577534.240722 1602948.751481
17721 354400 1577641.547100 1603056.695352
17722 354420 1577748.854112 1603164.639841
17723 354440 1577856.161760 1603272.584949
17724 354460 1577963.470042 1603380.530675
17725 354480 1578070.778959 1603488.477019
17726 354500 1578178.088510 1603596.423981
17727 354520 1578285.398696 1603704.371561
17728 354540 1578392.709517 1603812.319759
17729 354560 1578500.020973 1603920.268576
17730 354580 1578607.333063 1604028.218010
17731 354600 1578714.645788 1604136.168062
17732 354620 1578821.959147 1604244.118733
17733 354640 1578929.273141 1604352.070021
17734 354660 1579036.587769 1604460.021927
17735 354680 1579143.903032 1604567.974451
17736 354700 1579251.218928 1604675.927593
17737 354720 1579358.535460 1604783.881352
17738 354740 1579465.852625 1604891.835729
17739 354760 1579573.170425 1604999.790724
17740 354780 1579680.488859 1605107.746337
17741 354800 1579787.807927 1605215.702567
17742 354820 1579895.127629 1605323.659414
17743 354840 1580002.447965 1605431.616880
17744 354860 1580109.768936 1605539.574962
17745 354880 1580217.090540 1605647.533662
17746 354900 1580324.412778 1605755.492980
17747 354920 1580431.735650 1605863.452915
17748 354940 1580539.059156 1605971.413467
17749 354960 1580646.383296 1606079.374637
17750 354980 1580753.708070 1606187.336424
17751 355000 1580861.033478 1606295.298828
17752 355020 1580968.359519 1606403.261849
17753 355040 1581075.686194 1606511.225488
17754 355060 1581183.013503 1606619.189743
17755 355080 1581290.341445 1606727.154616
17756 355100 1581397.670021 1606835.120106
17757 355120 1581504.999230 1606943.086212
17758 355140 1581612.329073 1607051.052936
17759 355160 1581719.659549 1607159.020277
17760 355180 1581826.990659 1607266.988234
17761 355200 1581934.322402 1607374.956809
17762 355220 1582041.654779 1607482.926000
17763 355240 1582148.987789 1607590.895808
17764 355260 1582256.321432 1607698.866233
17765 355280 1582363.655708 1607806.837274
17766 355300 1582470.990618 1607914.808933
17767 355320 1582578.326161 1608022.781207
17768 355340 1582685.662337 1608130.754099
17769 355360 1582792.999145 1608238.727607
17770 355380 1582900.336587 1608346.701731
17771 355400 1583007.674662 1608454.676473
17772 355420 1583115.013370 1608562.651830
17773 355440 1583222.352711 1608670.627804
17774 355460 1583329.692685 1608778.604394
17775 355480 1583437.033292 1608886.581601
17776 355500 1583544.374531 1608994.559424
17777 355520 1583651.716403 1609102.537863
17778 355540 1583759.058908 1609210.516919
17779 355560 1583866.402046 1609318.496590
17780 355580 1583973.745816 1609426.476878
17781 355600 1584081.090219 1609534.457782
17782 355620 1584188.435255 1609642.439302
17783 355640 1584295.780923 1609750.421438
17784 355660 1584403.127224 1609858.404190
17785 355680 1584510.474157 1609966.387558
17786 355700 1584617.821722 1610074.371542
17787 355720 1584725.169920 1610182.356142
17788 355740 1584832.518750 1610290.341358
17789 355760 1584939.868213 1610398.327190
17790 355780 1585047.218308 1610506.313637
17791 355800 1585154.569035 1610614.300700
17792 355820 1585261.920394 1610722.288379
17793 355840 1585369.272386 1610830.276674
17794 355860 1585476.625009 1610938.265584
17795 355880 1585583.978265 1611046.255110
17796 355900 1585691.332153 1611154.245251
17797 355920 1585798.686672 1611262.236008
17798 355940 1585906.041824 1611370.227380
17799 355960 1586013.397608 1611478.219368
17800 355980 1586120.754023 1611586.211972
17801 356000 1586228.111071 1611694.205190
17802 356020 1586335.468750 1611802.199024
17803 356040 1586442.827061 1611910.193474
17804 356060 1586550.186004 1612018.188538
17805 356080 1586657.545578 1612126.184218
17806 356100 1586764.905784 1612234.180513
17807 356120 1586872.266622 1612342.177424
17808 356140 1586979.628092 1612450.174949
17809 356160 1587086.990192 1612558.173090
17810 356180 1587194.352925 1612666.171845
17811 356200 1587301.716289 1612774.171216
17812 356220 1587409.080284 1612882.171201
17813 356240 1587516.444911 1612990.171802
17814 356260 1587623.810169 1613098.173017
17815 356280 1587731.176058 1613206.174847
17816 356300 1587838.542579 1613314.177292
17817 356320 1587945.909731 1613422.180352
17818 356340 1588053.277514 1613530.184027
17819 356360 1588160.645929 1613638.188316
17820 356380 1588268.014974 1613746.193220
17821 356400 1588375.384651 1613854.198739
17822 356420 1588482.754958 1613962.204872
17823 356440 1588590.125897 1614070.211620
17824 356460 1588697.497467 1614178.218983
17825 356480 1588804.869667 1614286.226960
17826 356500 1588912.242499 1614394.235551
17827 356520 1589019.615961 1614502.244757
17828 356540 1589126.990054 1614610.254577
17829 356560 1589234.364778 1614718.265012
17830 356580 1589341.740133 1614826.276061
17831 356600 1589449.116118 1614934.287724
17832 356620 1589556.492734 1615042.300001
17833 356640 1589663.869981 1615150.312893
17834 356660 1589771.247858 1615258.326399
17835 356680 1589878.626366 1615366.340519
17836 356700 1589986.005505 1615474.355253
17837 356720 1590093.385274 1615582.370601
17838 356740 1590200.765673 1615690.386563
17839 356760 1590308.146703 1615798.403139
17840 356780 1590415.528363 1615906.420329
17841 356800 1590522.910654 1616014.438133
17842 356820 1590630.293574 1616122.456551
17843 356840 1590737.677125 1616230.475583
17844 356860 1590845.061307 1616338.495229
17845 356880 1590952.446118 1616446.515488
17846 356900 1591059.831560 1616554.536361
17847 356920 1591167.217631 1616662.557848
17848 356940 1591274.604333 1616770.579948
17849 356960 1591381.991665 1616878.602662
17850 356980 1591489.379627 1616986.625990
17851 357000 1591596.768219 1617094.649931
17852 357020 1591704.157440 1617202.674486
17853 357040 1591811.547292 1617310.699654
17854 357060 1591918.937773 1617418.725435
17855 357080 1592026.328884 1617526.751830
17856 357100 1592133.720625 1617634.778839
17857 357120 1592241.112996 1617742.806461
17858 357140 1592348.505996 1617850.834696
17859 357160 1592455.899626 1617958.863544
17860 357180 1592563.293886 1618066.893005
17861 357200 1592670.688775 1618174.923080
17862 357220 1592778.084294 1618282.953768
17863 357240 1592885.480442 1618390.985069
17864 357260 1592992.877220 1618499.016983
17865 357280 1593100.274627 1618607.049510
17866 357300 1593207.672663 1618715.082650
17867 357320 1593315.071329 1618823.116403
17868 357340 1593422.470624 1618931.150769
17869 357360 1593529.870549 1619039.185748
17870 357380 1593637.271102 1619147.221339
17871 357400 1593744.672285 1619255.257544
17872 357420 1593852.074097 1619363.294361
17873 357440 1593959.476538 1619471.331791
17874 357460 1594066.879609 1619579.369834
17875 357480 1594174.283308 1619687.408489
17876 357500 1594281.687636 1619795.447757
17877 357520 1594389.092593 1619903.487638
17878 357540 1594496.498180 1620011.528131
17879 357560 1594603.904395 1620119.569237
17880 357580 1594711.311239 1620227.610955
17881 357600 1594818.718711 1620335.653286
17882 357620 1594926.126813 1620443.696229
17883 357640 1595033.535543 1620551.739784
17884 357660 1595140.944902 1620659.783952
17885 357680 1595248.354890 1620767.828732
17886 357700 1595355.765506 1620875.874125
17887 357720 1595463.176751 1620983.920129
17888 357740 1595570.588624 1621091.966746
17889 357760 1595678.001126 1621200.013975
17890 357780 1595785.414256 1621308.061816
17891 357800 1595892.828015 1621416.110269
17892 357820 1596000.242402 1621524.159335
17893 357840 1596107.657418 1621632.209012
17894 357860 1596215.073062 1621740.259301
17895 357880 1596322.489334 1621848.310202
17896 357900 1596429.906235 1621956.361715
17897 357920 1596537.323763 1622064.413840
17898 357940 1596644.741920 1622172.466577
17899 357960 1596752.160705 1622280.519926
17900 357980 1596859.580118 1622388.573886
17901 358000 1596967.000159 1622496.628458
17902 358020 1597074.420828 1622604.683642
17903 358040 1597181.842126 1622712.739438
17904 358060 1597289.264051 1622820.795845
17905 358080 1597396.686604 1622928.852863
17906 358100 1597504.109784 1623036.910493
17907 358120 1597611.533593 1623144.968735
17908 358140 1597718.958030 1623253.027588
17909 358160 1597826.383094 1623361.087053
17910 358180 1597933.808786 1623469.147129
17911 358200 1598041.235105 1623577.207816
17912 358220 1598148.662053 1623685.269115
17913 358240 1598256.089628 1623793.331025
17914 358260 1598363.517830 1623901.393546
17915 358280 1598470.946660 1624009.456678
17916 358300 1598578.376118 1624117.520422
17917 358320 1598685.806203 1624225.584777
17918 358340 1598793.236915 1624333.649742
17919 358360 1598900.668255 1624441.715319
17920 358380 1599008.100222 1624549.781507
17921 358400 1599115.532816 1624657.848306
17922 358420 1599222.966038 1624765.915716
17923 358440 1599330.399887 1624873.983737
17924 358460 1599437.834363 1624982.052369
17925 358480 1599545.269466 1625090.121611
17926 358500 1599652.705197 1625198.191465
17927 358520 1599760.141554 1625306.261929
17928 358540 1599867.578539 1625414.333004
17929 358560 1599975.016150 1625522.404689
17930 358580 1600082.454389 1625630.476985
17931 358600 1600189.893254 1625738.549892
17932 358620 1600297.332746 1625846.623410
17933 358640 1600404.772865 1625954.697538
17934 358660 1600512.213611 1626062.772277
17935 358680 1600619.654984 1626170.847626
17936 358700 1600727.096984 1626278.923585
17937 358720 1600834.539610 1626387.000155
17938 358740 1600941.982863 1626495.077336
17939 358760 1601049.426742 1626603.155126
17940 358780 1601156.871248 1626711.233527
17941 358800 1601264.316381 1626819.312538
17942 358820 1601371.762140 1626927.392160
17943 358840 1601479.208526 1627035.472392
17944 358860 1601586.655538 1627143.553233
17945 358880 1601694.103176 1627251.634685
17946 358900 1601801.551441 1627359.716748
17947 358920 1601909.000332 1627467.799420
17948 358940 1602016.449850 1627575.882702
17949 358960 1602123.899993 1627683.966594
17950 358980 1602231.350763 1627792.051096
17951 359000 1602338.802160 1627900.136208
17952 359020 1602446.254182 1628008.221930
17953 359040 1602553.706830 1628116.308262
17954 359060 1602661.160105 1628224.395203
17955 359080 1602768.614005 1628332.482754
17956 359100 1602876.068531 1628440.570915
17957 359120 1602983.523684 1628548.659686
17958 359140 1603090.979462 1628656.749066
17959 359160 1603198.435866 1628764.839056
17960 359180 1603305.892896 1628872.929656
17961 359200 1603413.350552 1628981.020865
17962 359220 1603520.808834 1629089.112683
17963 359240 1603628.267741 1629197.205111
17964 359260 1603735.727274 1629305.298149
17965 359280 1603843.187433 1629413.391796
17966 359300 1603950.648217 1629521.486052
17967 359320 1604058.109627 1629629.580918
17968 359340 1604165.571662 1629737.676393
17969 359360 1604273.034323 1629845.772477
17970 359380 1604380.497610 1629953.869170
17971 359400 1604487.961521 1630061.966473
17972 359420 1604595.426059 1630170.064385
17973 359440 1604702.891221 1630278.162905
17974 359460 1604810.357009 1630386.262035
17975 359480 1604917.823422 1630494.361774
17976 359500 1605025.290460 1630602.462122
17977 359520 1605132.758124 1630710.563079
17978 359540 1605240.226413 1630818.664645
17979 359560 1605347.695327 1630926.766820
17980 359580 1605455.164866 1631034.869603
17981 359600 1605562.635030 1631142.972996
17982 359620 1605670.105819 1631251.076997
17983 359640 1605777.577233 1631359.181607
17984 359660 1605885.049272 1631467.286826
17985 359680 1605992.521936 1631575.392653
17986 359700 1606099.995224 1631683.499089
17987 359720 1606207.469138 1631791.606134
17988 359740 1606314.943676 1631899.713787
17989 359760 1606422.418839 1632007.822049
17990 359780 1606529.894627 1632115.930919
17991 359800 1606637.371040 1632224.040398
17992 359820 1606744.848077 1632332.150485
17993 359840 1606852.325739 1632440.261180
17994 359860 1606959.804025 1632548.372484
17995 359880 1607067.282936 1632656.484397
17996 359900 1607174.762471 1632764.596917
17997 359920 1607282.242631 1632872.710046
17998 359940 1607389.723415 1632980.823783
17999 359960 1607497.204824 1633088.938128
18000 359980 1607604.686857 1633197.053081
18001 360000 1607712.169514 1633305.168643

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