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 40 of 40 · 500/page · 20000 rows
# nmargin_tracedmargin_measured
19502 390020 1769727.203252 1796252.641725
19503 390040 1769835.583837 1796361.632283
19504 390060 1769943.964995 1796470.623399
19505 390080 1770052.346726 1796579.615074
19506 390100 1770160.729030 1796688.607307
19507 390120 1770269.111906 1796797.600098
19508 390140 1770377.495355 1796906.593448
19509 390160 1770485.879376 1797015.587356
19510 390180 1770594.263971 1797124.581822
19511 390200 1770702.649137 1797233.576846
19512 390220 1770811.034877 1797342.572428
19513 390240 1770919.421188 1797451.568569
19514 390260 1771027.808073 1797560.565268
19515 390280 1771136.195529 1797669.562524
19516 390300 1771244.583559 1797778.560339
19517 390320 1771352.972160 1797887.558712
19518 390340 1771461.361334 1797996.557643
19519 390360 1771569.751080 1798105.557131
19520 390380 1771678.141399 1798214.557178
19521 390400 1771786.532290 1798323.557783
19522 390420 1771894.923753 1798432.558945
19523 390440 1772003.315788 1798541.560665
19524 390460 1772111.708395 1798650.562943
19525 390480 1772220.101575 1798759.565779
19526 390500 1772328.495326 1798868.569173
19527 390520 1772436.889650 1798977.573124
19528 390540 1772545.284546 1799086.577633
19529 390560 1772653.680014 1799195.582699
19530 390580 1772762.076053 1799304.588323
19531 390600 1772870.472665 1799413.594505
19532 390620 1772978.869849 1799522.601245
19533 390640 1773087.267604 1799631.608541
19534 390660 1773195.665932 1799740.616396
19535 390680 1773304.064831 1799849.624808
19536 390700 1773412.464302 1799958.633777
19537 390720 1773520.864345 1800067.643303
19538 390740 1773629.264959 1800176.653387
19539 390760 1773737.666145 1800285.664029
19540 390780 1773846.067903 1800394.675227
19541 390800 1773954.470232 1800503.686983
19542 390820 1774062.873134 1800612.699297
19543 390840 1774171.276606 1800721.712167
19544 390860 1774279.680650 1800830.725595
19545 390880 1774388.085266 1800939.739580
19546 390900 1774496.490453 1801048.754121
19547 390920 1774604.896212 1801157.769220
19548 390940 1774713.302542 1801266.784877
19549 390960 1774821.709443 1801375.801090
19550 390980 1774930.116916 1801484.817860
19551 391000 1775038.524960 1801593.835187
19552 391020 1775146.933576 1801702.853071
19553 391040 1775255.342762 1801811.871512
19554 391060 1775363.752520 1801920.890510
19555 391080 1775472.162849 1802029.910065
19556 391100 1775580.573750 1802138.930176
19557 391120 1775688.985221 1802247.950845
19558 391140 1775797.397263 1802356.972070
19559 391160 1775905.809877 1802465.993852
19560 391180 1776014.223062 1802575.016190
19561 391200 1776122.636817 1802684.039086
19562 391220 1776231.051144 1802793.062538
19563 391240 1776339.466041 1802902.086546
19564 391260 1776447.881510 1803011.111111
19565 391280 1776556.297549 1803120.136233
19566 391300 1776664.714159 1803229.161911
19567 391320 1776773.131340 1803338.188146
19568 391340 1776881.549092 1803447.214937
19569 391360 1776989.967415 1803556.242285
19570 391380 1777098.386308 1803665.270189
19571 391400 1777206.805772 1803774.298649
19572 391420 1777315.225807 1803883.327666
19573 391440 1777423.646412 1803992.357239
19574 391460 1777532.067588 1804101.387368
19575 391480 1777640.489334 1804210.418054
19576 391500 1777748.911651 1804319.449296
19577 391520 1777857.334539 1804428.481094
19578 391540 1777965.757997 1804537.513448
19579 391560 1778074.182025 1804646.546359
19580 391580 1778182.606624 1804755.579825
19581 391600 1778291.031793 1804864.613848
19582 391620 1778399.457533 1804973.648426
19583 391640 1778507.883843 1805082.683561
19584 391660 1778616.310723 1805191.719251
19585 391680 1778724.738174 1805300.755498
19586 391700 1778833.166194 1805409.792300
19587 391720 1778941.594785 1805518.829659
19588 391740 1779050.023946 1805627.867573
19589 391760 1779158.453678 1805736.906043
19590 391780 1779266.883979 1805845.945069
19591 391800 1779375.314850 1805954.984650
19592 391820 1779483.746292 1806064.024788
19593 391840 1779592.178303 1806173.065481
19594 391860 1779700.610885 1806282.106730
19595 391880 1779809.044036 1806391.148534
19596 391900 1779917.477757 1806500.190894
19597 391920 1780025.912048 1806609.233810
19598 391940 1780134.346909 1806718.277281
19599 391960 1780242.782340 1806827.321308
19600 391980 1780351.218341 1806936.365890
19601 392000 1780459.654911 1807045.411028
19602 392020 1780568.092051 1807154.456721
19603 392040 1780676.529761 1807263.502969
19604 392060 1780784.968041 1807372.549773
19605 392080 1780893.406890 1807481.597133
19606 392100 1781001.846309 1807590.645047
19607 392120 1781110.286297 1807699.693517
19608 392140 1781218.726855 1807808.742542
19609 392160 1781327.167982 1807917.792123
19610 392180 1781435.609679 1808026.842258
19611 392200 1781544.051945 1808135.892949
19612 392220 1781652.494781 1808244.944195
19613 392240 1781760.938186 1808353.995996
19614 392260 1781869.382160 1808463.048352
19615 392280 1781977.826704 1808572.101264
19616 392300 1782086.271817 1808681.154730
19617 392320 1782194.717500 1808790.208751
19618 392340 1782303.163751 1808899.263327
19619 392360 1782411.610572 1809008.318458
19620 392380 1782520.057962 1809117.374144
19621 392400 1782628.505921 1809226.430385
19622 392420 1782736.954449 1809335.487181
19623 392440 1782845.403546 1809444.544532
19624 392460 1782953.853213 1809553.602437
19625 392480 1783062.303448 1809662.660897
19626 392500 1783170.754252 1809771.719912
19627 392520 1783279.205626 1809880.779481
19628 392540 1783387.657568 1809989.839605
19629 392560 1783496.110079 1810098.900284
19630 392580 1783604.563159 1810207.961518
19631 392600 1783713.016808 1810317.023306
19632 392620 1783821.471025 1810426.085648
19633 392640 1783929.925812 1810535.148545
19634 392660 1784038.381167 1810644.211997
19635 392680 1784146.837090 1810753.276003
19636 392700 1784255.293583 1810862.340563
19637 392720 1784363.750644 1810971.405678
19638 392740 1784472.208274 1811080.471347
19639 392760 1784580.666472 1811189.537570
19640 392780 1784689.125239 1811298.604348
19641 392800 1784797.584574 1811407.671680
19642 392820 1784906.044478 1811516.739566
19643 392840 1785014.504950 1811625.808007
19644 392860 1785122.965991 1811734.877002
19645 392880 1785231.427600 1811843.946550
19646 392900 1785339.889778 1811953.016653
19647 392920 1785448.352523 1812062.087311
19648 392940 1785556.815837 1812171.158522
19649 392960 1785665.279720 1812280.230287
19650 392980 1785773.744170 1812389.302606
19651 393000 1785882.209189 1812498.375479
19652 393020 1785990.674776 1812607.448906
19653 393040 1786099.140931 1812716.522887
19654 393060 1786207.607655 1812825.597422
19655 393080 1786316.074946 1812934.672511
19656 393100 1786424.542805 1813043.748153
19657 393120 1786533.011233 1813152.824350
19658 393140 1786641.480228 1813261.901100
19659 393160 1786749.949792 1813370.978404
19660 393180 1786858.419923 1813480.056261
19661 393200 1786966.890622 1813589.134672
19662 393220 1787075.361889 1813698.213637
19663 393240 1787183.833724 1813807.293156
19664 393260 1787292.306127 1813916.373228
19665 393280 1787400.779097 1814025.453854
19666 393300 1787509.252636 1814134.535033
19667 393320 1787617.726741 1814243.616765
19668 393340 1787726.201415 1814352.699052
19669 393360 1787834.676656 1814461.781891
19670 393380 1787943.152465 1814570.865284
19671 393400 1788051.628842 1814679.949230
19672 393420 1788160.105786 1814789.033730
19673 393440 1788268.583297 1814898.118783
19674 393460 1788377.061376 1815007.204389
19675 393480 1788485.540023 1815116.290549
19676 393500 1788594.019237 1815225.377262
19677 393520 1788702.499018 1815334.464528
19678 393540 1788810.979367 1815443.552347
19679 393560 1788919.460283 1815552.640719
19680 393580 1789027.941767 1815661.729645
19681 393600 1789136.423817 1815770.819123
19682 393620 1789244.906435 1815879.909155
19683 393640 1789353.389620 1815988.999739
19684 393660 1789461.873373 1816098.090877
19685 393680 1789570.357692 1816207.182567
19686 393700 1789678.842579 1816316.274811
19687 393720 1789787.328033 1816425.367607
19688 393740 1789895.814053 1816534.460956
19689 393760 1790004.300641 1816643.554858
19690 393780 1790112.787796 1816752.649313
19691 393800 1790221.275518 1816861.744321
19692 393820 1790329.763806 1816970.839881
19693 393840 1790438.252662 1817079.935994
19694 393860 1790546.742085 1817189.032660
19695 393880 1790655.232074 1817298.129878
19696 393900 1790763.722630 1817407.227649
19697 393920 1790872.213753 1817516.325973
19698 393940 1790980.705443 1817625.424849
19699 393960 1791089.197699 1817734.524278
19700 393980 1791197.690522 1817843.624259
19701 394000 1791306.183912 1817952.724793
19702 394020 1791414.677869 1818061.825880
19703 394040 1791523.172392 1818170.927518
19704 394060 1791631.667481 1818280.029709
19705 394080 1791740.163138 1818389.132453
19706 394100 1791848.659360 1818498.235748
19707 394120 1791957.156149 1818607.339597
19708 394140 1792065.653505 1818716.443997
19709 394160 1792174.151427 1818825.548949
19710 394180 1792282.649915 1818934.654454
19711 394200 1792391.148970 1819043.760511
19712 394220 1792499.648591 1819152.867120
19713 394240 1792608.148779 1819261.974282
19714 394260 1792716.649532 1819371.081995
19715 394280 1792825.150852 1819480.190260
19716 394300 1792933.652738 1819589.299078
19717 394320 1793042.155190 1819698.408447
19718 394340 1793150.658209 1819807.518369
19719 394360 1793259.161793 1819916.628842
19720 394380 1793367.665944 1820025.739868
19721 394400 1793476.170660 1820134.851445
19722 394420 1793584.675943 1820243.963574
19723 394440 1793693.181792 1820353.076255
19724 394460 1793801.688206 1820462.189487
19725 394480 1793910.195187 1820571.303272
19726 394500 1794018.702733 1820680.417608
19727 394520 1794127.210846 1820789.532496
19728 394540 1794235.719524 1820898.647936
19729 394560 1794344.228767 1821007.763927
19730 394580 1794452.738577 1821116.880470
19731 394600 1794561.248953 1821225.997564
19732 394620 1794669.759894 1821335.115210
19733 394640 1794778.271401 1821444.233408
19734 394660 1794886.783473 1821553.352157
19735 394680 1794995.296111 1821662.471457
19736 394700 1795103.809315 1821771.591309
19737 394720 1795212.323084 1821880.711713
19738 394740 1795320.837419 1821989.832668
19739 394760 1795429.352319 1822098.954174
19740 394780 1795537.867785 1822208.076231
19741 394800 1795646.383816 1822317.198840
19742 394820 1795754.900412 1822426.322000
19743 394840 1795863.417574 1822535.445711
19744 394860 1795971.935301 1822644.569974
19745 394880 1796080.453594 1822753.694787
19746 394900 1796188.972452 1822862.820152
19747 394920 1796297.491875 1822971.946068
19748 394940 1796406.011863 1823081.072535
19749 394960 1796514.532417 1823190.199553
19750 394980 1796623.053535 1823299.327122
19751 395000 1796731.575219 1823408.455242
19752 395020 1796840.097468 1823517.583913
19753 395040 1796948.620282 1823626.713135
19754 395060 1797057.143661 1823735.842908
19755 395080 1797165.667605 1823844.973232
19756 395100 1797274.192114 1823954.104106
19757 395120 1797382.717188 1824063.235532
19758 395140 1797491.242827 1824172.367508
19759 395160 1797599.769030 1824281.500035
19760 395180 1797708.295799 1824390.633113
19761 395200 1797816.823132 1824499.766741
19762 395220 1797925.351030 1824608.900921
19763 395240 1798033.879493 1824718.035650
19764 395260 1798142.408521 1824827.170931
19765 395280 1798250.938113 1824936.306762
19766 395300 1798359.468270 1825045.443143
19767 395320 1798467.998992 1825154.580075
19768 395340 1798576.530278 1825263.717558
19769 395360 1798685.062129 1825372.855591
19770 395380 1798793.594544 1825481.994174
19771 395400 1798902.127524 1825591.133308
19772 395420 1799010.661069 1825700.272992
19773 395440 1799119.195177 1825809.413227
19774 395460 1799227.729851 1825918.554012
19775 395480 1799336.265088 1826027.695347
19776 395500 1799444.800890 1826136.837232
19777 395520 1799553.337257 1826245.979668
19778 395540 1799661.874187 1826355.122654
19779 395560 1799770.411682 1826464.266190
19780 395580 1799878.949741 1826573.410276
19781 395600 1799987.488365 1826682.554913
19782 395620 1800096.027552 1826791.700099
19783 395640 1800204.567304 1826900.845836
19784 395660 1800313.107620 1827009.992122
19785 395680 1800421.648500 1827119.138958
19786 395700 1800530.189944 1827228.286345
19787 395720 1800638.731952 1827337.434281
19788 395740 1800747.274524 1827446.582768
19789 395760 1800855.817660 1827555.731804
19790 395780 1800964.361359 1827664.881390
19791 395800 1801072.905623 1827774.031526
19792 395820 1801181.450451 1827883.182211
19793 395840 1801289.995842 1827992.333447
19794 395860 1801398.541798 1828101.485232
19795 395880 1801507.088317 1828210.637567
19796 395900 1801615.635400 1828319.790451
19797 395920 1801724.183046 1828428.943885
19798 395940 1801832.731256 1828538.097869
19799 395960 1801941.280030 1828647.252402
19800 395980 1802049.829368 1828756.407485
19801 396000 1802158.379269 1828865.563117
19802 396020 1802266.929734 1828974.719299
19803 396040 1802375.480762 1829083.876031
19804 396060 1802484.032354 1829193.033311
19805 396080 1802592.584509 1829302.191142
19806 396100 1802701.137228 1829411.349521
19807 396120 1802809.690510 1829520.508450
19808 396140 1802918.244355 1829629.667928
19809 396160 1803026.798764 1829738.827956
19810 396180 1803135.353736 1829847.988533
19811 396200 1803243.909272 1829957.149659
19812 396220 1803352.465370 1830066.311334
19813 396240 1803461.022032 1830175.473558
19814 396260 1803569.579258 1830284.636332
19815 396280 1803678.137046 1830393.799655
19816 396300 1803786.695397 1830502.963526
19817 396320 1803895.254312 1830612.127947
19818 396340 1804003.813790 1830721.292917
19819 396360 1804112.373830 1830830.458436
19820 396380 1804220.934434 1830939.624503
19821 396400 1804329.495601 1831048.791120
19822 396420 1804438.057330 1831157.958286
19823 396440 1804546.619623 1831267.126000
19824 396460 1804655.182479 1831376.294264
19825 396480 1804763.745897 1831485.463076
19826 396500 1804872.309878 1831594.632437
19827 396520 1804980.874422 1831703.802346
19828 396540 1805089.439529 1831812.972805
19829 396560 1805198.005199 1831922.143812
19830 396580 1805306.571431 1832031.315368
19831 396600 1805415.138226 1832140.487472
19832 396620 1805523.705583 1832249.660125
19833 396640 1805632.273504 1832358.833327
19834 396660 1805740.841986 1832468.007077
19835 396680 1805849.411032 1832577.181376
19836 396700 1805957.980640 1832686.356223
19837 396720 1806066.550810 1832795.531619
19838 396740 1806175.121543 1832904.707563
19839 396760 1806283.692838 1833013.884055
19840 396780 1806392.264696 1833123.061096
19841 396800 1806500.837116 1833232.238685
19842 396820 1806609.410099 1833341.416823
19843 396840 1806717.983644 1833450.595509
19844 396860 1806826.557751 1833559.774743
19845 396880 1806935.132420 1833668.954525
19846 396900 1807043.707652 1833778.134856
19847 396920 1807152.283446 1833887.315735
19848 396940 1807260.859802 1833996.497162
19849 396960 1807369.436720 1834105.679137
19850 396980 1807478.014200 1834214.861660
19851 397000 1807586.592242 1834324.044731
19852 397020 1807695.170847 1834433.228350
19853 397040 1807803.750013 1834542.412517
19854 397060 1807912.329741 1834651.597232
19855 397080 1808020.910032 1834760.782495
19856 397100 1808129.490884 1834869.968306
19857 397120 1808238.072298 1834979.154665
19858 397140 1808346.654274 1835088.341572
19859 397160 1808455.236812 1835197.529026
19860 397180 1808563.819911 1835306.717029
19861 397200 1808672.403573 1835415.905579
19862 397220 1808780.987796 1835525.094677
19863 397240 1808889.572581 1835634.284322
19864 397260 1808998.157927 1835743.474515
19865 397280 1809106.743836 1835852.665256
19866 397300 1809215.330306 1835961.856545
19867 397320 1809323.917337 1836071.048381
19868 397340 1809432.504930 1836180.240764
19869 397360 1809541.093085 1836289.433695
19870 397380 1809649.681801 1836398.627174
19871 397400 1809758.271078 1836507.821200
19872 397420 1809866.860917 1836617.015774
19873 397440 1809975.451317 1836726.210895
19874 397460 1810084.042279 1836835.406563
19875 397480 1810192.633802 1836944.602779
19876 397500 1810301.225887 1837053.799542
19877 397520 1810409.818532 1837162.996852
19878 397540 1810518.411739 1837272.194710
19879 397560 1810627.005508 1837381.393115
19880 397580 1810735.599837 1837490.592067
19881 397600 1810844.194728 1837599.791566
19882 397620 1810952.790179 1837708.991612
19883 397640 1811061.386192 1837818.192206
19884 397660 1811169.982766 1837927.393346
19885 397680 1811278.579901 1838036.595034
19886 397700 1811387.177597 1838145.797269
19887 397720 1811495.775854 1838255.000050
19888 397740 1811604.374672 1838364.203379
19889 397760 1811712.974051 1838473.407255
19890 397780 1811821.573991 1838582.611677
19891 397800 1811930.174491 1838691.816647
19892 397820 1812038.775553 1838801.022163
19893 397840 1812147.377175 1838910.228226
19894 397860 1812255.979358 1839019.434836
19895 397880 1812364.582102 1839128.641992
19896 397900 1812473.185406 1839237.849696
19897 397920 1812581.789272 1839347.057946
19898 397940 1812690.393698 1839456.266743
19899 397960 1812798.998684 1839565.476086
19900 397980 1812907.604231 1839674.685976
19901 398000 1813016.210339 1839783.896413
19902 398020 1813124.817007 1839893.107396
19903 398040 1813233.424236 1840002.318926
19904 398060 1813342.032025 1840111.531002
19905 398080 1813450.640375 1840220.743625
19906 398100 1813559.249285 1840329.956794
19907 398120 1813667.858755 1840439.170510
19908 398140 1813776.468786 1840548.384772
19909 398160 1813885.079377 1840657.599581
19910 398180 1813993.690528 1840766.814935
19911 398200 1814102.302240 1840876.030836
19912 398220 1814210.914512 1840985.247284
19913 398240 1814319.527344 1841094.464277
19914 398260 1814428.140736 1841203.681817
19915 398280 1814536.754689 1841312.899903
19916 398300 1814645.369201 1841422.118535
19917 398320 1814753.984274 1841531.337713
19918 398340 1814862.599907 1841640.557438
19919 398360 1814971.216099 1841749.777708
19920 398380 1815079.832852 1841858.998525
19921 398400 1815188.450165 1841968.219887
19922 398420 1815297.068037 1842077.441796
19923 398440 1815405.686470 1842186.664250
19924 398460 1815514.305462 1842295.887251
19925 398480 1815622.925015 1842405.110797
19926 398500 1815731.545127 1842514.334889
19927 398520 1815840.165798 1842623.559527
19928 398540 1815948.787030 1842732.784711
19929 398560 1816057.408821 1842842.010440
19930 398580 1816166.031172 1842951.236716
19931 398600 1816274.654083 1843060.463537
19932 398620 1816383.277553 1843169.690903
19933 398640 1816491.901583 1843278.918816
19934 398660 1816600.526173 1843388.147274
19935 398680 1816709.151322 1843497.376277
19936 398700 1816817.777030 1843606.605827
19937 398720 1816926.403298 1843715.835921
19938 398740 1817035.030126 1843825.066562
19939 398760 1817143.657513 1843934.297748
19940 398780 1817252.285459 1844043.529479
19941 398800 1817360.913965 1844152.761756
19942 398820 1817469.543030 1844261.994578
19943 398840 1817578.172654 1844371.227945
19944 398860 1817686.802837 1844480.461858
19945 398880 1817795.433580 1844589.696316
19946 398900 1817904.064882 1844698.931319
19947 398920 1818012.696743 1844808.166868
19948 398940 1818121.329164 1844917.402962
19949 398960 1818229.962143 1845026.639601
19950 398980 1818338.595682 1845135.876786
19951 399000 1818447.229780 1845245.114515
19952 399020 1818555.864436 1845354.352789
19953 399040 1818664.499652 1845463.591609
19954 399060 1818773.135427 1845572.830974
19955 399080 1818881.771760 1845682.070884
19956 399100 1818990.408653 1845791.311338
19957 399120 1819099.046104 1845900.552338
19958 399140 1819207.684114 1846009.793883
19959 399160 1819316.322683 1846119.035972
19960 399180 1819424.961811 1846228.278607
19961 399200 1819533.601498 1846337.521786
19962 399220 1819642.241743 1846446.765510
19963 399240 1819750.882547 1846556.009779
19964 399260 1819859.523910 1846665.254593
19965 399280 1819968.165831 1846774.499951
19966 399300 1820076.808311 1846883.745854
19967 399320 1820185.451350 1846992.992302
19968 399340 1820294.094947 1847102.239294
19969 399360 1820402.739103 1847211.486831
19970 399380 1820511.383817 1847320.734913
19971 399400 1820620.029089 1847429.983539
19972 399420 1820728.674920 1847539.232710
19973 399440 1820837.321310 1847648.482425
19974 399460 1820945.968258 1847757.732685
19975 399480 1821054.615764 1847866.983489
19976 399500 1821163.263828 1847976.234838
19977 399520 1821271.912451 1848085.486731
19978 399540 1821380.561632 1848194.739168
19979 399560 1821489.211371 1848303.992150
19980 399580 1821597.861669 1848413.245676
19981 399600 1821706.512524 1848522.499746
19982 399620 1821815.163938 1848631.754361
19983 399640 1821923.815910 1848741.009520
19984 399660 1822032.468440 1848850.265223
19985 399680 1822141.121528 1848959.521470
19986 399700 1822249.775174 1849068.778261
19987 399720 1822358.429378 1849178.035596
19988 399740 1822467.084140 1849287.293476
19989 399760 1822575.739460 1849396.551899
19990 399780 1822684.395337 1849505.810867
19991 399800 1822793.051773 1849615.070378
19992 399820 1822901.708766 1849724.330434
19993 399840 1823010.366318 1849833.591033
19994 399860 1823119.024427 1849942.852176
19995 399880 1823227.683093 1850052.113863
19996 399900 1823336.342318 1850161.376094
19997 399920 1823445.002100 1850270.638869
19998 399940 1823553.662440 1850379.902188
19999 399960 1823662.323337 1850489.166050
20000 399980 1823770.984792 1850598.430456
20001 400000 1823879.646805 1850707.695406

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