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 38 of 40 · 500/page · 20000 rows next →
# nmargin_tracedmargin_measured
18502 370020 1661638.712741 1687546.786953
18503 370040 1661746.504180 1687655.203327
18504 370060 1661854.296226 1687763.620291
18505 370080 1661962.088877 1687872.037847
18506 370100 1662069.882135 1687980.455992
18507 370120 1662177.675999 1688088.874728
18508 370140 1662285.470468 1688197.294055
18509 370160 1662393.265543 1688305.713972
18510 370180 1662501.061225 1688414.134479
18511 370200 1662608.857512 1688522.555576
18512 370220 1662716.654405 1688630.977264
18513 370240 1662824.451904 1688739.399542
18514 370260 1662932.250008 1688847.822410
18515 370280 1663040.048718 1688956.245868
18516 370300 1663147.848034 1689064.669917
18517 370320 1663255.647955 1689173.094555
18518 370340 1663363.448482 1689281.519784
18519 370360 1663471.249615 1689389.945602
18520 370380 1663579.051353 1689498.372011
18521 370400 1663686.853696 1689606.799009
18522 370420 1663794.656645 1689715.226597
18523 370440 1663902.460200 1689823.654776
18524 370460 1664010.264360 1689932.083544
18525 370480 1664118.069125 1690040.512902
18526 370500 1664225.874495 1690148.942849
18527 370520 1664333.680471 1690257.373387
18528 370540 1664441.487052 1690365.804514
18529 370560 1664549.294238 1690474.236231
18530 370580 1664657.102029 1690582.668537
18531 370600 1664764.910426 1690691.101433
18532 370620 1664872.719427 1690799.534919
18533 370640 1664980.529034 1690907.968994
18534 370660 1665088.339245 1691016.403659
18535 370680 1665196.150062 1691124.838913
18536 370700 1665303.961483 1691233.274756
18537 370720 1665411.773510 1691341.711189
18538 370740 1665519.586141 1691450.148212
18539 370760 1665627.399377 1691558.585823
18540 370780 1665735.213218 1691667.024024
18541 370800 1665843.027664 1691775.462815
18542 370820 1665950.842715 1691883.902194
18543 370840 1666058.658370 1691992.342163
18544 370860 1666166.474630 1692100.782721
18545 370880 1666274.291495 1692209.223868
18546 370900 1666382.108964 1692317.665604
18547 370920 1666489.927037 1692426.107929
18548 370940 1666597.745716 1692534.550843
18549 370960 1666705.564999 1692642.994346
18550 370980 1666813.384886 1692751.438439
18551 371000 1666921.205377 1692859.883120
18552 371020 1667029.026474 1692968.328390
18553 371040 1667136.848174 1693076.774249
18554 371060 1667244.670479 1693185.220696
18555 371080 1667352.493388 1693293.667733
18556 371100 1667460.316901 1693402.115358
18557 371120 1667568.141019 1693510.563572
18558 371140 1667675.965740 1693619.012375
18559 371160 1667783.791066 1693727.461766
18560 371180 1667891.616996 1693835.911746
18561 371200 1667999.443530 1693944.362315
18562 371220 1668107.270668 1694052.813472
18563 371240 1668215.098410 1694161.265217
18564 371260 1668322.926756 1694269.717552
18565 371280 1668430.755706 1694378.170474
18566 371300 1668538.585260 1694486.623985
18567 371320 1668646.415418 1694595.078085
18568 371340 1668754.246180 1694703.532773
18569 371360 1668862.077545 1694811.988049
18570 371380 1668969.909514 1694920.443913
18571 371400 1669077.742087 1695028.900366
18572 371420 1669185.575264 1695137.357407
18573 371440 1669293.409044 1695245.815036
18574 371460 1669401.243428 1695354.273253
18575 371480 1669509.078416 1695462.732058
18576 371500 1669616.914007 1695571.191452
18577 371520 1669724.750201 1695679.651433
18578 371540 1669832.586999 1695788.112003
18579 371560 1669940.424401 1695896.573160
18580 371580 1670048.262406 1696005.034906
18581 371600 1670156.101014 1696113.497239
18582 371620 1670263.940226 1696221.960160
18583 371640 1670371.780041 1696330.423670
18584 371660 1670479.620459 1696438.887767
18585 371680 1670587.461480 1696547.352451
18586 371700 1670695.303105 1696655.817724
18587 371720 1670803.145333 1696764.283584
18588 371740 1670910.988164 1696872.750032
18589 371760 1671018.831598 1696981.217067
18590 371780 1671126.675635 1697089.684691
18591 371800 1671234.520275 1697198.152901
18592 371820 1671342.365519 1697306.621700
18593 371840 1671450.211365 1697415.091085
18594 371860 1671558.057814 1697523.561059
18595 371880 1671665.904866 1697632.031619
18596 371900 1671773.752521 1697740.502768
18597 371920 1671881.600778 1697848.974503
18598 371940 1671989.449639 1697957.446826
18599 371960 1672097.299102 1698065.919736
18600 371980 1672205.149168 1698174.393234
18601 372000 1672312.999837 1698282.867319
18602 372020 1672420.851108 1698391.341991
18603 372040 1672528.702982 1698499.817250
18604 372060 1672636.555458 1698608.293096
18605 372080 1672744.408537 1698716.769529
18606 372100 1672852.262219 1698825.246550
18607 372120 1672960.116503 1698933.724157
18608 372140 1673067.971389 1699042.202352
18609 372160 1673175.826878 1699150.681133
18610 372180 1673283.682969 1699259.160502
18611 372200 1673391.539663 1699367.640457
18612 372220 1673499.396959 1699476.121000
18613 372240 1673607.254857 1699584.602129
18614 372260 1673715.113357 1699693.083845
18615 372280 1673822.972460 1699801.566147
18616 372300 1673930.832164 1699910.049037
18617 372320 1674038.692471 1700018.532513
18618 372340 1674146.553380 1700127.016576
18619 372360 1674254.414891 1700235.501225
18620 372380 1674362.277004 1700343.986461
18621 372400 1674470.139719 1700452.472284
18622 372420 1674578.003036 1700560.958693
18623 372440 1674685.866955 1700669.445689
18624 372460 1674793.731476 1700777.933271
18625 372480 1674901.596599 1700886.421440
18626 372500 1675009.462323 1700994.910195
18627 372520 1675117.328649 1701103.399536
18628 372540 1675225.195577 1701211.889464
18629 372560 1675333.063107 1701320.379978
18630 372580 1675440.931238 1701428.871079
18631 372600 1675548.799971 1701537.362765
18632 372620 1675656.669306 1701645.855038
18633 372640 1675764.539242 1701754.347897
18634 372660 1675872.409780 1701862.841342
18635 372680 1675980.280919 1701971.335373
18636 372700 1676088.152660 1702079.829991
18637 372720 1676196.025002 1702188.325194
18638 372740 1676303.897945 1702296.820983
18639 372760 1676411.771490 1702405.317359
18640 372780 1676519.645636 1702513.814320
18641 372800 1676627.520384 1702622.311867
18642 372820 1676735.395733 1702730.810000
18643 372840 1676843.271683 1702839.308719
18644 372860 1676951.148234 1702947.808024
18645 372880 1677059.025386 1703056.307914
18646 372900 1677166.903140 1703164.808391
18647 372920 1677274.781494 1703273.309453
18648 372940 1677382.660450 1703381.811100
18649 372960 1677490.540006 1703490.313333
18650 372980 1677598.420164 1703598.816152
18651 373000 1677706.300923 1703707.319557
18652 373020 1677814.182282 1703815.823547
18653 373040 1677922.064242 1703924.328122
18654 373060 1678029.946804 1704032.833283
18655 373080 1678137.829966 1704141.339030
18656 373100 1678245.713728 1704249.845361
18657 373120 1678353.598092 1704358.352279
18658 373140 1678461.483056 1704466.859781
18659 373160 1678569.368621 1704575.367869
18660 373180 1678677.254787 1704683.876542
18661 373200 1678785.141553 1704792.385800
18662 373220 1678893.028920 1704900.895644
18663 373240 1679000.916887 1705009.406073
18664 373260 1679108.805455 1705117.917087
18665 373280 1679216.694623 1705226.428686
18666 373300 1679324.584391 1705334.940870
18667 373320 1679432.474760 1705443.453639
18668 373340 1679540.365730 1705551.966993
18669 373360 1679648.257300 1705660.480932
18670 373380 1679756.149470 1705768.995456
18671 373400 1679864.042240 1705877.510565
18672 373420 1679971.935610 1705986.026259
18673 373440 1680079.829581 1706094.542537
18674 373460 1680187.724152 1706203.059401
18675 373480 1680295.619323 1706311.576849
18676 373500 1680403.515094 1706420.094882
18677 373520 1680511.411465 1706528.613500
18678 373540 1680619.308436 1706637.132702
18679 373560 1680727.206007 1706745.652489
18680 373580 1680835.104178 1706854.172861
18681 373600 1680943.002949 1706962.693817
18682 373620 1681050.902320 1707071.215357
18683 373640 1681158.802291 1707179.737483
18684 373660 1681266.702862 1707288.260192
18685 373680 1681374.604032 1707396.783486
18686 373700 1681482.505802 1707505.307365
18687 373720 1681590.408172 1707613.831828
18688 373740 1681698.311141 1707722.356875
18689 373760 1681806.214710 1707830.882507
18690 373780 1681914.118879 1707939.408723
18691 373800 1682022.023647 1708047.935523
18692 373820 1682129.929015 1708156.462907
18693 373840 1682237.834982 1708264.990875
18694 373860 1682345.741549 1708373.519428
18695 373880 1682453.648715 1708482.048565
18696 373900 1682561.556480 1708590.578286
18697 373920 1682669.464845 1708699.108590
18698 373940 1682777.373809 1708807.639479
18699 373960 1682885.283373 1708916.170952
18700 373980 1682993.193536 1709024.703009
18701 374000 1683101.104298 1709133.235649
18702 374020 1683209.015659 1709241.768874
18703 374040 1683316.927619 1709350.302682
18704 374060 1683424.840179 1709458.837075
18705 374080 1683532.753337 1709567.372051
18706 374100 1683640.667095 1709675.907610
18707 374120 1683748.581451 1709784.443754
18708 374140 1683856.496407 1709892.980481
18709 374160 1683964.411961 1710001.517792
18710 374180 1684072.328115 1710110.055686
18711 374200 1684180.244867 1710218.594164
18712 374220 1684288.162219 1710327.133225
18713 374240 1684396.080169 1710435.672870
18714 374260 1684503.998717 1710544.213099
18715 374280 1684611.917865 1710652.753911
18716 374300 1684719.837611 1710761.295306
18717 374320 1684827.757956 1710869.837285
18718 374340 1684935.678899 1710978.379847
18719 374360 1685043.600442 1711086.922992
18720 374380 1685151.522582 1711195.466721
18721 374400 1685259.445322 1711304.011033
18722 374420 1685367.368659 1711412.555928
18723 374440 1685475.292596 1711521.101406
18724 374460 1685583.217130 1711629.647468
18725 374480 1685691.142263 1711738.194112
18726 374500 1685799.067995 1711846.741340
18727 374520 1685906.994325 1711955.289151
18728 374540 1686014.921253 1712063.837544
18729 374560 1686122.848779 1712172.386521
18730 374580 1686230.776903 1712280.936081
18731 374600 1686338.705626 1712389.486223
18732 374620 1686446.634947 1712498.036949
18733 374640 1686554.564866 1712606.588257
18734 374660 1686662.495383 1712715.140148
18735 374680 1686770.426498 1712823.692622
18736 374700 1686878.358212 1712932.245678
18737 374720 1686986.290523 1713040.799318
18738 374740 1687094.223432 1713149.353540
18739 374760 1687202.156939 1713257.908345
18740 374780 1687310.091044 1713366.463732
18741 374800 1687418.025747 1713475.019702
18742 374820 1687525.961047 1713583.576254
18743 374840 1687633.896946 1713692.133389
18744 374860 1687741.833442 1713800.691106
18745 374880 1687849.770536 1713909.249406
18746 374900 1687957.708227 1714017.808289
18747 374920 1688065.646516 1714126.367753
18748 374940 1688173.585403 1714234.927800
18749 374960 1688281.524887 1714343.488430
18750 374980 1688389.464969 1714452.049641
18751 375000 1688497.405649 1714560.611435
18752 375020 1688605.346926 1714669.173811
18753 375040 1688713.288800 1714777.736770
18754 375060 1688821.231272 1714886.300310
18755 375080 1688929.174341 1714994.864433
18756 375100 1689037.118007 1715103.429138
18757 375120 1689145.062271 1715211.994424
18758 375140 1689253.007132 1715320.560293
18759 375160 1689360.952590 1715429.126744
18760 375180 1689468.898646 1715537.693777
18761 375200 1689576.845298 1715646.261391
18762 375220 1689684.792548 1715754.829588
18763 375240 1689792.740395 1715863.398366
18764 375260 1689900.688839 1715971.967726
18765 375280 1690008.637880 1716080.537668
18766 375300 1690116.587518 1716189.108192
18767 375320 1690224.537753 1716297.679298
18768 375340 1690332.488584 1716406.250985
18769 375360 1690440.440013 1716514.823254
18770 375380 1690548.392039 1716623.396104
18771 375400 1690656.344661 1716731.969536
18772 375420 1690764.297880 1716840.543550
18773 375440 1690872.251696 1716949.118145
18774 375460 1690980.206109 1717057.693322
18775 375480 1691088.161118 1717166.269080
18776 375500 1691196.116724 1717274.845419
18777 375520 1691304.072927 1717383.422340
18778 375540 1691412.029726 1717491.999843
18779 375560 1691519.987122 1717600.577926
18780 375580 1691627.945114 1717709.156591
18781 375600 1691735.903703 1717817.735837
18782 375620 1691843.862888 1717926.315665
18783 375640 1691951.822670 1718034.896073
18784 375660 1692059.783048 1718143.477063
18785 375680 1692167.744022 1718252.058634
18786 375700 1692275.705593 1718360.640786
18787 375720 1692383.667760 1718469.223519
18788 375740 1692491.630523 1718577.806833
18789 375760 1692599.593883 1718686.390729
18790 375780 1692707.557838 1718794.975205
18791 375800 1692815.522390 1718903.560262
18792 375820 1692923.487538 1719012.145900
18793 375840 1693031.453282 1719120.732119
18794 375860 1693139.419622 1719229.318918
18795 375880 1693247.386558 1719337.906299
18796 375900 1693355.354089 1719446.494260
18797 375920 1693463.322217 1719555.082802
18798 375940 1693571.290941 1719663.671925
18799 375960 1693679.260261 1719772.261628
18800 375980 1693787.230176 1719880.851912
18801 376000 1693895.200688 1719989.442777
18802 376020 1694003.171795 1720098.034222
18803 376040 1694111.143497 1720206.626248
18804 376060 1694219.115796 1720315.218854
18805 376080 1694327.088690 1720423.812040
18806 376100 1694435.062180 1720532.405808
18807 376120 1694543.036265 1720641.000155
18808 376140 1694651.010946 1720749.595083
18809 376160 1694758.986223 1720858.190591
18810 376180 1694866.962095 1720966.786680
18811 376200 1694974.938562 1721075.383349
18812 376220 1695082.915625 1721183.980598
18813 376240 1695190.893283 1721292.578427
18814 376260 1695298.871537 1721401.176837
18815 376280 1695406.850386 1721509.775827
18816 376300 1695514.829830 1721618.375397
18817 376320 1695622.809870 1721726.975546
18818 376340 1695730.790504 1721835.576276
18819 376360 1695838.771734 1721944.177586
18820 376380 1695946.753559 1722052.779476
18821 376400 1696054.735980 1722161.381946
18822 376420 1696162.718995 1722269.984996
18823 376440 1696270.702605 1722378.588626
18824 376460 1696378.686811 1722487.192835
18825 376480 1696486.671611 1722595.797625
18826 376500 1696594.657006 1722704.402994
18827 376520 1696702.642997 1722813.008943
18828 376540 1696810.629582 1722921.615471
18829 376560 1696918.616762 1723030.222580
18830 376580 1697026.604536 1723138.830268
18831 376600 1697134.592906 1723247.438535
18832 376620 1697242.581870 1723356.047382
18833 376640 1697350.571429 1723464.656809
18834 376660 1697458.561583 1723573.266816
18835 376680 1697566.552331 1723681.877401
18836 376700 1697674.543674 1723790.488567
18837 376720 1697782.535612 1723899.100311
18838 376740 1697890.528144 1724007.712635
18839 376760 1697998.521271 1724116.325539
18840 376780 1698106.514992 1724224.939022
18841 376800 1698214.509307 1724333.553084
18842 376820 1698322.504217 1724442.167725
18843 376840 1698430.499722 1724550.782946
18844 376860 1698538.495820 1724659.398745
18845 376880 1698646.492513 1724768.015124
18846 376900 1698754.489801 1724876.632082
18847 376920 1698862.487682 1724985.249619
18848 376940 1698970.486158 1725093.867736
18849 376960 1699078.485228 1725202.486431
18850 376980 1699186.484892 1725311.105705
18851 377000 1699294.485150 1725419.725559
18852 377020 1699402.486002 1725528.345991
18853 377040 1699510.487448 1725636.967002
18854 377060 1699618.489488 1725745.588592
18855 377080 1699726.492123 1725854.210761
18856 377100 1699834.495351 1725962.833508
18857 377120 1699942.499173 1726071.456835
18858 377140 1700050.503589 1726180.080740
18859 377160 1700158.508599 1726288.705224
18860 377180 1700266.514202 1726397.330286
18861 377200 1700374.520399 1726505.955927
18862 377220 1700482.527190 1726614.582147
18863 377240 1700590.534575 1726723.208945
18864 377260 1700698.542554 1726831.836322
18865 377280 1700806.551126 1726940.464278
18866 377300 1700914.560291 1727049.092812
18867 377320 1701022.570051 1727157.721924
18868 377340 1701130.580403 1727266.351615
18869 377360 1701238.591350 1727374.981884
18870 377380 1701346.602889 1727483.612732
18871 377400 1701454.615023 1727592.244157
18872 377420 1701562.627749 1727700.876162
18873 377440 1701670.641069 1727809.508744
18874 377460 1701778.654982 1727918.141904
18875 377480 1701886.669489 1728026.775643
18876 377500 1701994.684589 1728135.409960
18877 377520 1702102.700282 1728244.044855
18878 377540 1702210.716568 1728352.680328
18879 377560 1702318.733447 1728461.316380
18880 377580 1702426.750920 1728569.953009
18881 377600 1702534.768985 1728678.590216
18882 377620 1702642.787644 1728787.228001
18883 377640 1702750.806896 1728895.866364
18884 377660 1702858.826740 1729004.505305
18885 377680 1702966.847178 1729113.144824
18886 377700 1703074.868209 1729221.784921
18887 377720 1703182.889832 1729330.425596
18888 377740 1703290.912048 1729439.066848
18889 377760 1703398.934857 1729547.708678
18890 377780 1703506.958259 1729656.351086
18891 377800 1703614.982254 1729764.994071
18892 377820 1703723.006841 1729873.637634
18893 377840 1703831.032021 1729982.281775
18894 377860 1703939.057794 1730090.926493
18895 377880 1704047.084160 1730199.571789
18896 377900 1704155.111118 1730308.217662
18897 377920 1704263.138668 1730416.864113
18898 377940 1704371.166811 1730525.511141
18899 377960 1704479.195547 1730634.158746
18900 377980 1704587.224875 1730742.806929
18901 378000 1704695.254795 1730851.455689
18902 378020 1704803.285308 1730960.105027
18903 378040 1704911.316413 1731068.754942
18904 378060 1705019.348110 1731177.405434
18905 378080 1705127.380400 1731286.056503
18906 378100 1705235.413282 1731394.708150
18907 378120 1705343.446756 1731503.360374
18908 378140 1705451.480823 1731612.013174
18909 378160 1705559.515481 1731720.666552
18910 378180 1705667.550732 1731829.320507
18911 378200 1705775.586574 1731937.975039
18912 378220 1705883.623009 1732046.630148
18913 378240 1705991.660036 1732155.285834
18914 378260 1706099.697655 1732263.942097
18915 378280 1706207.735866 1732372.598936
18916 378300 1706315.774668 1732481.256353
18917 378320 1706423.814063 1732589.914346
18918 378340 1706531.854049 1732698.572917
18919 378360 1706639.894627 1732807.232063
18920 378380 1706747.935797 1732915.891787
18921 378400 1706855.977559 1733024.552087
18922 378420 1706964.019912 1733133.212964
18923 378440 1707072.062857 1733241.874418
18924 378460 1707180.106394 1733350.536448
18925 378480 1707288.150523 1733459.199055
18926 378500 1707396.195243 1733567.862238
18927 378520 1707504.240554 1733676.525998
18928 378540 1707612.286457 1733785.190335
18929 378560 1707720.332952 1733893.855247
18930 378580 1707828.380037 1734002.520737
18931 378600 1707936.427715 1734111.186802
18932 378620 1708044.475984 1734219.853444
18933 378640 1708152.524844 1734328.520662
18934 378660 1708260.574295 1734437.188457
18935 378680 1708368.624338 1734545.856827
18936 378700 1708476.674972 1734654.525774
18937 378720 1708584.726197 1734763.195297
18938 378740 1708692.778013 1734871.865396
18939 378760 1708800.830420 1734980.536072
18940 378780 1708908.883419 1735089.207323
18941 378800 1709016.937009 1735197.879151
18942 378820 1709124.991189 1735306.551554
18943 378840 1709233.045961 1735415.224534
18944 378860 1709341.101324 1735523.898089
18945 378880 1709449.157277 1735632.572220
18946 378900 1709557.213822 1735741.246927
18947 378920 1709665.270957 1735849.922211
18948 378940 1709773.328683 1735958.598069
18949 378960 1709881.387000 1736067.274504
18950 378980 1709989.445908 1736175.951515
18951 379000 1710097.505407 1736284.629101
18952 379020 1710205.565496 1736393.307263
18953 379040 1710313.626176 1736501.986000
18954 379060 1710421.687446 1736610.665313
18955 379080 1710529.749308 1736719.345202
18956 379100 1710637.811759 1736828.025666
18957 379120 1710745.874802 1736936.706706
18958 379140 1710853.938434 1737045.388321
18959 379160 1710962.002658 1737154.070512
18960 379180 1711070.067471 1737262.753278
18961 379200 1711178.132875 1737371.436620
18962 379220 1711286.198870 1737480.120537
18963 379240 1711394.265455 1737588.805029
18964 379260 1711502.332630 1737697.490097
18965 379280 1711610.400395 1737806.175740
18966 379300 1711718.468751 1737914.861958
18967 379320 1711826.537697 1738023.548752
18968 379340 1711934.607233 1738132.236120
18969 379360 1712042.677359 1738240.924064
18970 379380 1712150.748075 1738349.612583
18971 379400 1712258.819382 1738458.301677
18972 379420 1712366.891278 1738566.991345
18973 379440 1712474.963765 1738675.681589
18974 379460 1712583.036841 1738784.372408
18975 379480 1712691.110507 1738893.063802
18976 379500 1712799.184764 1739001.755771
18977 379520 1712907.259610 1739110.448315
18978 379540 1713015.335046 1739219.141433
18979 379560 1713123.411071 1739327.835127
18980 379580 1713231.487687 1739436.529395
18981 379600 1713339.564892 1739545.224238
18982 379620 1713447.642687 1739653.919655
18983 379640 1713555.721072 1739762.615648
18984 379660 1713663.800046 1739871.312215
18985 379680 1713771.879610 1739980.009356
18986 379700 1713879.959764 1740088.707073
18987 379720 1713988.040507 1740197.405363
18988 379740 1714096.121839 1740306.104229
18989 379760 1714204.203761 1740414.803669
18990 379780 1714312.286273 1740523.503683
18991 379800 1714420.369373 1740632.204272
18992 379820 1714528.453064 1740740.905435
18993 379840 1714636.537343 1740849.607172
18994 379860 1714744.622212 1740958.309484
18995 379880 1714852.707670 1741067.012370
18996 379900 1714960.793717 1741175.715831
18997 379920 1715068.880354 1741284.419865
18998 379940 1715176.967580 1741393.124474
18999 379960 1715285.055395 1741501.829657
19000 379980 1715393.143799 1741610.535415
19001 380000 1715501.232792 1741719.241746

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