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 29 of 40 · 500/page · 20000 rows next →
# nmargin_tracedmargin_measured
14002 280020 1183331.922255 1206247.925581
14003 280040 1183436.553690 1206353.267760
14004 280060 1183541.185944 1206458.610735
14005 280080 1183645.819018 1206563.954505
14006 280100 1183750.452911 1206669.299072
14007 280120 1183855.087623 1206774.644435
14008 280140 1183959.723155 1206879.990593
14009 280160 1184064.359506 1206985.337546
14010 280180 1184168.996675 1207090.685296
14011 280200 1184273.634664 1207196.033840
14012 280220 1184378.273472 1207301.383181
14013 280240 1184482.913098 1207406.733316
14014 280260 1184587.553543 1207512.084247
14015 280280 1184692.194807 1207617.435973
14016 280300 1184796.836890 1207722.788495
14017 280320 1184901.479791 1207828.141811
14018 280340 1185006.123511 1207933.495923
14019 280360 1185110.768049 1208038.850829
14020 280380 1185215.413406 1208144.206531
14021 280400 1185320.059581 1208249.563028
14022 280420 1185424.706574 1208354.920319
14023 280440 1185529.354386 1208460.278405
14024 280460 1185634.003015 1208565.637286
14025 280480 1185738.652463 1208670.996961
14026 280500 1185843.302729 1208776.357431
14027 280520 1185947.953812 1208881.718696
14028 280540 1186052.605714 1208987.080755
14029 280560 1186157.258434 1209092.443608
14030 280580 1186261.911971 1209197.807256
14031 280600 1186366.566326 1209303.171698
14032 280620 1186471.221498 1209408.536934
14033 280640 1186575.877489 1209513.902965
14034 280660 1186680.534296 1209619.269789
14035 280680 1186785.191922 1209724.637408
14036 280700 1186889.850364 1209830.005820
14037 280720 1186994.509624 1209935.375027
14038 280740 1187099.169701 1210040.745027
14039 280760 1187203.830596 1210146.115821
14040 280780 1187308.492307 1210251.487409
14041 280800 1187413.154836 1210356.859790
14042 280820 1187517.818181 1210462.232965
14043 280840 1187622.482344 1210567.606934
14044 280860 1187727.147323 1210672.981696
14045 280880 1187831.813120 1210778.357252
14046 280900 1187936.479733 1210883.733601
14047 280920 1188041.147162 1210989.110743
14048 280940 1188145.815409 1211094.488679
14049 280960 1188250.484472 1211199.867407
14050 280980 1188355.154351 1211305.246929
14051 281000 1188459.825047 1211410.627244
14052 281020 1188564.496559 1211516.008352
14053 281040 1188669.168888 1211621.390253
14054 281060 1188773.842032 1211726.772946
14055 281080 1188878.515993 1211832.156433
14056 281100 1188983.190770 1211937.540712
14057 281120 1189087.866364 1212042.925784
14058 281140 1189192.542773 1212148.311649
14059 281160 1189297.219998 1212253.698306
14060 281180 1189401.898039 1212359.085755
14061 281200 1189506.576896 1212464.473998
14062 281220 1189611.256568 1212569.863032
14063 281240 1189715.937056 1212675.252859
14064 281260 1189820.618360 1212780.643478
14065 281280 1189925.300480 1212886.034889
14066 281300 1190029.983415 1212991.427093
14067 281320 1190134.667165 1213096.820089
14068 281340 1190239.351730 1213202.213876
14069 281360 1190344.037111 1213307.608456
14070 281380 1190448.723308 1213413.003827
14071 281400 1190553.410319 1213518.399991
14072 281420 1190658.098146 1213623.796946
14073 281440 1190762.786787 1213729.194692
14074 281460 1190867.476244 1213834.593231
14075 281480 1190972.166515 1213939.992561
14076 281500 1191076.857601 1214045.392683
14077 281520 1191181.549503 1214150.793596
14078 281540 1191286.242218 1214256.195300
14079 281560 1191390.935749 1214361.597796
14080 281580 1191495.630094 1214467.001084
14081 281600 1191600.325254 1214572.405162
14082 281620 1191705.021228 1214677.810032
14083 281640 1191809.718016 1214783.215692
14084 281660 1191914.415619 1214888.622144
14085 281680 1192019.114037 1214994.029387
14086 281700 1192123.813268 1215099.437421
14087 281720 1192228.513314 1215204.846245
14088 281740 1192333.214173 1215310.255861
14089 281760 1192437.915847 1215415.666267
14090 281780 1192542.618335 1215521.077464
14091 281800 1192647.321637 1215626.489451
14092 281820 1192752.025752 1215731.902229
14093 281840 1192856.730681 1215837.315798
14094 281860 1192961.436424 1215942.730157
14095 281880 1193066.142981 1216048.145306
14096 281900 1193170.850351 1216153.561246
14097 281920 1193275.558535 1216258.977976
14098 281940 1193380.267532 1216364.395497
14099 281960 1193484.977343 1216469.813807
14100 281980 1193589.687967 1216575.232907
14101 282000 1193694.399404 1216680.652798
14102 282020 1193799.111655 1216786.073478
14103 282040 1193903.824719 1216891.494949
14104 282060 1194008.538596 1216996.917209
14105 282080 1194113.253285 1217102.340259
14106 282100 1194217.968788 1217207.764099
14107 282120 1194322.685104 1217313.188728
14108 282140 1194427.402232 1217418.614147
14109 282160 1194532.120174 1217524.040356
14110 282180 1194636.838928 1217629.467354
14111 282200 1194741.558495 1217734.895141
14112 282220 1194846.278874 1217840.323718
14113 282240 1194951.000066 1217945.753084
14114 282260 1195055.722070 1218051.183240
14115 282280 1195160.444887 1218156.614184
14116 282300 1195265.168516 1218262.045918
14117 282320 1195369.892957 1218367.478441
14118 282340 1195474.618211 1218472.911752
14119 282360 1195579.344276 1218578.345853
14120 282380 1195684.071154 1218683.780743
14121 282400 1195788.798844 1218789.216421
14122 282420 1195893.527346 1218894.652888
14123 282440 1195998.256660 1219000.090144
14124 282460 1196102.986785 1219105.528189
14125 282480 1196207.717722 1219210.967022
14126 282500 1196312.449472 1219316.406643
14127 282520 1196417.182032 1219421.847053
14128 282540 1196521.915404 1219527.288252
14129 282560 1196626.649588 1219632.730239
14130 282580 1196731.384584 1219738.173014
14131 282600 1196836.120390 1219843.616577
14132 282620 1196940.857008 1219949.060928
14133 282640 1197045.594438 1220054.506068
14134 282660 1197150.332678 1220159.951996
14135 282680 1197255.071730 1220265.398711
14136 282700 1197359.811592 1220370.846215
14137 282720 1197464.552266 1220476.294506
14138 282740 1197569.293751 1220581.743585
14139 282760 1197674.036047 1220687.193452
14140 282780 1197778.779153 1220792.644107
14141 282800 1197883.523070 1220898.095549
14142 282820 1197988.267798 1221003.547779
14143 282840 1198093.013337 1221109.000796
14144 282860 1198197.759686 1221214.454600
14145 282880 1198302.506846 1221319.909192
14146 282900 1198407.254816 1221425.364572
14147 282920 1198512.003597 1221530.820738
14148 282940 1198616.753188 1221636.277692
14149 282960 1198721.503589 1221741.735433
14150 282980 1198826.254800 1221847.193961
14151 283000 1198931.006822 1221952.653276
14152 283020 1199035.759654 1222058.113378
14153 283040 1199140.513295 1222163.574267
14154 283060 1199245.267747 1222269.035943
14155 283080 1199350.023009 1222374.498406
14156 283100 1199454.779080 1222479.961655
14157 283120 1199559.535961 1222585.425691
14158 283140 1199664.293652 1222690.890513
14159 283160 1199769.052153 1222796.356122
14160 283180 1199873.811463 1222901.822518
14161 283200 1199978.571582 1223007.289700
14162 283220 1200083.332512 1223112.757668
14163 283240 1200188.094250 1223218.226423
14164 283260 1200292.856798 1223323.695963
14165 283280 1200397.620155 1223429.166290
14166 283300 1200502.384322 1223534.637403
14167 283320 1200607.149297 1223640.109303
14168 283340 1200711.915082 1223745.581988
14169 283360 1200816.681675 1223851.055459
14170 283380 1200921.449078 1223956.529716
14171 283400 1201026.217290 1224062.004759
14172 283420 1201130.986310 1224167.480587
14173 283440 1201235.756139 1224272.957202
14174 283460 1201340.526777 1224378.434602
14175 283480 1201445.298224 1224483.912787
14176 283500 1201550.070479 1224589.391758
14177 283520 1201654.843542 1224694.871515
14178 283540 1201759.617414 1224800.352056
14179 283560 1201864.392095 1224905.833384
14180 283580 1201969.167584 1225011.315496
14181 283600 1202073.943881 1225116.798394
14182 283620 1202178.720986 1225222.282077
14183 283640 1202283.498900 1225327.766545
14184 283660 1202388.277622 1225433.251798
14185 283680 1202493.057151 1225538.737836
14186 283700 1202597.837489 1225644.224659
14187 283720 1202702.618635 1225749.712267
14188 283740 1202807.400588 1225855.200659
14189 283760 1202912.183349 1225960.689836
14190 283780 1203016.966918 1226066.179799
14191 283800 1203121.751295 1226171.670545
14192 283820 1203226.536479 1226277.162076
14193 283840 1203331.322471 1226382.654392
14194 283860 1203436.109270 1226488.147492
14195 283880 1203540.896877 1226593.641377
14196 283900 1203645.685291 1226699.136046
14197 283920 1203750.474512 1226804.631499
14198 283940 1203855.264540 1226910.127736
14199 283960 1203960.055376 1227015.624758
14200 283980 1204064.847019 1227121.122563
14201 284000 1204169.639469 1227226.621153
14202 284020 1204274.432725 1227332.120527
14203 284040 1204379.226789 1227437.620684
14204 284060 1204484.021660 1227543.121625
14205 284080 1204588.817337 1227648.623351
14206 284100 1204693.613821 1227754.125860
14207 284120 1204798.411112 1227859.629152
14208 284140 1204903.209209 1227965.133228
14209 284160 1205008.008113 1228070.638088
14210 284180 1205112.807824 1228176.143731
14211 284200 1205217.608340 1228281.650158
14212 284220 1205322.409664 1228387.157368
14213 284240 1205427.211793 1228492.665361
14214 284260 1205532.014729 1228598.174138
14215 284280 1205636.818471 1228703.683698
14216 284300 1205741.623019 1228809.194041
14217 284320 1205846.428373 1228914.705167
14218 284340 1205951.234533 1229020.217076
14219 284360 1206056.041499 1229125.729768
14220 284380 1206160.849271 1229231.243242
14221 284400 1206265.657849 1229336.757500
14222 284420 1206370.467232 1229442.272541
14223 284440 1206475.277421 1229547.788364
14224 284460 1206580.088416 1229653.304970
14225 284480 1206684.900216 1229758.822358
14226 284500 1206789.712822 1229864.340529
14227 284520 1206894.526233 1229969.859483
14228 284540 1206999.340450 1230075.379219
14229 284560 1207104.155472 1230180.899737
14230 284580 1207208.971299 1230286.421038
14231 284600 1207313.787931 1230391.943121
14232 284620 1207418.605369 1230497.465986
14233 284640 1207523.423611 1230602.989633
14234 284660 1207628.242659 1230708.514062
14235 284680 1207733.062511 1230814.039273
14236 284700 1207837.883169 1230919.565266
14237 284720 1207942.704631 1231025.092042
14238 284740 1208047.526898 1231130.619598
14239 284760 1208152.349970 1231236.147937
14240 284780 1208257.173846 1231341.677058
14241 284800 1208361.998527 1231447.206960
14242 284820 1208466.824012 1231552.737643
14243 284840 1208571.650302 1231658.269109
14244 284860 1208676.477396 1231763.801355
14245 284880 1208781.305295 1231869.334383
14246 284900 1208886.133997 1231974.868193
14247 284920 1208990.963504 1232080.402784
14248 284940 1209095.793816 1232185.938156
14249 284960 1209200.624931 1232291.474309
14250 284980 1209305.456850 1232397.011243
14251 285000 1209410.289573 1232502.548958
14252 285020 1209515.123100 1232608.087455
14253 285040 1209619.957431 1232713.626732
14254 285060 1209724.792566 1232819.166790
14255 285080 1209829.628504 1232924.707629
14256 285100 1209934.465246 1233030.249249
14257 285120 1210039.302792 1233135.791650
14258 285140 1210144.141141 1233241.334831
14259 285160 1210248.980294 1233346.878792
14260 285180 1210353.820250 1233452.423535
14261 285200 1210458.661009 1233557.969057
14262 285220 1210563.502572 1233663.515361
14263 285240 1210668.344938 1233769.062444
14264 285260 1210773.188107 1233874.610308
14265 285280 1210878.032079 1233980.158952
14266 285300 1210982.876854 1234085.708376
14267 285320 1211087.722433 1234191.258581
14268 285340 1211192.568814 1234296.809565
14269 285360 1211297.415998 1234402.361329
14270 285380 1211402.263984 1234507.913874
14271 285400 1211507.112774 1234613.467198
14272 285420 1211611.962366 1234719.021302
14273 285440 1211716.812761 1234824.576186
14274 285460 1211821.663958 1234930.131849
14275 285480 1211926.515958 1235035.688293
14276 285500 1212031.368760 1235141.245515
14277 285520 1212136.222364 1235246.803518
14278 285540 1212241.076771 1235352.362299
14279 285560 1212345.931980 1235457.921861
14280 285580 1212450.787992 1235563.482201
14281 285600 1212555.644805 1235669.043321
14282 285620 1212660.502421 1235774.605220
14283 285640 1212765.360838 1235880.167898
14284 285660 1212870.220057 1235985.731356
14285 285680 1212975.080079 1236091.295592
14286 285700 1213079.940902 1236196.860607
14287 285720 1213184.802526 1236302.426402
14288 285740 1213289.664953 1236407.992975
14289 285760 1213394.528181 1236513.560327
14290 285780 1213499.392211 1236619.128458
14291 285800 1213604.257042 1236724.697367
14292 285820 1213709.122675 1236830.267056
14293 285840 1213813.989109 1236935.837522
14294 285860 1213918.856344 1237041.408768
14295 285880 1214023.724381 1237146.980791
14296 285900 1214128.593218 1237252.553594
14297 285920 1214233.462857 1237358.127174
14298 285940 1214338.333297 1237463.701533
14299 285960 1214443.204538 1237569.276670
14300 285980 1214548.076580 1237674.852585
14301 286000 1214652.949423 1237780.429279
14302 286020 1214757.823067 1237886.006750
14303 286040 1214862.697512 1237991.585000
14304 286060 1214967.572757 1238097.164027
14305 286080 1215072.448803 1238202.743832
14306 286100 1215177.325649 1238308.324415
14307 286120 1215282.203296 1238413.905776
14308 286140 1215387.081744 1238519.487915
14309 286160 1215491.960992 1238625.070831
14310 286180 1215596.841040 1238730.654525
14311 286200 1215701.721888 1238836.238996
14312 286220 1215806.603537 1238941.824245
14313 286240 1215911.485986 1239047.410271
14314 286260 1216016.369235 1239152.997075
14315 286280 1216121.253284 1239258.584656
14316 286300 1216226.138133 1239364.173014
14317 286320 1216331.023782 1239469.762149
14318 286340 1216435.910231 1239575.352062
14319 286360 1216540.797479 1239680.942751
14320 286380 1216645.685528 1239786.534218
14321 286400 1216750.574376 1239892.126461
14322 286420 1216855.464023 1239997.719481
14323 286440 1216960.354470 1240103.313278
14324 286460 1217065.245717 1240208.907852
14325 286480 1217170.137763 1240314.503203
14326 286500 1217275.030609 1240420.099330
14327 286520 1217379.924253 1240525.696234
14328 286540 1217484.818697 1240631.293915
14329 286560 1217589.713941 1240736.892372
14330 286580 1217694.609983 1240842.491605
14331 286600 1217799.506825 1240948.091615
14332 286620 1217904.404465 1241053.692401
14333 286640 1218009.302904 1241159.293963
14334 286660 1218114.202143 1241264.896302
14335 286680 1218219.102180 1241370.499416
14336 286700 1218324.003016 1241476.103307
14337 286720 1218428.904650 1241581.707974
14338 286740 1218533.807083 1241687.313416
14339 286760 1218638.710315 1241792.919635
14340 286780 1218743.614346 1241898.526629
14341 286800 1218848.519174 1242004.134399
14342 286820 1218953.424801 1242109.742945
14343 286840 1219058.331227 1242215.352267
14344 286860 1219163.238451 1242320.962364
14345 286880 1219268.146473 1242426.573236
14346 286900 1219373.055293 1242532.184885
14347 286920 1219477.964911 1242637.797308
14348 286940 1219582.875328 1242743.410507
14349 286960 1219687.786542 1242849.024481
14350 286980 1219792.698554 1242954.639231
14351 287000 1219897.611364 1243060.254756
14352 287020 1220002.524972 1243165.871056
14353 287040 1220107.439378 1243271.488131
14354 287060 1220212.354581 1243377.105981
14355 287080 1220317.270582 1243482.724606
14356 287100 1220422.187380 1243588.344005
14357 287120 1220527.104976 1243693.964180
14358 287140 1220632.023370 1243799.585130
14359 287160 1220736.942560 1243905.206854
14360 287180 1220841.862548 1244010.829353
14361 287200 1220946.783334 1244116.452626
14362 287220 1221051.704916 1244222.076674
14363 287240 1221156.627296 1244327.701497
14364 287260 1221261.550473 1244433.327094
14365 287280 1221366.474446 1244538.953465
14366 287300 1221471.399217 1244644.580611
14367 287320 1221576.324784 1244750.208531
14368 287340 1221681.251149 1244855.837225
14369 287360 1221786.178310 1244961.466694
14370 287380 1221891.106268 1245067.096936
14371 287400 1221996.035022 1245172.727953
14372 287420 1222100.964573 1245278.359743
14373 287440 1222205.894921 1245383.992307
14374 287460 1222310.826065 1245489.625646
14375 287480 1222415.758005 1245595.259758
14376 287500 1222520.690742 1245700.894644
14377 287520 1222625.624275 1245806.530303
14378 287540 1222730.558605 1245912.166736
14379 287560 1222835.493730 1246017.803943
14380 287580 1222940.429652 1246123.441923
14381 287600 1223045.366369 1246229.080677
14382 287620 1223150.303883 1246334.720204
14383 287640 1223255.242193 1246440.360504
14384 287660 1223360.181298 1246546.001578
14385 287680 1223465.121199 1246651.643425
14386 287700 1223570.061896 1246757.286045
14387 287720 1223675.003389 1246862.929438
14388 287740 1223779.945677 1246968.573604
14389 287760 1223884.888761 1247074.218543
14390 287780 1223989.832640 1247179.864255
14391 287800 1224094.777315 1247285.510740
14392 287820 1224199.722785 1247391.157998
14393 287840 1224304.669050 1247496.806029
14394 287860 1224409.616111 1247602.454832
14395 287880 1224514.563967 1247708.104408
14396 287900 1224619.512618 1247813.754757
14397 287920 1224724.462064 1247919.405878
14398 287940 1224829.412305 1248025.057771
14399 287960 1224934.363342 1248130.710437
14400 287980 1225039.315173 1248236.363875
14401 288000 1225144.267798 1248342.018086
14402 288020 1225249.221219 1248447.673069
14403 288040 1225354.175434 1248553.328824
14404 288060 1225459.130444 1248658.985351
14405 288080 1225564.086249 1248764.642650
14406 288100 1225669.042848 1248870.300721
14407 288120 1225774.000242 1248975.959564
14408 288140 1225878.958430 1249081.619179
14409 288160 1225983.917412 1249187.279566
14410 288180 1226088.877189 1249292.940725
14411 288200 1226193.837760 1249398.602655
14412 288220 1226298.799125 1249504.265357
14413 288240 1226403.761284 1249609.928831
14414 288260 1226508.724237 1249715.593076
14415 288280 1226613.687985 1249821.258093
14416 288300 1226718.652526 1249926.923881
14417 288320 1226823.617861 1250032.590441
14418 288340 1226928.583990 1250138.257771
14419 288360 1227033.550913 1250243.925873
14420 288380 1227138.518629 1250349.594747
14421 288400 1227243.487139 1250455.264391
14422 288420 1227348.456443 1250560.934807
14423 288440 1227453.426540 1250666.605993
14424 288460 1227558.397430 1250772.277951
14425 288480 1227663.369114 1250877.950679
14426 288500 1227768.341592 1250983.624178
14427 288520 1227873.314862 1251089.298448
14428 288540 1227978.288926 1251194.973489
14429 288560 1228083.263783 1251300.649301
14430 288580 1228188.239433 1251406.325883
14431 288600 1228293.215876 1251512.003235
14432 288620 1228398.193112 1251617.681359
14433 288640 1228503.171141 1251723.360252
14434 288660 1228608.149963 1251829.039916
14435 288680 1228713.129578 1251934.720351
14436 288700 1228818.109985 1252040.401555
14437 288720 1228923.091186 1252146.083530
14438 288740 1229028.073178 1252251.766275
14439 288760 1229133.055964 1252357.449790
14440 288780 1229238.039541 1252463.134076
14441 288800 1229343.023912 1252568.819131
14442 288820 1229448.009074 1252674.504956
14443 288840 1229552.995029 1252780.191551
14444 288860 1229657.981776 1252885.878916
14445 288880 1229762.969316 1252991.567050
14446 288900 1229867.957647 1253097.255955
14447 288920 1229972.946771 1253202.945628
14448 288940 1230077.936687 1253308.636072
14449 288960 1230182.927394 1253414.327285
14450 288980 1230287.918894 1253520.019268
14451 289000 1230392.911185 1253625.712020
14452 289020 1230497.904268 1253731.405541
14453 289040 1230602.898143 1253837.099831
14454 289060 1230707.892810 1253942.794891
14455 289080 1230812.888268 1254048.490720
14456 289100 1230917.884517 1254154.187319
14457 289120 1231022.881559 1254259.884686
14458 289140 1231127.879391 1254365.582822
14459 289160 1231232.878015 1254471.281727
14460 289180 1231337.877430 1254576.981401
14461 289200 1231442.877637 1254682.681844
14462 289220 1231547.878635 1254788.383056
14463 289240 1231652.880424 1254894.085037
14464 289260 1231757.883003 1254999.787786
14465 289280 1231862.886374 1255105.491304
14466 289300 1231967.890536 1255211.195590
14467 289320 1232072.895489 1255316.900645
14468 289340 1232177.901233 1255422.606468
14469 289360 1232282.907767 1255528.313060
14470 289380 1232387.915092 1255634.020420
14471 289400 1232492.923208 1255739.728548
14472 289420 1232597.932114 1255845.437445
14473 289440 1232702.941811 1255951.147109
14474 289460 1232807.952298 1256056.857542
14475 289480 1232912.963576 1256162.568743
14476 289500 1233017.975644 1256268.280712
14477 289520 1233122.988503 1256373.993449
14478 289540 1233228.002151 1256479.706953
14479 289560 1233333.016590 1256585.421226
14480 289580 1233438.031819 1256691.136266
14481 289600 1233543.047838 1256796.852074
14482 289620 1233648.064647 1256902.568649
14483 289640 1233753.082246 1257008.285992
14484 289660 1233858.100635 1257114.004103
14485 289680 1233963.119814 1257219.722981
14486 289700 1234068.139782 1257325.442627
14487 289720 1234173.160540 1257431.163039
14488 289740 1234278.182088 1257536.884220
14489 289760 1234383.204425 1257642.606167
14490 289780 1234488.227552 1257748.328882
14491 289800 1234593.251468 1257854.052363
14492 289820 1234698.276174 1257959.776612
14493 289840 1234803.301669 1258065.501628
14494 289860 1234908.327954 1258171.227411
14495 289880 1235013.355027 1258276.953961
14496 289900 1235118.382890 1258382.681277
14497 289920 1235223.411542 1258488.409361
14498 289940 1235328.440983 1258594.138211
14499 289960 1235433.471213 1258699.867827
14500 289980 1235538.502232 1258805.598211
14501 290000 1235643.534039 1258911.329361

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