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 34 of 40 · 500/page · 20000 rows next →
# nmargin_tracedmargin_measured
16502 330020 1447318.489890 1471943.788475
16503 330040 1447424.992855 1472050.950217
16504 330060 1447531.496505 1472158.112626
16505 330080 1447638.000840 1472265.275702
16506 330100 1447744.505861 1472372.439445
16507 330120 1447851.011567 1472479.603855
16508 330140 1447957.517959 1472586.768933
16509 330160 1448064.025036 1472693.934677
16510 330180 1448170.532799 1472801.101088
16511 330200 1448277.041246 1472908.268166
16512 330220 1448383.550379 1473015.435910
16513 330240 1448490.060197 1473122.604322
16514 330260 1448596.570700 1473229.773400
16515 330280 1448703.081889 1473336.943145
16516 330300 1448809.593762 1473444.113556
16517 330320 1448916.106320 1473551.284634
16518 330340 1449022.619564 1473658.456379
16519 330360 1449129.133492 1473765.628790
16520 330380 1449235.648105 1473872.801868
16521 330400 1449342.163403 1473979.975612
16522 330420 1449448.679386 1474087.150022
16523 330440 1449555.196053 1474194.325099
16524 330460 1449661.713405 1474301.500842
16525 330480 1449768.231442 1474408.677251
16526 330500 1449874.750163 1474515.854327
16527 330520 1449981.269569 1474623.032069
16528 330540 1450087.789659 1474730.210477
16529 330560 1450194.310434 1474837.389550
16530 330580 1450300.831893 1474944.569290
16531 330600 1450407.354037 1475051.749696
16532 330620 1450513.876865 1475158.930768
16533 330640 1450620.400377 1475266.112506
16534 330660 1450726.924574 1475373.294910
16535 330680 1450833.449454 1475480.477979
16536 330700 1450939.975019 1475587.661715
16537 330720 1451046.501268 1475694.846116
16538 330740 1451153.028201 1475802.031182
16539 330760 1451259.555818 1475909.216915
16540 330780 1451366.084119 1476016.403313
16541 330800 1451472.613104 1476123.590376
16542 330820 1451579.142772 1476230.778105
16543 330840 1451685.673125 1476337.966500
16544 330860 1451792.204161 1476445.155560
16545 330880 1451898.735882 1476552.345285
16546 330900 1452005.268285 1476659.535676
16547 330920 1452111.801373 1476766.726732
16548 330940 1452218.335144 1476873.918453
16549 330960 1452324.869599 1476981.110839
16550 330980 1452431.404737 1477088.303891
16551 331000 1452537.940558 1477195.497608
16552 331020 1452644.477063 1477302.691990
16553 331040 1452751.014252 1477409.887037
16554 331060 1452857.552124 1477517.082748
16555 331080 1452964.090679 1477624.279125
16556 331100 1453070.629917 1477731.476167
16557 331120 1453177.169839 1477838.673874
16558 331140 1453283.710444 1477945.872245
16559 331160 1453390.251732 1478053.071282
16560 331180 1453496.793702 1478160.270983
16561 331200 1453603.336356 1478267.471349
16562 331220 1453709.879693 1478374.672379
16563 331240 1453816.423713 1478481.874074
16564 331260 1453922.968416 1478589.076434
16565 331280 1454029.513802 1478696.279458
16566 331300 1454136.059870 1478803.483146
16567 331320 1454242.606621 1478910.687499
16568 331340 1454349.154055 1479017.892517
16569 331360 1454455.702172 1479125.098199
16570 331380 1454562.250971 1479232.304545
16571 331400 1454668.800453 1479339.511555
16572 331420 1454775.350618 1479446.719230
16573 331440 1454881.901464 1479553.927569
16574 331460 1454988.452994 1479661.136572
16575 331480 1455095.005206 1479768.346239
16576 331500 1455201.558100 1479875.556570
16577 331520 1455308.111676 1479982.767565
16578 331540 1455414.665935 1480089.979225
16579 331560 1455521.220876 1480197.191548
16580 331580 1455627.776499 1480304.404535
16581 331600 1455734.332804 1480411.618185
16582 331620 1455840.889791 1480518.832500
16583 331640 1455947.447461 1480626.047478
16584 331660 1456054.005812 1480733.263121
16585 331680 1456160.564846 1480840.479426
16586 331700 1456267.124561 1480947.696396
16587 331720 1456373.684958 1481054.914029
16588 331740 1456480.246037 1481162.132325
16589 331760 1456586.807798 1481269.351285
16590 331780 1456693.370241 1481376.570909
16591 331800 1456799.933365 1481483.791196
16592 331820 1456906.497171 1481591.012146
16593 331840 1457013.061658 1481698.233760
16594 331860 1457119.626827 1481805.456037
16595 331880 1457226.192678 1481912.678977
16596 331900 1457332.759210 1482019.902580
16597 331920 1457439.326423 1482127.126847
16598 331940 1457545.894318 1482234.351777
16599 331960 1457652.462894 1482341.577369
16600 331980 1457759.032152 1482448.803625
16601 332000 1457865.602091 1482556.030544
16602 332020 1457972.172711 1482663.258126
16603 332040 1458078.744012 1482770.486370
16604 332060 1458185.315994 1482877.715278
16605 332080 1458291.888657 1482984.944848
16606 332100 1458398.462002 1483092.175081
16607 332120 1458505.036027 1483199.405977
16608 332140 1458611.610734 1483306.637535
16609 332160 1458718.186121 1483413.869757
16610 332180 1458824.762189 1483521.102640
16611 332200 1458931.338938 1483628.336187
16612 332220 1459037.916367 1483735.570396
16613 332240 1459144.494478 1483842.805267
16614 332260 1459251.073269 1483950.040801
16615 332280 1459357.652740 1484057.276997
16616 332300 1459464.232893 1484164.513855
16617 332320 1459570.813725 1484271.751376
16618 332340 1459677.395239 1484378.989559
16619 332360 1459783.977432 1484486.228405
16620 332380 1459890.560307 1484593.467912
16621 332400 1459997.143861 1484700.708082
16622 332420 1460103.728096 1484807.948913
16623 332440 1460210.313011 1484915.190407
16624 332460 1460316.898607 1485022.432563
16625 332480 1460423.484882 1485129.675381
16626 332500 1460530.071838 1485236.918860
16627 332520 1460636.659474 1485344.163002
16628 332540 1460743.247790 1485451.407805
16629 332560 1460849.836785 1485558.653271
16630 332580 1460956.426461 1485665.899398
16631 332600 1461063.016817 1485773.146186
16632 332620 1461169.607853 1485880.393637
16633 332640 1461276.199568 1485987.641749
16634 332660 1461382.791964 1486094.890522
16635 332680 1461489.385039 1486202.139957
16636 332700 1461595.978793 1486309.390054
16637 332720 1461702.573228 1486416.640812
16638 332740 1461809.168342 1486523.892231
16639 332760 1461915.764135 1486631.144312
16640 332780 1462022.360609 1486738.397054
16641 332800 1462128.957761 1486845.650458
16642 332820 1462235.555593 1486952.904522
16643 332840 1462342.154105 1487060.159248
16644 332860 1462448.753296 1487167.414635
16645 332880 1462555.353166 1487274.670684
16646 332900 1462661.953715 1487381.927393
16647 332920 1462768.554944 1487489.184763
16648 332940 1462875.156851 1487596.442794
16649 332960 1462981.759438 1487703.701487
16650 332980 1463088.362704 1487810.960840
16651 333000 1463194.966649 1487918.220854
16652 333020 1463301.571273 1488025.481529
16653 333040 1463408.176576 1488132.742864
16654 333060 1463514.782558 1488240.004860
16655 333080 1463621.389219 1488347.267517
16656 333100 1463727.996559 1488454.530835
16657 333120 1463834.604577 1488561.794813
16658 333140 1463941.213274 1488669.059452
16659 333160 1464047.822650 1488776.324752
16660 333180 1464154.432704 1488883.590711
16661 333200 1464261.043438 1488990.857332
16662 333220 1464367.654849 1489098.124612
16663 333240 1464474.266939 1489205.392553
16664 333260 1464580.879708 1489312.661155
16665 333280 1464687.493155 1489419.930416
16666 333300 1464794.107280 1489527.200338
16667 333320 1464900.722084 1489634.470920
16668 333340 1465007.337566 1489741.742162
16669 333360 1465113.953726 1489849.014065
16670 333380 1465220.570565 1489956.286627
16671 333400 1465327.188082 1490063.559849
16672 333420 1465433.806276 1490170.833732
16673 333440 1465540.425149 1490278.108274
16674 333460 1465647.044700 1490385.383476
16675 333480 1465753.664929 1490492.659338
16676 333500 1465860.285836 1490599.935860
16677 333520 1465966.907421 1490707.213041
16678 333540 1466073.529683 1490814.490882
16679 333560 1466180.152624 1490921.769383
16680 333580 1466286.776242 1491029.048544
16681 333600 1466393.400538 1491136.328364
16682 333620 1466500.025511 1491243.608844
16683 333640 1466606.651163 1491350.889983
16684 333660 1466713.277491 1491458.171782
16685 333680 1466819.904498 1491565.454240
16686 333700 1466926.532182 1491672.737357
16687 333720 1467033.160543 1491780.021134
16688 333740 1467139.789582 1491887.305570
16689 333760 1467246.419298 1491994.590665
16690 333780 1467353.049691 1492101.876420
16691 333800 1467459.680762 1492209.162834
16692 333820 1467566.312510 1492316.449907
16693 333840 1467672.944935 1492423.737639
16694 333860 1467779.578037 1492531.026030
16695 333880 1467886.211817 1492638.315080
16696 333900 1467992.846273 1492745.604789
16697 333920 1468099.481407 1492852.895156
16698 333940 1468206.117217 1492960.186183
16699 333960 1468312.753705 1493067.477869
16700 333980 1468419.390869 1493174.770213
16701 334000 1468526.028710 1493282.063216
16702 334020 1468632.667228 1493389.356878
16703 334040 1468739.306423 1493496.651198
16704 334060 1468845.946295 1493603.946178
16705 334080 1468952.586843 1493711.241815
16706 334100 1469059.228068 1493818.538111
16707 334120 1469165.869969 1493925.835066
16708 334140 1469272.512547 1494033.132679
16709 334160 1469379.155801 1494140.430951
16710 334180 1469485.799732 1494247.729881
16711 334200 1469592.444339 1494355.029469
16712 334220 1469699.089623 1494462.329716
16713 334240 1469805.735583 1494569.630620
16714 334260 1469912.382219 1494676.932183
16715 334280 1470019.029532 1494784.234405
16716 334300 1470125.677520 1494891.537284
16717 334320 1470232.326185 1494998.840821
16718 334340 1470338.975526 1495106.145016
16719 334360 1470445.625543 1495213.449870
16720 334380 1470552.276236 1495320.755381
16721 334400 1470658.927605 1495428.061550
16722 334420 1470765.579650 1495535.368377
16723 334440 1470872.232371 1495642.675862
16724 334460 1470978.885767 1495749.984005
16725 334480 1471085.539840 1495857.292805
16726 334500 1471192.194588 1495964.602263
16727 334520 1471298.850012 1496071.912379
16728 334540 1471405.506111 1496179.223153
16729 334560 1471512.162886 1496286.534583
16730 334580 1471618.820337 1496393.846672
16731 334600 1471725.478464 1496501.159418
16732 334620 1471832.137265 1496608.472821
16733 334640 1471938.796743 1496715.786882
16734 334660 1472045.456895 1496823.101600
16735 334680 1472152.117723 1496930.416976
16736 334700 1472258.779227 1497037.733008
16737 334720 1472365.441405 1497145.049698
16738 334740 1472472.104259 1497252.367045
16739 334760 1472578.767788 1497359.685050
16740 334780 1472685.431992 1497467.003711
16741 334800 1472792.096872 1497574.323030
16742 334820 1472898.762426 1497681.643005
16743 334840 1473005.428655 1497788.963638
16744 334860 1473112.095560 1497896.284927
16745 334880 1473218.763139 1498003.606873
16746 334900 1473325.431393 1498110.929476
16747 334920 1473432.100322 1498218.252736
16748 334940 1473538.769926 1498325.576653
16749 334960 1473645.440204 1498432.901227
16750 334980 1473752.111157 1498540.226457
16751 335000 1473858.782785 1498647.552344
16752 335020 1473965.455088 1498754.878887
16753 335040 1474072.128065 1498862.206087
16754 335060 1474178.801717 1498969.533944
16755 335080 1474285.476043 1499076.862457
16756 335100 1474392.151043 1499184.191626
16757 335120 1474498.826718 1499291.521452
16758 335140 1474605.503068 1499398.851934
16759 335160 1474712.180091 1499506.183072
16760 335180 1474818.857789 1499613.514867
16761 335200 1474925.536161 1499720.847318
16762 335220 1475032.215208 1499828.180425
16763 335240 1475138.894928 1499935.514188
16764 335260 1475245.575323 1500042.848608
16765 335280 1475352.256392 1500150.183683
16766 335300 1475458.938134 1500257.519415
16767 335320 1475565.620551 1500364.855802
16768 335340 1475672.303642 1500472.192846
16769 335360 1475778.987406 1500579.530545
16770 335380 1475885.671844 1500686.868900
16771 335400 1475992.356956 1500794.207911
16772 335420 1476099.042742 1500901.547578
16773 335440 1476205.729202 1501008.887900
16774 335460 1476312.416335 1501116.228878
16775 335480 1476419.104142 1501223.570512
16776 335500 1476525.792622 1501330.912801
16777 335520 1476632.481776 1501438.255746
16778 335540 1476739.171604 1501545.599346
16779 335560 1476845.862105 1501652.943602
16780 335580 1476952.553279 1501760.288514
16781 335600 1477059.245127 1501867.634080
16782 335620 1477165.937648 1501974.980302
16783 335640 1477272.630842 1502082.327180
16784 335660 1477379.324710 1502189.674712
16785 335680 1477486.019250 1502297.022900
16786 335700 1477592.714464 1502404.371743
16787 335720 1477699.410351 1502511.721241
16788 335740 1477806.106911 1502619.071395
16789 335760 1477912.804144 1502726.422203
16790 335780 1478019.502050 1502833.773666
16791 335800 1478126.200629 1502941.125785
16792 335820 1478232.899881 1503048.478558
16793 335840 1478339.599806 1503155.831986
16794 335860 1478446.300403 1503263.186069
16795 335880 1478553.001674 1503370.540807
16796 335900 1478659.703617 1503477.896199
16797 335920 1478766.406232 1503585.252247
16798 335940 1478873.109520 1503692.608949
16799 335960 1478979.813481 1503799.966305
16800 335980 1479086.518115 1503907.324316
16801 336000 1479193.223421 1504014.682982
16802 336020 1479299.929399 1504122.042302
16803 336040 1479406.636050 1504229.402277
16804 336060 1479513.343373 1504336.762906
16805 336080 1479620.051368 1504444.124190
16806 336100 1479726.760036 1504551.486128
16807 336120 1479833.469376 1504658.848720
16808 336140 1479940.179388 1504766.211967
16809 336160 1480046.890072 1504873.575867
16810 336180 1480153.601429 1504980.940422
16811 336200 1480260.313457 1505088.305631
16812 336220 1480367.026158 1505195.671494
16813 336240 1480473.739530 1505303.038012
16814 336260 1480580.453575 1505410.405183
16815 336280 1480687.168291 1505517.773008
16816 336300 1480793.883679 1505625.141487
16817 336320 1480900.599739 1505732.510620
16818 336340 1481007.316471 1505839.880407
16819 336360 1481114.033875 1505947.250848
16820 336380 1481220.751950 1506054.621942
16821 336400 1481327.470696 1506161.993690
16822 336420 1481434.190115 1506269.366092
16823 336440 1481540.910205 1506376.739147
16824 336460 1481647.630966 1506484.112857
16825 336480 1481754.352399 1506591.487219
16826 336500 1481861.074503 1506698.862235
16827 336520 1481967.797279 1506806.237905
16828 336540 1482074.520726 1506913.614228
16829 336560 1482181.244844 1507020.991204
16830 336580 1482287.969634 1507128.368834
16831 336600 1482394.695095 1507235.747117
16832 336620 1482501.421227 1507343.126054
16833 336640 1482608.148030 1507450.505643
16834 336660 1482714.875504 1507557.885886
16835 336680 1482821.603649 1507665.266782
16836 336700 1482928.332465 1507772.648331
16837 336720 1483035.061952 1507880.030533
16838 336740 1483141.792110 1507987.413388
16839 336760 1483248.522939 1508094.796896
16840 336780 1483355.254439 1508202.181058
16841 336800 1483461.986609 1508309.565871
16842 336820 1483568.719450 1508416.951338
16843 336840 1483675.452962 1508524.337458
16844 336860 1483782.187145 1508631.724230
16845 336880 1483888.921998 1508739.111655
16846 336900 1483995.657522 1508846.499733
16847 336920 1484102.393716 1508953.888464
16848 336940 1484209.130580 1509061.277847
16849 336960 1484315.868116 1509168.667882
16850 336980 1484422.606321 1509276.058570
16851 337000 1484529.345197 1509383.449911
16852 337020 1484636.084743 1509490.841904
16853 337040 1484742.824959 1509598.234549
16854 337060 1484849.565846 1509705.627847
16855 337080 1484956.307403 1509813.021797
16856 337100 1485063.049630 1509920.416400
16857 337120 1485169.792527 1510027.811654
16858 337140 1485276.536094 1510135.207561
16859 337160 1485383.280331 1510242.604120
16860 337180 1485490.025238 1510350.001331
16861 337200 1485596.770815 1510457.399194
16862 337220 1485703.517061 1510564.797710
16863 337240 1485810.263978 1510672.196877
16864 337260 1485917.011564 1510779.596696
16865 337280 1486023.759821 1510886.997167
16866 337300 1486130.508746 1510994.398290
16867 337320 1486237.258342 1511101.800064
16868 337340 1486344.008607 1511209.202491
16869 337360 1486450.759542 1511316.605569
16870 337380 1486557.511146 1511424.009299
16871 337400 1486664.263420 1511531.413680
16872 337420 1486771.016363 1511638.818714
16873 337440 1486877.769975 1511746.224398
16874 337460 1486984.524257 1511853.630735
16875 337480 1487091.279208 1511961.037722
16876 337500 1487198.034829 1512068.445362
16877 337520 1487304.791119 1512175.853652
16878 337540 1487411.548078 1512283.262594
16879 337560 1487518.305706 1512390.672187
16880 337580 1487625.064003 1512498.082432
16881 337600 1487731.822969 1512605.493328
16882 337620 1487838.582604 1512712.904875
16883 337640 1487945.342908 1512820.317073
16884 337660 1488052.103882 1512927.729922
16885 337680 1488158.865524 1513035.143423
16886 337700 1488265.627834 1513142.557574
16887 337720 1488372.390814 1513249.972377
16888 337740 1488479.154463 1513357.387830
16889 337760 1488585.918780 1513464.803934
16890 337780 1488692.683766 1513572.220689
16891 337800 1488799.449420 1513679.638095
16892 337820 1488906.215743 1513787.056152
16893 337840 1489012.982735 1513894.474860
16894 337860 1489119.750395 1514001.894218
16895 337880 1489226.518723 1514109.314227
16896 337900 1489333.287720 1514216.734886
16897 337920 1489440.057386 1514324.156196
16898 337940 1489546.827719 1514431.578157
16899 337960 1489653.598721 1514539.000768
16900 337980 1489760.370391 1514646.424030
16901 338000 1489867.142730 1514753.847942
16902 338020 1489973.915736 1514861.272504
16903 338040 1490080.689411 1514968.697717
16904 338060 1490187.463754 1515076.123580
16905 338080 1490294.238765 1515183.550093
16906 338100 1490401.014443 1515290.977257
16907 338120 1490507.790790 1515398.405070
16908 338140 1490614.567805 1515505.833534
16909 338160 1490721.345487 1515613.262648
16910 338180 1490828.123838 1515720.692412
16911 338200 1490934.902856 1515828.122826
16912 338220 1491041.682541 1515935.553890
16913 338240 1491148.462895 1516042.985604
16914 338260 1491255.243916 1516150.417967
16915 338280 1491362.025605 1516257.850981
16916 338300 1491468.807961 1516365.284644
16917 338320 1491575.590985 1516472.718958
16918 338340 1491682.374677 1516580.153920
16919 338360 1491789.159035 1516687.589533
16920 338380 1491895.944061 1516795.025795
16921 338400 1492002.729755 1516902.462707
16922 338420 1492109.516116 1517009.900268
16923 338440 1492216.303144 1517117.338479
16924 338460 1492323.090839 1517224.777339
16925 338480 1492429.879202 1517332.216849
16926 338500 1492536.668231 1517439.657008
16927 338520 1492643.457928 1517547.097817
16928 338540 1492750.248292 1517654.539274
16929 338560 1492857.039323 1517761.981382
16930 338580 1492963.831021 1517869.424138
16931 338600 1493070.623385 1517976.867543
16932 338620 1493177.416417 1518084.311598
16933 338640 1493284.210115 1518191.756302
16934 338660 1493391.004480 1518299.201654
16935 338680 1493497.799512 1518406.647656
16936 338700 1493604.595211 1518514.094307
16937 338720 1493711.391577 1518621.541607
16938 338740 1493818.188609 1518728.989556
16939 338760 1493924.986307 1518836.438153
16940 338780 1494031.784672 1518943.887399
16941 338800 1494138.583704 1519051.337294
16942 338820 1494245.383402 1519158.787838
16943 338840 1494352.183766 1519266.239031
16944 338860 1494458.984797 1519373.690872
16945 338880 1494565.786495 1519481.143362
16946 338900 1494672.588858 1519588.596500
16947 338920 1494779.391888 1519696.050287
16948 338940 1494886.195584 1519803.504723
16949 338960 1494992.999946 1519910.959806
16950 338980 1495099.804974 1520018.415539
16951 339000 1495206.610668 1520125.871919
16952 339020 1495313.417029 1520233.328948
16953 339040 1495420.224055 1520340.786626
16954 339060 1495527.031747 1520448.244951
16955 339080 1495633.840105 1520555.703925
16956 339100 1495740.649129 1520663.163547
16957 339120 1495847.458819 1520770.623817
16958 339140 1495954.269175 1520878.084735
16959 339160 1496061.080196 1520985.546301
16960 339180 1496167.891883 1521093.008515
16961 339200 1496274.704236 1521200.471377
16962 339220 1496381.517255 1521307.934887
16963 339240 1496488.330938 1521415.399045
16964 339260 1496595.145288 1521522.863851
16965 339280 1496701.960303 1521630.329304
16966 339300 1496808.775983 1521737.795405
16967 339320 1496915.592329 1521845.262154
16968 339340 1497022.409340 1521952.729551
16969 339360 1497129.227017 1522060.197595
16970 339380 1497236.045358 1522167.666287
16971 339400 1497342.864365 1522275.135627
16972 339420 1497449.684037 1522382.605614
16973 339440 1497556.504375 1522490.076248
16974 339460 1497663.325377 1522597.547530
16975 339480 1497770.147044 1522705.019459
16976 339500 1497876.969377 1522812.492036
16977 339520 1497983.792374 1522919.965260
16978 339540 1498090.616037 1523027.439131
16979 339560 1498197.440364 1523134.913649
16980 339580 1498304.265356 1523242.388815
16981 339600 1498411.091013 1523349.864628
16982 339620 1498517.917335 1523457.341087
16983 339640 1498624.744321 1523564.818194
16984 339660 1498731.571972 1523672.295948
16985 339680 1498838.400288 1523779.774349
16986 339700 1498945.229268 1523887.253397
16987 339720 1499052.058913 1523994.733092
16988 339740 1499158.889222 1524102.213433
16989 339760 1499265.720196 1524209.694422
16990 339780 1499372.551834 1524317.176057
16991 339800 1499479.384137 1524424.658339
16992 339820 1499586.217104 1524532.141268
16993 339840 1499693.050735 1524639.624843
16994 339860 1499799.885031 1524747.109065
16995 339880 1499906.719991 1524854.593933
16996 339900 1500013.555615 1524962.079448
16997 339920 1500120.391903 1525069.565610
16998 339940 1500227.228855 1525177.052418
16999 339960 1500334.066471 1525284.539872
17000 339980 1500440.904751 1525392.027973
17001 340000 1500547.743695 1525499.516720

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