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 35 of 40 · 500/page · 20000 rows next →
# nmargin_tracedmargin_measured
17002 340020 1500654.583304 1525607.006113
17003 340040 1500761.423576 1525714.496153
17004 340060 1500868.264511 1525821.986839
17005 340080 1500975.106111 1525929.478171
17006 340100 1501081.948374 1526036.970149
17007 340120 1501188.791301 1526144.462773
17008 340140 1501295.634892 1526251.956044
17009 340160 1501402.479146 1526359.449960
17010 340180 1501509.324064 1526466.944522
17011 340200 1501616.169646 1526574.439730
17012 340220 1501723.015891 1526681.935584
17013 340240 1501829.862799 1526789.432084
17014 340260 1501936.710371 1526896.929230
17015 340280 1502043.558606 1527004.427022
17016 340300 1502150.407505 1527111.925459
17017 340320 1502257.257067 1527219.424542
17018 340340 1502364.107292 1527326.924270
17019 340360 1502470.958180 1527434.424644
17020 340380 1502577.809732 1527541.925664
17021 340400 1502684.661946 1527649.427329
17022 340420 1502791.514824 1527756.929640
17023 340440 1502898.368365 1527864.432596
17024 340460 1503005.222568 1527971.936198
17025 340480 1503112.077435 1528079.440445
17026 340500 1503218.932965 1528186.945337
17027 340520 1503325.789157 1528294.450874
17028 340540 1503432.646012 1528401.957057
17029 340560 1503539.503530 1528509.463885
17030 340580 1503646.361711 1528616.971358
17031 340600 1503753.220555 1528724.479476
17032 340620 1503860.080061 1528831.988240
17033 340640 1503966.940230 1528939.497648
17034 340660 1504073.801061 1529047.007701
17035 340680 1504180.662555 1529154.518399
17036 340700 1504287.524711 1529262.029743
17037 340720 1504394.387530 1529369.541731
17038 340740 1504501.251011 1529477.054364
17039 340760 1504608.115155 1529584.567641
17040 340780 1504714.979961 1529692.081564
17041 340800 1504821.845429 1529799.596131
17042 340820 1504928.711560 1529907.111343
17043 340840 1505035.578352 1530014.627199
17044 340860 1505142.445807 1530122.143700
17045 340880 1505249.313924 1530229.660846
17046 340900 1505356.182703 1530337.178636
17047 340920 1505463.052144 1530444.697070
17048 340940 1505569.922247 1530552.216149
17049 340960 1505676.793012 1530659.735873
17050 340980 1505783.664439 1530767.256241
17051 341000 1505890.536527 1530874.777253
17052 341020 1505997.409278 1530982.298909
17053 341040 1506104.282690 1531089.821209
17054 341060 1506211.156764 1531197.344154
17055 341080 1506318.031500 1531304.867743
17056 341100 1506424.906897 1531412.391976
17057 341120 1506531.782956 1531519.916853
17058 341140 1506638.659677 1531627.442374
17059 341160 1506745.537059 1531734.968539
17060 341180 1506852.415103 1531842.495348
17061 341200 1506959.293808 1531950.022801
17062 341220 1507066.173174 1532057.550898
17063 341240 1507173.053202 1532165.079638
17064 341260 1507279.933891 1532272.609023
17065 341280 1507386.815241 1532380.139051
17066 341300 1507493.697253 1532487.669723
17067 341320 1507600.579926 1532595.201038
17068 341340 1507707.463260 1532702.732997
17069 341360 1507814.347255 1532810.265600
17070 341380 1507921.231911 1532917.798846
17071 341400 1508028.117228 1533025.332736
17072 341420 1508135.003206 1533132.867269
17073 341440 1508241.889845 1533240.402446
17074 341460 1508348.777145 1533347.938266
17075 341480 1508455.665106 1533455.474729
17076 341500 1508562.553728 1533563.011836
17077 341520 1508669.443010 1533670.549586
17078 341540 1508776.332954 1533778.087979
17079 341560 1508883.223557 1533885.627015
17080 341580 1508990.114822 1533993.166695
17081 341600 1509097.006747 1534100.707017
17082 341620 1509203.899333 1534208.247983
17083 341640 1509310.792579 1534315.789591
17084 341660 1509417.686486 1534423.331843
17085 341680 1509524.581053 1534530.874738
17086 341700 1509631.476280 1534638.418275
17087 341720 1509738.372168 1534745.962455
17088 341740 1509845.268716 1534853.507278
17089 341760 1509952.165925 1534961.052744
17090 341780 1510059.063794 1535068.598853
17091 341800 1510165.962323 1535176.145604
17092 341820 1510272.861512 1535283.692998
17093 341840 1510379.761361 1535391.241035
17094 341860 1510486.661870 1535498.789714
17095 341880 1510593.563039 1535606.339036
17096 341900 1510700.464869 1535713.889000
17097 341920 1510807.367358 1535821.439607
17098 341940 1510914.270507 1535928.990856
17099 341960 1511021.174316 1536036.542747
17100 341980 1511128.078785 1536144.095281
17101 342000 1511234.983913 1536251.648457
17102 342020 1511341.889701 1536359.202276
17103 342040 1511448.796149 1536466.756736
17104 342060 1511555.703257 1536574.311839
17105 342080 1511662.611024 1536681.867584
17106 342100 1511769.519451 1536789.423971
17107 342120 1511876.428537 1536896.981000
17108 342140 1511983.338283 1537004.538671
17109 342160 1512090.248688 1537112.096984
17110 342180 1512197.159753 1537219.655939
17111 342200 1512304.071477 1537327.215536
17112 342220 1512410.983860 1537434.775774
17113 342240 1512517.896903 1537542.336655
17114 342260 1512624.810605 1537649.898177
17115 342280 1512731.724966 1537757.460341
17116 342300 1512838.639986 1537865.023147
17117 342320 1512945.555665 1537972.586594
17118 342340 1513052.472004 1538080.150683
17119 342360 1513159.389001 1538187.715414
17120 342380 1513266.306657 1538295.280786
17121 342400 1513373.224973 1538402.846800
17122 342420 1513480.143947 1538510.413455
17123 342440 1513587.063580 1538617.980751
17124 342460 1513693.983872 1538725.548689
17125 342480 1513800.904823 1538833.117268
17126 342500 1513907.826432 1538940.686489
17127 342520 1514014.748700 1539048.256351
17128 342540 1514121.671627 1539155.826854
17129 342560 1514228.595212 1539263.397998
17130 342580 1514335.519456 1539370.969783
17131 342600 1514442.444359 1539478.542209
17132 342620 1514549.369919 1539586.115277
17133 342640 1514656.296139 1539693.688985
17134 342660 1514763.223017 1539801.263335
17135 342680 1514870.150553 1539908.838325
17136 342700 1514977.078747 1540016.413956
17137 342720 1515084.007600 1540123.990228
17138 342740 1515190.937111 1540231.567141
17139 342760 1515297.867280 1540339.144695
17140 342780 1515404.798108 1540446.722889
17141 342800 1515511.729593 1540554.301724
17142 342820 1515618.661737 1540661.881200
17143 342840 1515725.594538 1540769.461317
17144 342860 1515832.527998 1540877.042074
17145 342880 1515939.462115 1540984.623471
17146 342900 1516046.396891 1541092.205509
17147 342920 1516153.332324 1541199.788188
17148 342940 1516260.268415 1541307.371506
17149 342960 1516367.205164 1541414.955466
17150 342980 1516474.142571 1541522.540065
17151 343000 1516581.080635 1541630.125305
17152 343020 1516688.019357 1541737.711185
17153 343040 1516794.958737 1541845.297706
17154 343060 1516901.898774 1541952.884866
17155 343080 1517008.839468 1542060.472667
17156 343100 1517115.780821 1542168.061108
17157 343120 1517222.722830 1542275.650189
17158 343140 1517329.665497 1542383.239909
17159 343160 1517436.608822 1542490.830270
17160 343180 1517543.552804 1542598.421271
17161 343200 1517650.497443 1542706.012912
17162 343220 1517757.442739 1542813.605192
17163 343240 1517864.388693 1542921.198113
17164 343260 1517971.335303 1543028.791673
17165 343280 1518078.282571 1543136.385873
17166 343300 1518185.230496 1543243.980712
17167 343320 1518292.179078 1543351.576191
17168 343340 1518399.128317 1543459.172310
17169 343360 1518506.078213 1543566.769069
17170 343380 1518613.028765 1543674.366467
17171 343400 1518719.979975 1543781.964504
17172 343420 1518826.931842 1543889.563181
17173 343440 1518933.884365 1543997.162497
17174 343460 1519040.837545 1544104.762453
17175 343480 1519147.791382 1544212.363048
17176 343500 1519254.745875 1544319.964283
17177 343520 1519361.701025 1544427.566156
17178 343540 1519468.656832 1544535.168669
17179 343560 1519575.613295 1544642.771821
17180 343580 1519682.570415 1544750.375612
17181 343600 1519789.528191 1544857.980043
17182 343620 1519896.486623 1544965.585112
17183 343640 1520003.445712 1545073.190821
17184 343660 1520110.405457 1545180.797168
17185 343680 1520217.365859 1545288.404154
17186 343700 1520324.326917 1545396.011779
17187 343720 1520431.288631 1545503.620044
17188 343740 1520538.251001 1545611.228946
17189 343760 1520645.214027 1545718.838488
17190 343780 1520752.177710 1545826.448669
17191 343800 1520859.142048 1545934.059488
17192 343820 1520966.107043 1546041.670946
17193 343840 1521073.072693 1546149.283042
17194 343860 1521180.039000 1546256.895777
17195 343880 1521287.005962 1546364.509151
17196 343900 1521393.973580 1546472.123163
17197 343920 1521500.941854 1546579.737813
17198 343940 1521607.910784 1546687.353102
17199 343960 1521714.880369 1546794.969030
17200 343980 1521821.850610 1546902.585595
17201 344000 1521928.821507 1547010.202799
17202 344020 1522035.793059 1547117.820642
17203 344040 1522142.765267 1547225.439122
17204 344060 1522249.738131 1547333.058241
17205 344080 1522356.711649 1547440.677998
17206 344100 1522463.685824 1547548.298393
17207 344120 1522570.660653 1547655.919426
17208 344140 1522677.636138 1547763.541097
17209 344160 1522784.612279 1547871.163406
17210 344180 1522891.589074 1547978.786353
17211 344200 1522998.566525 1548086.409938
17212 344220 1523105.544631 1548194.034161
17213 344240 1523212.523393 1548301.659022
17214 344260 1523319.502809 1548409.284520
17215 344280 1523426.482880 1548516.910656
17216 344300 1523533.463607 1548624.537430
17217 344320 1523640.444988 1548732.164842
17218 344340 1523747.427024 1548839.792891
17219 344360 1523854.409715 1548947.421578
17220 344380 1523961.393061 1549055.050902
17221 344400 1524068.377062 1549162.680864
17222 344420 1524175.361718 1549270.311464
17223 344440 1524282.347028 1549377.942701
17224 344460 1524389.332993 1549485.574575
17225 344480 1524496.319613 1549593.207087
17226 344500 1524603.306888 1549700.840235
17227 344520 1524710.294816 1549808.474022
17228 344540 1524817.283400 1549916.108445
17229 344560 1524924.272638 1550023.743506
17230 344580 1525031.262530 1550131.379204
17231 344600 1525138.253077 1550239.015539
17232 344620 1525245.244278 1550346.652511
17233 344640 1525352.236134 1550454.290120
17234 344660 1525459.228643 1550561.928366
17235 344680 1525566.221808 1550669.567249
17236 344700 1525673.215626 1550777.206769
17237 344720 1525780.210098 1550884.846926
17238 344740 1525887.205225 1550992.487719
17239 344760 1525994.201005 1551100.129150
17240 344780 1526101.197440 1551207.771217
17241 344800 1526208.194528 1551315.413921
17242 344820 1526315.192271 1551423.057262
17243 344840 1526422.190668 1551530.701239
17244 344860 1526529.189718 1551638.345853
17245 344880 1526636.189422 1551745.991104
17246 344900 1526743.189780 1551853.636991
17247 344920 1526850.190792 1551961.283514
17248 344940 1526957.192457 1552068.930674
17249 344960 1527064.194777 1552176.578471
17250 344980 1527171.197749 1552284.226904
17251 345000 1527278.201376 1552391.875973
17252 345020 1527385.205656 1552499.525678
17253 345040 1527492.210589 1552607.176020
17254 345060 1527599.216176 1552714.826998
17255 345080 1527706.222416 1552822.478612
17256 345100 1527813.229310 1552930.130862
17257 345120 1527920.236857 1553037.783749
17258 345140 1528027.245057 1553145.437271
17259 345160 1528134.253911 1553253.091429
17260 345180 1528241.263418 1553360.746224
17261 345200 1528348.273578 1553468.401654
17262 345220 1528455.284391 1553576.057720
17263 345240 1528562.295857 1553683.714423
17264 345260 1528669.307976 1553791.371760
17265 345280 1528776.320749 1553899.029734
17266 345300 1528883.334174 1554006.688344
17267 345320 1528990.348252 1554114.347589
17268 345340 1529097.362983 1554222.007470
17269 345360 1529204.378367 1554329.667986
17270 345380 1529311.394404 1554437.329138
17271 345400 1529418.411094 1554544.990926
17272 345420 1529525.428436 1554652.653349
17273 345440 1529632.446431 1554760.316407
17274 345460 1529739.465079 1554867.980101
17275 345480 1529846.484379 1554975.644431
17276 345500 1529953.504332 1555083.309396
17277 345520 1530060.524937 1555190.974996
17278 345540 1530167.546195 1555298.641231
17279 345560 1530274.568106 1555406.308102
17280 345580 1530381.590668 1555513.975607
17281 345600 1530488.613883 1555621.643748
17282 345620 1530595.637751 1555729.312524
17283 345640 1530702.662270 1555836.981936
17284 345660 1530809.687442 1555944.651982
17285 345680 1530916.713266 1556052.322663
17286 345700 1531023.739743 1556159.993979
17287 345720 1531130.766871 1556267.665930
17288 345740 1531237.794652 1556375.338516
17289 345760 1531344.823084 1556483.011737
17290 345780 1531451.852169 1556590.685592
17291 345800 1531558.881905 1556698.360083
17292 345820 1531665.912294 1556806.035208
17293 345840 1531772.943334 1556913.710967
17294 345860 1531879.975026 1557021.387362
17295 345880 1531987.007370 1557129.064391
17296 345900 1532094.040366 1557236.742054
17297 345920 1532201.074013 1557344.420353
17298 345940 1532308.108312 1557452.099285
17299 345960 1532415.143263 1557559.778852
17300 345980 1532522.178865 1557667.459054
17301 346000 1532629.215119 1557775.139890
17302 346020 1532736.252025 1557882.821360
17303 346040 1532843.289582 1557990.503464
17304 346060 1532950.327790 1558098.186203
17305 346080 1533057.366650 1558205.869576
17306 346100 1533164.406161 1558313.553583
17307 346120 1533271.446323 1558421.238224
17308 346140 1533378.487136 1558528.923499
17309 346160 1533485.528601 1558636.609409
17310 346180 1533592.570717 1558744.295952
17311 346200 1533699.613485 1558851.983130
17312 346220 1533806.656903 1558959.670941
17313 346240 1533913.700972 1559067.359386
17314 346260 1534020.745693 1559175.048465
17315 346280 1534127.791064 1559282.738178
17316 346300 1534234.837086 1559390.428525
17317 346320 1534341.883759 1559498.119506
17318 346340 1534448.931083 1559605.811120
17319 346360 1534555.979058 1559713.503368
17320 346380 1534663.027684 1559821.196249
17321 346400 1534770.076960 1559928.889764
17322 346420 1534877.126888 1560036.583913
17323 346440 1534984.177465 1560144.278695
17324 346460 1535091.228694 1560251.974111
17325 346480 1535198.280573 1560359.670160
17326 346500 1535305.333102 1560467.366842
17327 346520 1535412.386282 1560575.064158
17328 346540 1535519.440113 1560682.762107
17329 346560 1535626.494594 1560790.460689
17330 346580 1535733.549725 1560898.159905
17331 346600 1535840.605507 1561005.859754
17332 346620 1535947.661939 1561113.560236
17333 346640 1536054.719021 1561221.261351
17334 346660 1536161.776753 1561328.963099
17335 346680 1536268.835136 1561436.665481
17336 346700 1536375.894168 1561544.368495
17337 346720 1536482.953851 1561652.072142
17338 346740 1536590.014184 1561759.776422
17339 346760 1536697.075167 1561867.481335
17340 346780 1536804.136800 1561975.186881
17341 346800 1536911.199083 1562082.893060
17342 346820 1537018.262015 1562190.599871
17343 346840 1537125.325598 1562298.307316
17344 346860 1537232.389830 1562406.015393
17345 346880 1537339.454712 1562513.724102
17346 346900 1537446.520244 1562621.433444
17347 346920 1537553.586425 1562729.143419
17348 346940 1537660.653257 1562836.854026
17349 346960 1537767.720737 1562944.565266
17350 346980 1537874.788868 1563052.277138
17351 347000 1537981.857648 1563159.989643
17352 347020 1538088.927077 1563267.702780
17353 347040 1538195.997156 1563375.416550
17354 347060 1538303.067884 1563483.130951
17355 347080 1538410.139262 1563590.845985
17356 347100 1538517.211289 1563698.561652
17357 347120 1538624.283965 1563806.277950
17358 347140 1538731.357290 1563913.994881
17359 347160 1538838.431265 1564021.712443
17360 347180 1538945.505889 1564129.430638
17361 347200 1539052.581162 1564237.149465
17362 347220 1539159.657084 1564344.868923
17363 347240 1539266.733655 1564452.589014
17364 347260 1539373.810875 1564560.309737
17365 347280 1539480.888744 1564668.031091
17366 347300 1539587.967262 1564775.753078
17367 347320 1539695.046429 1564883.475696
17368 347340 1539802.126245 1564991.198946
17369 347360 1539909.206709 1565098.922827
17370 347380 1540016.287822 1565206.647341
17371 347400 1540123.369585 1565314.372486
17372 347420 1540230.451995 1565422.098262
17373 347440 1540337.535055 1565529.824670
17374 347460 1540444.618762 1565637.551710
17375 347480 1540551.703119 1565745.279381
17376 347500 1540658.788124 1565853.007684
17377 347520 1540765.873778 1565960.736618
17378 347540 1540872.960079 1566068.466183
17379 347560 1540980.047030 1566176.196380
17380 347580 1541087.134629 1566283.927208
17381 347600 1541194.222876 1566391.658667
17382 347620 1541301.311771 1566499.390758
17383 347640 1541408.401314 1566607.123480
17384 347660 1541515.491506 1566714.856832
17385 347680 1541622.582346 1566822.590816
17386 347700 1541729.673834 1566930.325431
17387 347720 1541836.765970 1567038.060677
17388 347740 1541943.858754 1567145.796554
17389 347760 1542050.952187 1567253.533062
17390 347780 1542158.046267 1567361.270201
17391 347800 1542265.140995 1567469.007971
17392 347820 1542372.236371 1567576.746372
17393 347840 1542479.332394 1567684.485403
17394 347860 1542586.429066 1567792.225065
17395 347880 1542693.526385 1567899.965358
17396 347900 1542800.624352 1568007.706281
17397 347920 1542907.722967 1568115.447836
17398 347940 1543014.822229 1568223.190020
17399 347960 1543121.922139 1568330.932836
17400 347980 1543229.022697 1568438.676281
17401 348000 1543336.123902 1568546.420358
17402 348020 1543443.225754 1568654.165065
17403 348040 1543550.328254 1568761.910402
17404 348060 1543657.431402 1568869.656369
17405 348080 1543764.535196 1568977.402967
17406 348100 1543871.639638 1569085.150195
17407 348120 1543978.744728 1569192.898054
17408 348140 1544085.850464 1569300.646542
17409 348160 1544192.956848 1569408.395661
17410 348180 1544300.063879 1569516.145410
17411 348200 1544407.171557 1569623.895789
17412 348220 1544514.279882 1569731.646798
17413 348240 1544621.388854 1569839.398437
17414 348260 1544728.498473 1569947.150706
17415 348280 1544835.608739 1570054.903605
17416 348300 1544942.719652 1570162.657134
17417 348320 1545049.831212 1570270.411293
17418 348340 1545156.943419 1570378.166082
17419 348360 1545264.056272 1570485.921500
17420 348380 1545371.169772 1570593.677548
17421 348400 1545478.283919 1570701.434226
17422 348420 1545585.398713 1570809.191534
17423 348440 1545692.514153 1570916.949471
17424 348460 1545799.630240 1571024.708038
17425 348480 1545906.746974 1571132.467234
17426 348500 1546013.864354 1571240.227060
17427 348520 1546120.982380 1571347.987515
17428 348540 1546228.101053 1571455.748600
17429 348560 1546335.220372 1571563.510314
17430 348580 1546442.340338 1571671.272658
17431 348600 1546549.460950 1571779.035630
17432 348620 1546656.582208 1571886.799233
17433 348640 1546763.704112 1571994.563464
17434 348660 1546870.826663 1572102.328325
17435 348680 1546977.949860 1572210.093814
17436 348700 1547085.073703 1572317.859933
17437 348720 1547192.198192 1572425.626681
17438 348740 1547299.323327 1572533.394058
17439 348760 1547406.449108 1572641.162064
17440 348780 1547513.575535 1572748.930699
17441 348800 1547620.702608 1572856.699963
17442 348820 1547727.830327 1572964.469856
17443 348840 1547834.958691 1573072.240378
17444 348860 1547942.087702 1573180.011529
17445 348880 1548049.217358 1573287.783308
17446 348900 1548156.347660 1573395.555716
17447 348920 1548263.478607 1573503.328753
17448 348940 1548370.610201 1573611.102419
17449 348960 1548477.742439 1573718.876713
17450 348980 1548584.875324 1573826.651635
17451 349000 1548692.008854 1573934.427187
17452 349020 1548799.143029 1574042.203367
17453 349040 1548906.277850 1574149.980175
17454 349060 1549013.413316 1574257.757612
17455 349080 1549120.549428 1574365.535677
17456 349100 1549227.686185 1574473.314370
17457 349120 1549334.823587 1574581.093692
17458 349140 1549441.961634 1574688.873642
17459 349160 1549549.100327 1574796.654221
17460 349180 1549656.239665 1574904.435427
17461 349200 1549763.379648 1575012.217262
17462 349220 1549870.520276 1575119.999725
17463 349240 1549977.661549 1575227.782816
17464 349260 1550084.803467 1575335.566535
17465 349280 1550191.946030 1575443.350882
17466 349300 1550299.089237 1575551.135857
17467 349320 1550406.233090 1575658.921460
17468 349340 1550513.377588 1575766.707691
17469 349360 1550620.522730 1575874.494549
17470 349380 1550727.668518 1575982.282036
17471 349400 1550834.814949 1576090.070150
17472 349420 1550941.962026 1576197.858892
17473 349440 1551049.109747 1576305.648262
17474 349460 1551156.258113 1576413.438260
17475 349480 1551263.407124 1576521.228885
17476 349500 1551370.556778 1576629.020138
17477 349520 1551477.707078 1576736.812018
17478 349540 1551584.858022 1576844.604526
17479 349560 1551692.009610 1576952.397661
17480 349580 1551799.161843 1577060.191424
17481 349600 1551906.314720 1577167.985814
17482 349620 1552013.468241 1577275.780831
17483 349640 1552120.622406 1577383.576476
17484 349660 1552227.777216 1577491.372748
17485 349680 1552334.932670 1577599.169648
17486 349700 1552442.088768 1577706.967174
17487 349720 1552549.245510 1577814.765328
17488 349740 1552656.402896 1577922.564109
17489 349760 1552763.560926 1578030.363517
17490 349780 1552870.719600 1578138.163552
17491 349800 1552977.878918 1578245.964214
17492 349820 1553085.038880 1578353.765503
17493 349840 1553192.199486 1578461.567419
17494 349860 1553299.360736 1578569.369962
17495 349880 1553406.522629 1578677.173132
17496 349900 1553513.685166 1578784.976929
17497 349920 1553620.848347 1578892.781352
17498 349940 1553728.012171 1579000.586402
17499 349960 1553835.176639 1579108.392079
17500 349980 1553942.341751 1579216.198383
17501 350000 1554049.507506 1579324.005313

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