E-021-sinf-sf-curve.py
Experiments: E-021 · script updated 08-19-2026
E-021-sinf-sf-curve.csv
— 299.9 KB, updated 08-19-2026
| # | n | S_inf | S_f | lambda_n | abs_Sf |
|---|---|---|---|---|---|
| 2002 | 2001 | 5343.16128272 | -10.703014107 | 5354.86429683 | 10.703014107 |
| 2003 | 2002 | 5346.33177811 | -10.6240424134 | 5357.95582053 | 10.6240424134 |
| 2004 | 2003 | 5349.50252326 | -10.5317018394 | 5361.0342251 | 10.5317018394 |
| 2005 | 2004 | 5352.67351803 | -10.4261563368 | 5364.09967436 | 10.4261563368 |
| 2006 | 2005 | 5355.8447623 | -10.3076173889 | 5367.15237969 | 10.3076173889 |
| 2007 | 2006 | 5359.01625594 | -10.1763430958 | 5370.19259904 | 10.1763430958 |
| 2008 | 2007 | 5362.18799884 | -10.0326370332 | 5373.22063588 | 10.0326370332 |
| 2009 | 2008 | 5365.35999087 | -9.87684688854 | 5376.23683776 | 9.87684688854 |
| 2010 | 2009 | 5368.5322319 | -9.7093628832 | 5379.24159479 | 9.7093628832 |
| 2011 | 2010 | 5371.70472181 | -9.53061598778 | 5382.2353378 | 9.53061598778 |
| 2012 | 2011 | 5374.87746048 | -9.34107594063 | 5385.21853642 | 9.34107594063 |
| 2013 | 2012 | 5378.05044778 | -9.14124907925 | 5388.19169686 | 9.14124907925 |
| 2014 | 2013 | 5381.22368359 | -8.93167599602 | 5391.15535959 | 8.93167599602 |
| 2015 | 2014 | 5384.39716778 | -8.71292903017 | 5394.11009681 | 8.71292903017 |
| 2016 | 2015 | 5387.57090024 | -8.48560960908 | 5397.05650985 | 8.48560960908 |
| 2017 | 2016 | 5390.74488084 | -8.25034545233 | 5399.99522629 | 8.25034545233 |
| 2018 | 2017 | 5393.91910945 | -8.00778765293 | 5402.9268971 | 8.00778765293 |
| 2019 | 2018 | 5397.09358595 | -7.7586076507 | 5405.8521936 | 7.7586076507 |
| 2020 | 2019 | 5400.26831023 | -7.50349411321 | 5408.77180434 | 7.50349411321 |
| 2021 | 2020 | 5403.44328215 | -7.24314974022 | 5411.68643189 | 7.24314974022 |
| 2022 | 2021 | 5406.6185016 | -6.97828800797 | 5414.5967896 | 6.97828800797 |
| 2023 | 2022 | 5409.79396844 | -6.70962986987 | 5417.50359831 | 6.70962986987 |
| 2024 | 2023 | 5412.96968257 | -6.43790043047 | 5420.407583 | 6.43790043047 |
| 2025 | 2024 | 5416.14564386 | -6.16382560954 | 5423.30946947 | 6.16382560954 |
| 2026 | 2025 | 5419.32185218 | -5.88812881331 | 5426.209981 | 5.88812881331 |
| 2027 | 2026 | 5422.49830742 | -5.61152762977 | 5429.10983505 | 5.61152762977 |
| 2028 | 2027 | 5425.67500945 | -5.33473056478 | 5432.00974001 | 5.33473056478 |
| 2029 | 2028 | 5428.85195814 | -5.05843383556 | 5434.91039198 | 5.05843383556 |
| 2030 | 2029 | 5432.02915339 | -4.78331823789 | 5437.81247163 | 4.78331823789 |
| 2031 | 2030 | 5435.20659506 | -4.5100461027 | 5440.71664116 | 4.5100461027 |
| 2032 | 2031 | 5438.38428304 | -4.2392583577 | 5443.6235414 | 4.2392583577 |
| 2033 | 2032 | 5441.5622172 | -3.97157170863 | 5446.53378891 | 3.97157170863 |
| 2034 | 2033 | 5444.74039743 | -3.70757595453 | 5449.44797338 | 3.70757595453 |
| 2035 | 2034 | 5447.91882359 | -3.44783145056 | 5452.36665504 | 3.44783145056 |
| 2036 | 2035 | 5451.09749558 | -3.192866731 | 5455.29036231 | 3.192866731 |
| 2037 | 2036 | 5454.27641327 | -2.94317630444 | 5458.21958957 | 2.94317630444 |
| 2038 | 2037 | 5457.45557654 | -2.69921863229 | 5461.15479517 | 2.69921863229 |
| 2039 | 2038 | 5460.63498526 | -2.46141430055 | 5464.09639956 | 2.46141430055 |
| 2040 | 2039 | 5463.81463933 | -2.23014439401 | 5467.04478372 | 2.23014439401 |
| 2041 | 2040 | 5466.99453861 | -2.00574908098 | 5470.00028769 | 2.00574908098 |
| 2042 | 2041 | 5470.17468299 | -1.78852641542 | 5472.96320941 | 1.78852641542 |
| 2043 | 2042 | 5473.35507235 | -1.57873136244 | 5475.93380372 | 1.57873136244 |
| 2044 | 2043 | 5476.53570657 | -1.37657505174 | 5478.91228162 | 1.37657505174 |
| 2045 | 2044 | 5479.71658553 | -1.18222426262 | 5481.89880979 | 1.18222426262 |
| 2046 | 2045 | 5482.8977091 | -0.995801142824 | 5484.89351024 | 0.995801142824 |
| 2047 | 2046 | 5486.07907717 | -0.817383162417 | 5487.89646034 | 0.817383162417 |
| 2048 | 2047 | 5489.26068963 | -0.647003302519 | 5490.90769293 | 0.647003302519 |
| 2049 | 2048 | 5492.44254634 | -0.484650477695 | 5493.92719682 | 0.484650477695 |
| 2050 | 2049 | 5495.62464719 | -0.330270189451 | 5496.95491738 | 0.330270189451 |
| 2051 | 2050 | 5498.80699207 | -0.183765407188 | 5499.99075747 | 0.183765407188 |
| 2052 | 2051 | 5501.98958084 | -0.0449976717221 | 5503.03457851 | 0.0449976717221 |
| 2053 | 2052 | 5505.1724134 | 0.0862115846027 | 5506.08620182 | 0.0862115846027 |
| 2054 | 2053 | 5508.35548963 | 0.210079508342 | 5509.14541012 | 0.210079508342 |
| 2055 | 2054 | 5511.5388094 | 0.326860094122 | 5512.2119493 | 0.326860094122 |
| 2056 | 2055 | 5514.7223726 | 0.436842261791 | 5515.28553033 | 0.436842261791 |
| 2057 | 2056 | 5517.9061791 | 0.540347751777 | 5518.36583135 | 0.540347751777 |
| 2058 | 2057 | 5521.0902288 | 0.637728849842 | 5521.45249995 | 0.637728849842 |
| 2059 | 2058 | 5524.27452157 | 0.729365953272 | 5524.54515562 | 0.729365953272 |
| 2060 | 2059 | 5527.4590573 | 0.815664991385 | 5527.64339231 | 0.815664991385 |
| 2061 | 2060 | 5530.64383586 | 0.897054714004 | 5530.74678114 | 0.897054714004 |
| 2062 | 2061 | 5533.82885714 | 0.973983862199 | 5533.85487327 | 0.973983862199 |
| 2063 | 2062 | 5537.01412102 | 1.04691823626 | 5536.96720278 | 1.04691823626 |
| 2064 | 2063 | 5540.19962738 | 1.11633767634 | 5540.0832897 | 1.11633767634 |
| 2065 | 2064 | 5543.38537611 | 1.18273297176 | 5543.20264314 | 1.18273297176 |
| 2066 | 2065 | 5546.57136709 | 1.24660271523 | 5546.32476437 | 1.24660271523 |
| 2067 | 2066 | 5549.75760019 | 1.30845011864 | 5549.44915008 | 1.30845011864 |
| 2068 | 2067 | 5552.94407531 | 1.36877980723 | 5552.57529551 | 1.36877980723 |
| 2069 | 2068 | 5556.13079233 | 1.42809460907 | 5555.70269772 | 1.42809460907 |
| 2070 | 2069 | 5559.31775113 | 1.48689235683 | 5558.83085877 | 1.48689235683 |
| 2071 | 2070 | 5562.50495159 | 1.54566271889 | 5561.95928887 | 1.54566271889 |
| 2072 | 2071 | 5565.69239359 | 1.60488407635 | 5565.08750952 | 1.60488407635 |
| 2073 | 2072 | 5568.88007703 | 1.66502046281 | 5568.21505657 | 1.66502046281 |
| 2074 | 2073 | 5572.06800178 | 1.72651858296 | 5571.34148319 | 1.72651858296 |
| 2075 | 2074 | 5575.25616772 | 1.78980492602 | 5574.4663628 | 1.78980492602 |
| 2076 | 2075 | 5578.44457475 | 1.85528298936 | 5577.58929176 | 1.85528298936 |
| 2077 | 2076 | 5581.63322273 | 1.92333062721 | 5580.70989211 | 1.92333062721 |
| 2078 | 2077 | 5584.82211157 | 1.99429753873 | 5583.82781403 | 1.99429753873 |
| 2079 | 2078 | 5588.01124114 | 2.06850290883 | 5586.94273823 | 2.06850290883 |
| 2080 | 2079 | 5591.20061132 | 2.14623321481 | 5590.0543781 | 2.14623321481 |
| 2081 | 2080 | 5594.390222 | 2.22774021037 | 5593.16248179 | 2.22774021037 |
| 2082 | 2081 | 5597.58007307 | 2.31323909843 | 5596.26683397 | 2.31323909843 |
| 2083 | 2082 | 5600.77016441 | 2.4029069025 | 5599.36725751 | 2.4029069025 |
| 2084 | 2083 | 5603.9604959 | 2.49688104594 | 5602.46361485 | 2.49688104594 |
| 2085 | 2084 | 5607.15106743 | 2.59525814701 | 5605.55580928 | 2.59525814701 |
| 2086 | 2085 | 5610.34187888 | 2.69809303659 | 5608.64378585 | 2.69809303659 |
| 2087 | 2086 | 5613.53293014 | 2.80539800454 | 5611.72753214 | 2.80539800454 |
| 2088 | 2087 | 5616.7242211 | 2.91714227916 | 5614.80707882 | 2.91714227916 |
| 2089 | 2088 | 5619.91575163 | 3.03325174331 | 5617.88249989 | 3.03325174331 |
| 2090 | 2089 | 5623.10752163 | 3.15360888928 | 5620.95391274 | 3.15360888928 |
| 2091 | 2090 | 5626.29953097 | 3.27805301362 | 5624.02147796 | 3.27805301362 |
| 2092 | 2091 | 5629.49177955 | 3.4063806515 | 5627.0853989 | 3.4063806515 |
| 2093 | 2092 | 5632.68426725 | 3.53834624934 | 5630.145921 | 3.53834624934 |
| 2094 | 2093 | 5635.87699395 | 3.6736630729 | 5633.20333088 | 3.6736630729 |
| 2095 | 2094 | 5639.06995955 | 3.81200434694 | 5636.2579552 | 3.81200434694 |
| 2096 | 2095 | 5642.26316393 | 3.95300462152 | 5639.3101593 | 3.95300462152 |
| 2097 | 2096 | 5645.45660696 | 4.09626135852 | 5642.3603456 | 4.09626135852 |
| 2098 | 2097 | 5648.65028855 | 4.24133673102 | 5645.40895182 | 4.24133673102 |
| 2099 | 2098 | 5651.84420857 | 4.38775962712 | 5648.45644895 | 4.38775962712 |
| 2100 | 2099 | 5655.03836692 | 4.53502784851 | 5651.50333907 | 4.53502784851 |
| 2101 | 2100 | 5658.23276347 | 4.68261049335 | 5654.55015298 | 4.68261049335 |
| 2102 | 2101 | 5661.42739812 | 4.82995051173 | 5657.59744761 | 4.82995051173 |
| 2103 | 2102 | 5664.62227075 | 4.97646742136 | 5660.64580333 | 4.97646742136 |
| 2104 | 2103 | 5667.81738125 | 5.12156017023 | 5663.69582108 | 5.12156017023 |
| 2105 | 2104 | 5671.01272951 | 5.26461013193 | 5666.74811938 | 5.26461013193 |
| 2106 | 2105 | 5674.20831541 | 5.40498421901 | 5669.80333119 | 5.40498421901 |
| 2107 | 2106 | 5677.40413883 | 5.54203809894 | 5672.86210074 | 5.54203809894 |
| 2108 | 2107 | 5680.60019968 | 5.67511949643 | 5675.92508018 | 5.67511949643 |
| 2109 | 2108 | 5683.79649783 | 5.80357156588 | 5678.99292626 | 5.80357156588 |
| 2110 | 2109 | 5686.99303317 | 5.92673631685 | 5682.06629685 | 5.92673631685 |
| 2111 | 2110 | 5690.18980559 | 6.04395807543 | 5685.14584751 | 6.04395807543 |
| 2112 | 2111 | 5693.38681497 | 6.15458696407 | 5688.23222801 | 6.15458696407 |
| 2113 | 2112 | 5696.58406122 | 6.25798238215 | 5691.32607883 | 6.25798238215 |
| 2114 | 2113 | 5699.7815442 | 6.35351646974 | 5694.42802773 | 6.35351646974 |
| 2115 | 2114 | 5702.97926381 | 6.44057753692 | 5697.53868628 | 6.44057753692 |
| 2116 | 2115 | 5706.17721995 | 6.51857344106 | 5700.6586465 | 6.51857344106 |
| 2117 | 2116 | 5709.37541248 | 6.58693489485 | 5703.78847759 | 6.58693489485 |
| 2118 | 2117 | 5712.57384132 | 6.64511868804 | 5706.92872263 | 6.64511868804 |
| 2119 | 2118 | 5715.77250634 | 6.69261080624 | 5710.07989553 | 6.69261080624 |
| 2120 | 2119 | 5718.97140742 | 6.72892943063 | 5713.24247799 | 6.72892943063 |
| 2121 | 2120 | 5722.17054447 | 6.753627803 | 5716.41691667 | 6.753627803 |
| 2122 | 2121 | 5725.36991737 | 6.76629694106 | 5719.60362043 | 6.76629694106 |
| 2123 | 2122 | 5728.56952601 | 6.7665681898 | 5722.80295782 | 6.7665681898 |
| 2124 | 2123 | 5731.76937027 | 6.75411559522 | 5726.01525468 | 6.75411559522 |
| 2125 | 2124 | 5734.96945005 | 6.72865808802 | 5729.24079196 | 6.72865808802 |
| 2126 | 2125 | 5738.16976523 | 6.68996146522 | 5732.47980377 | 6.68996146522 |
| 2127 | 2126 | 5741.37031571 | 6.63784015903 | 5735.73247555 | 6.63784015903 |
| 2128 | 2127 | 5744.57110137 | 6.57215878315 | 5738.99894259 | 6.57215878315 |
| 2129 | 2128 | 5747.77212211 | 6.49283344784 | 5742.27928866 | 6.49283344784 |
| 2130 | 2129 | 5750.9733778 | 6.39983283609 | 5745.57354497 | 6.39983283609 |
| 2131 | 2130 | 5754.17486835 | 6.29317903448 | 5748.88168932 | 6.29317903448 |
| 2132 | 2131 | 5757.37659364 | 6.17294811356 | 5752.20364553 | 6.17294811356 |
| 2133 | 2132 | 5760.57855356 | 6.03927045362 | 5755.53928311 | 6.03927045362 |
| 2134 | 2133 | 5763.78074801 | 5.89233081314 | 5758.88841719 | 5.89233081314 |
| 2135 | 2134 | 5766.98317686 | 5.73236813838 | 5762.25080872 | 5.73236813838 |
| 2136 | 2135 | 5770.18584002 | 5.55967511387 | 5765.62616491 | 5.55967511387 |
| 2137 | 2136 | 5773.38873737 | 5.37459745479 | 5769.01413991 | 5.37459745479 |
| 2138 | 2137 | 5776.5918688 | 5.17753294356 | 5772.41433586 | 5.17753294356 |
| 2139 | 2138 | 5779.7952342 | 4.96893021421 | 5775.82630399 | 4.96893021421 |
| 2140 | 2139 | 5782.99883347 | 4.74928728926 | 5779.24954618 | 4.74928728926 |
| 2141 | 2140 | 5786.20266649 | 4.51914987517 | 5782.68351662 | 4.51914987517 |
| 2142 | 2141 | 5789.40673316 | 4.27910942361 | 5786.12762374 | 4.27910942361 |
| 2143 | 2142 | 5792.61103336 | 4.02980096684 | 5789.5812324 | 4.02980096684 |
| 2144 | 2143 | 5795.81556699 | 3.77190073682 | 5793.04366625 | 3.77190073682 |
| 2145 | 2144 | 5799.02033394 | 3.50612357848 | 5796.51421036 | 3.50612357848 |
| 2146 | 2145 | 5802.22533409 | 3.23322016889 | 5799.99211392 | 3.23322016889 |
| 2147 | 2146 | 5805.43056735 | 2.95397405488 | 5803.47659329 | 2.95397405488 |
| 2148 | 2147 | 5808.6360336 | 2.66919852253 | 5806.96683507 | 2.66919852253 |
| 2149 | 2148 | 5811.84173273 | 2.37973331296 | 5810.46199942 | 2.37973331296 |
| 2150 | 2149 | 5815.04766463 | 2.08644119953 | 5813.96122343 | 2.08644119953 |
| 2151 | 2150 | 5818.25382921 | 1.79020444215 | 5817.46362476 | 1.79020444215 |
| 2152 | 2151 | 5821.46022633 | 1.49192113541 | 5820.9683052 | 1.49192113541 |
| 2153 | 2152 | 5824.66685591 | 1.19250146723 | 5824.47435445 | 1.19250146723 |
| 2154 | 2153 | 5827.87371784 | 0.892863905764 | 5827.98085393 | 0.892863905764 |
| 2155 | 2154 | 5831.08081199 | 0.593931332232 | 5831.48688066 | 0.593931332232 |
| 2156 | 2155 | 5834.28813827 | 0.296627137924 | 5834.99151114 | 0.296627137924 |
| 2157 | 2156 | 5837.49569658 | 0.00187130370319 | 5838.49382527 | 0.00187130370319 |
| 2158 | 2157 | 5840.70348679 | -0.289423519518 | 5841.99291031 | 0.289423519518 |
| 2159 | 2158 | 5843.9115088 | -0.57635591082 | 5845.48786471 | 0.57635591082 |
| 2160 | 2159 | 5847.11976251 | -0.858039541408 | 5848.97780206 | 0.858039541408 |
| 2161 | 2160 | 5850.32824781 | -1.13360698053 | 5852.46185479 | 1.13360698053 |
| 2162 | 2161 | 5853.5369646 | -1.40221342715 | 5855.93917802 | 1.40221342715 |
| 2163 | 2162 | 5856.74591275 | -1.66304034967 | 5859.4089531 | 1.66304034967 |
| 2164 | 2163 | 5859.95509217 | -1.91529901635 | 5862.87039119 | 1.91529901635 |
| 2165 | 2164 | 5863.16450276 | -2.1582338997 | 5866.32273666 | 2.1582338997 |
| 2166 | 2165 | 5866.37414439 | -2.39112593863 | 5869.76527033 | 2.39112593863 |
| 2167 | 2166 | 5869.58401698 | -2.61329564265 | 5873.19731262 | 2.61329564265 |
| 2168 | 2167 | 5872.7941204 | -2.8241060236 | 5876.61822643 | 2.8241060236 |
| 2169 | 2168 | 5876.00445456 | -3.02296534063 | 5880.0274199 | 3.02296534063 |
| 2170 | 2169 | 5879.21501935 | -3.20932964542 | 5883.42434899 | 3.20932964542 |
| 2171 | 2170 | 5882.42581465 | -3.38270511558 | 5886.80851977 | 3.38270511558 |
| 2172 | 2171 | 5885.63684037 | -3.54265016478 | 5890.17949054 | 3.54265016478 |
| 2173 | 2172 | 5888.8480964 | -3.68877731982 | 5893.53687372 | 3.68877731982 |
| 2174 | 2173 | 5892.05958264 | -3.82075485539 | 5896.88033749 | 3.82075485539 |
| 2175 | 2174 | 5895.27129896 | -3.93830817881 | 5900.20960714 | 3.93830817881 |
| 2176 | 2175 | 5898.48324528 | -4.041220958 | 5903.52446624 | 4.041220958 |
| 2177 | 2176 | 5901.69542149 | -4.12933598737 | 5906.82475748 | 4.12933598737 |
| 2178 | 2177 | 5904.90782747 | -4.20255578732 | 5910.11038326 | 4.20255578732 |
| 2179 | 2178 | 5908.12046313 | -4.26084293447 | 5913.38130607 | 4.26084293447 |
| 2180 | 2179 | 5911.33332836 | -4.30422012108 | 5916.63754848 | 4.30422012108 |
| 2181 | 2180 | 5914.54642305 | -4.33276994327 | 5919.87919299 | 4.33276994327 |
| 2182 | 2181 | 5917.75974709 | -4.34663441896 | 5923.10638151 | 4.34663441896 |
| 2183 | 2182 | 5920.97330039 | -4.34601423786 | 5926.31931463 | 4.34601423786 |
| 2184 | 2183 | 5924.18708284 | -4.33116774709 | 5929.51825059 | 4.33116774709 |
| 2185 | 2184 | 5927.40109433 | -4.3024096771 | 5932.70350401 | 4.3024096771 |
| 2186 | 2185 | 5930.61533476 | -4.26010961405 | 5935.87544437 | 4.26010961405 |
| 2187 | 2186 | 5933.82980402 | -4.20469022583 | 5939.03449425 | 4.20469022583 |
| 2188 | 2187 | 5937.04450201 | -4.13662525028 | 5942.18112726 | 4.13662525028 |
| 2189 | 2188 | 5940.25942862 | -4.05643725496 | 5945.31586588 | 4.05643725496 |
| 2190 | 2189 | 5943.47458375 | -3.96469517935 | 5948.43927893 | 3.96469517935 |
| 2191 | 2190 | 5946.6899673 | -3.862011671 | 5951.55197897 | 3.862011671 |
| 2192 | 2191 | 5949.90557916 | -3.74904022842 | 5954.65461939 | 3.74904022842 |
| 2193 | 2192 | 5953.12141922 | -3.6264721642 | 5957.74789139 | 3.6264721642 |
| 2194 | 2193 | 5956.33748739 | -3.49503340282 | 5960.83252079 | 3.49503340282 |
| 2195 | 2194 | 5959.55378355 | -3.35548112845 | 5963.90926468 | 3.35548112845 |
| 2196 | 2195 | 5962.77030761 | -3.20860029852 | 5966.97890791 | 3.20860029852 |
| 2197 | 2196 | 5965.98705946 | -3.05520003974 | 5970.0422595 | 3.05520003974 |
| 2198 | 2197 | 5969.20403899 | -2.89610994352 | 5973.10014894 | 2.89610994352 |
| 2199 | 2198 | 5972.42124611 | -2.73217627857 | 5976.15342239 | 2.73217627857 |
| 2200 | 2199 | 5975.63868071 | -2.56425813834 | 5979.20293885 | 2.56425813834 |
| 2201 | 2200 | 5978.85634268 | -2.39322354182 | 5982.24956622 | 2.39322354182 |
| 2202 | 2201 | 5982.07423193 | -2.21994550586 | 5985.29417744 | 2.21994550586 |
| 2203 | 2202 | 5985.29234835 | -2.04529810781 | 5988.33764645 | 2.04529810781 |
| 2204 | 2203 | 5988.51069183 | -1.87015255679 | 5991.38084439 | 1.87015255679 |
| 2205 | 2204 | 5991.72926227 | -1.69537329236 | 5994.42463557 | 1.69537329236 |
| 2206 | 2205 | 5994.94805958 | -1.52181412866 | 5997.46987371 | 1.52181412866 |
| 2207 | 2206 | 5998.16708364 | -1.35031446237 | 6000.51739811 | 1.35031446237 |
| 2208 | 2207 | 6001.38633436 | -1.18169556201 | 6003.56802992 | 1.18169556201 |
| 2209 | 2208 | 6004.60581163 | -1.01675695614 | 6006.62256859 | 1.01675695614 |
| 2210 | 2209 | 6007.82551535 | -0.856272937114 | 6009.68178829 | 0.856272937114 |
| 2211 | 2210 | 6011.04544542 | -0.700989196714 | 6012.74643461 | 0.700989196714 |
| 2212 | 2211 | 6014.26560173 | -0.551619609294 | 6015.81722134 | 0.551619609294 |
| 2213 | 2212 | 6017.48598418 | -0.408843177171 | 6018.89482736 | 0.408843177171 |
| 2214 | 2213 | 6020.70659267 | -0.273301152369 | 6021.97989382 | 0.273301152369 |
| 2215 | 2214 | 6023.9274271 | -0.145594347845 | 6025.07302145 | 0.145594347845 |
| 2216 | 2215 | 6027.14848736 | -0.026280650413 | 6028.17476802 | 0.026280650413 |
| 2217 | 2216 | 6030.36977336 | 0.0841272534288 | 6031.28564611 | 0.0841272534288 |
| 2218 | 2217 | 6033.59128499 | 0.1851639286 | 6034.40612107 | 0.1851639286 |
| 2219 | 2218 | 6036.81302215 | 0.276413010417 | 6037.53660914 | 0.276413010417 |
| 2220 | 2219 | 6040.03498474 | 0.357508783536 | 6040.67747596 | 0.357508783536 |
| 2221 | 2220 | 6043.25717266 | 0.428137514125 | 6043.82903515 | 0.428137514125 |
| 2222 | 2221 | 6046.4795858 | 0.488038529738 | 6046.99154727 | 0.488038529738 |
| 2223 | 2222 | 6049.70222406 | 0.537005042622 | 6050.16521902 | 0.537005042622 |
| 2224 | 2223 | 6052.92508735 | 0.574884713413 | 6053.35020264 | 0.574884713413 |
| 2225 | 2224 | 6056.14817556 | 0.601579953461 | 6056.54659561 | 0.601579953461 |
| 2226 | 2225 | 6059.37148859 | 0.617047965313 | 6059.75444062 | 0.617047965313 |
| 2227 | 2226 | 6062.59502634 | 0.621300522128 | 6062.97372581 | 0.621300522128 |
| 2228 | 2227 | 6065.8187887 | 0.614403488084 | 6066.20438521 | 0.614403488084 |
| 2229 | 2228 | 6069.04277559 | 0.596476083101 | 6069.4462995 | 0.596476083101 |
| 2230 | 2229 | 6072.26698689 | 0.567689896419 | 6072.69929699 | 0.567689896419 |
| 2231 | 2230 | 6075.4914225 | 0.528267654811 | 6075.96315485 | 0.528267654811 |
| 2232 | 2231 | 6078.71608233 | 0.478481752361 | 6079.23760058 | 0.478481752361 |
| 2233 | 2232 | 6081.94096628 | 0.418652549917 | 6082.52231373 | 0.418652549917 |
| 2234 | 2233 | 6085.16607424 | 0.349146453406 | 6085.81692778 | 0.349146453406 |
| 2235 | 2234 | 6088.39140611 | 0.270373781268 | 6089.12103233 | 0.270373781268 |
| 2236 | 2235 | 6091.6169618 | 0.182786432267 | 6092.43417537 | 0.182786432267 |
| 2237 | 2236 | 6094.8427412 | 0.086875365879 | 6095.75586583 | 0.086875365879 |
| 2238 | 2237 | 6098.06874421 | -0.0168320916517 | 6099.08557631 | 0.0168320916517 |
| 2239 | 2238 | 6101.29497074 | -0.127775101686 | 6102.42274584 | 0.127775101686 |
| 2240 | 2239 | 6104.52142068 | -0.245362313343 | 6105.766783 | 0.245362313343 |
| 2241 | 2240 | 6107.74809394 | -0.368974994102 | 6109.11706894 | 0.368974994102 |
| 2242 | 2241 | 6110.97499041 | -0.497970274943 | 6112.47296069 | 0.497970274943 |
| 2243 | 2242 | 6114.20211 | -0.631684493581 | 6115.83379449 | 0.631684493581 |
| 2244 | 2243 | 6117.4294526 | -0.769436618932 | 6119.19888922 | 0.769436618932 |
| 2245 | 2244 | 6120.65701811 | -0.910531739592 | 6122.56754985 | 0.910531739592 |
| 2246 | 2245 | 6123.88480645 | -1.05426459885 | 6125.93907104 | 1.05426459885 |
| 2247 | 2246 | 6127.1128175 | -1.19992315856 | 6129.31274065 | 1.19992315856 |
| 2248 | 2247 | 6130.34105116 | -1.34679217422 | 6132.68784334 | 1.34679217422 |
| 2249 | 2248 | 6133.56950735 | -1.49415676333 | 6136.06366411 | 1.49415676333 |
| 2250 | 2249 | 6136.79818596 | -1.64130594965 | 6139.43949191 | 1.64130594965 |
| 2251 | 2250 | 6140.02708688 | -1.78753616562 | 6142.81462305 | 1.78753616562 |
| 2252 | 2251 | 6143.25621003 | -1.93215469591 | 6146.18836473 | 1.93215469591 |
| 2253 | 2252 | 6146.48555531 | -2.07448304517 | 6149.56003835 | 2.07448304517 |
| 2254 | 2253 | 6149.7151226 | -2.2138602136 | 6152.92898282 | 2.2138602136 |
| 2255 | 2254 | 6152.94491183 | -2.34964586439 | 6156.29455769 | 2.34964586439 |
| 2256 | 2255 | 6156.17492288 | -2.48122336767 | 6159.65614625 | 2.48122336767 |
| 2257 | 2256 | 6159.40515566 | -2.6080027065 | 6163.01315837 | 2.6080027065 |
| 2258 | 2257 | 6162.63561008 | -2.72942323075 | 6166.36503331 | 2.72942323075 |
| 2259 | 2258 | 6165.86628602 | -2.84495624591 | 6169.71124227 | 2.84495624591 |
| 2260 | 2259 | 6169.0971834 | -2.95410742465 | 6173.05129083 | 2.95410742465 |
| 2261 | 2260 | 6172.32830212 | -3.05641902963 | 6176.38472115 | 3.05641902963 |
| 2262 | 2261 | 6175.55964208 | -3.1514719374 | 6179.71111401 | 3.1514719374 |
| 2263 | 2262 | 6178.79120318 | -3.23888745417 | 6183.03009063 | 3.23888745417 |
| 2264 | 2263 | 6182.02298532 | -3.31832891498 | 6186.34131423 | 3.31832891498 |
| 2265 | 2264 | 6185.2549884 | -3.38950305947 | 6189.64449146 | 3.38950305947 |
| 2266 | 2265 | 6188.48721234 | -3.4521611782 | 6192.93937352 | 3.4521611782 |
| 2267 | 2266 | 6191.71965702 | -3.50610002468 | 6196.22575705 | 3.50610002468 |
| 2268 | 2267 | 6194.95232236 | -3.55116248975 | 6199.50348485 | 3.55116248975 |
| 2269 | 2268 | 6198.18520826 | -3.58723803576 | 6202.77244629 | 3.58723803576 |
| 2270 | 2269 | 6201.41831461 | -3.61426288962 | 6206.0325775 | 3.61426288962 |
| 2271 | 2270 | 6204.65164132 | -3.63221999471 | 6209.28386132 | 3.63221999471 |
| 2272 | 2271 | 6207.8851883 | -3.64113872298 | 6212.52632702 | 3.64113872298 |
| 2273 | 2272 | 6211.11895545 | -3.64109434994 | 6215.7600498 | 3.64109434994 |
| 2274 | 2273 | 6214.35294266 | -3.63220729604 | 6218.98514996 | 3.63220729604 |
| 2275 | 2274 | 6217.58714985 | -3.61464213966 | 6222.20179199 | 3.61464213966 |
| 2276 | 2275 | 6220.82157692 | -3.5886064075 | 6225.41018333 | 3.5886064075 |
| 2277 | 2276 | 6224.05622377 | -3.55434914981 | 6228.61057292 | 3.55434914981 |
| 2278 | 2277 | 6227.2910903 | -3.51215930852 | 6231.80324961 | 3.51215930852 |
| 2279 | 2278 | 6230.52617642 | -3.46236388776 | 6234.9885403 | 3.46236388776 |
| 2280 | 2279 | 6233.76148202 | -3.40532593694 | 6238.16680796 | 3.40532593694 |
| 2281 | 2280 | 6236.99700703 | -3.34144235763 | 6241.33844939 | 3.34144235763 |
| 2282 | 2281 | 6240.23275133 | -3.27114154638 | 6244.50389288 | 3.27114154638 |
| 2283 | 2282 | 6243.46871483 | -3.19488088635 | 6247.66359572 | 3.19488088635 |
| 2284 | 2283 | 6246.70489744 | -3.11314410133 | 6250.81804154 | 3.11314410133 |
| 2285 | 2284 | 6249.94129906 | -3.02643848663 | 6253.96773755 | 3.02643848663 |
| 2286 | 2285 | 6253.1779196 | -2.93529203147 | 6257.11321163 | 2.93529203147 |
| 2287 | 2286 | 6256.41475895 | -2.84025044865 | 6260.2550094 | 2.84025044865 |
| 2288 | 2287 | 6259.65181702 | -2.74187412699 | 6263.39369115 | 2.74187412699 |
| 2289 | 2288 | 6262.88909372 | -2.64073502305 | 6266.52982875 | 2.64073502305 |
| 2290 | 2289 | 6266.12658896 | -2.53741350846 | 6269.66400247 | 2.53741350846 |
| 2291 | 2290 | 6269.36430263 | -2.43249518959 | 6272.79679782 | 2.43249518959 |
| 2292 | 2291 | 6272.60223464 | -2.32656771638 | 6275.92880235 | 2.32656771638 |
| 2293 | 2292 | 6275.84038489 | -2.22021759701 | 6279.06060249 | 2.22021759701 |
| 2294 | 2293 | 6279.0787533 | -2.11402703529 | 6282.19278033 | 2.11402703529 |
| 2295 | 2294 | 6282.31733976 | -2.00857080719 | 6285.32591056 | 2.00857080719 |
| 2296 | 2295 | 6285.55614418 | -1.90441319301 | 6288.46055737 | 1.90441319301 |
| 2297 | 2296 | 6288.79516646 | -1.80210498103 | 6291.59727144 | 1.80210498103 |
| 2298 | 2297 | 6292.03440652 | -1.70218055832 | 6294.73658708 | 1.70218055832 |
| 2299 | 2298 | 6295.27386425 | -1.60515510386 | 6297.87901935 | 1.60515510386 |
| 2300 | 2299 | 6298.51353956 | -1.51152189846 | 6301.02506146 | 1.51152189846 |
| 2301 | 2300 | 6301.75343235 | -1.42174976541 | 6304.17518212 | 1.42174976541 |
| 2302 | 2301 | 6304.99354254 | -1.33628065508 | 6307.3298232 | 1.33628065508 |
| 2303 | 2302 | 6308.23387003 | -1.25552738588 | 6310.48939741 | 1.25552738588 |
| 2304 | 2303 | 6311.47441471 | -1.17987155323 | 6313.65428627 | 1.17987155323 |
| 2305 | 2304 | 6314.71517651 | -1.10966161714 | 6316.82483813 | 1.10966161714 |
| 2306 | 2305 | 6317.95615532 | -1.04521117827 | 6320.0013665 | 1.04521117827 |
| 2307 | 2306 | 6321.19735105 | -0.986797451004 | 6323.1841485 | 0.986797451004 |
| 2308 | 2307 | 6324.4387636 | -0.934659941566 | 6326.37342354 | 0.934659941566 |
| 2309 | 2308 | 6327.68039289 | -0.888999337418 | 6329.56939223 | 0.888999337418 |
| 2310 | 2309 | 6330.92223881 | -0.849976613711 | 6332.77221543 | 0.849976613711 |
| 2311 | 2310 | 6334.16430128 | -0.817712361016 | 6335.98201364 | 0.817712361016 |
| 2312 | 2311 | 6337.4065802 | -0.792286337542 | 6339.19886654 | 0.792286337542 |
| 2313 | 2312 | 6340.64907547 | -0.773737247847 | 6342.42281272 | 0.773737247847 |
| 2314 | 2313 | 6343.89178701 | -0.762062748842 | 6345.65384976 | 0.762062748842 |
| 2315 | 2314 | 6347.13471472 | -0.757219682711 | 6348.8919344 | 0.757219682711 |
| 2316 | 2315 | 6350.3778585 | -0.759124535155 | 6352.13698304 | 0.759124535155 |
| 2317 | 2316 | 6353.62121827 | -0.767654116202 | 6355.38887239 | 0.767654116202 |
| 2318 | 2317 | 6356.86479393 | -0.782646459643 | 6358.64744038 | 0.782646459643 |
| 2319 | 2318 | 6360.10858538 | -0.803901936009 | 6361.91248731 | 0.803901936009 |
| 2320 | 2319 | 6363.35259253 | -0.831184572883 | 6365.1837771 | 0.831184572883 |
| 2321 | 2320 | 6366.5968153 | -0.864223575255 | 6368.46103887 | 0.864223575255 |
| 2322 | 2321 | 6369.84125358 | -0.902715037549 | 6371.74396862 | 0.902715037549 |
| 2323 | 2322 | 6373.08590729 | -0.946323837989 | 6375.03223112 | 0.946323837989 |
| 2324 | 2323 | 6376.33077632 | -0.994685704963 | 6378.32546203 | 0.994685704963 |
| 2325 | 2324 | 6379.5758606 | -1.04740944417 | 6381.62327005 | 1.04740944417 |
| 2326 | 2325 | 6382.82116003 | -1.10407931446 | 6384.92523934 | 1.10407931446 |
| 2327 | 2326 | 6386.0666745 | -1.16425753953 | 6388.23093204 | 1.16425753953 |
| 2328 | 2327 | 6389.31240394 | -1.22748694183 | 6391.53989088 | 1.22748694183 |
| 2329 | 2328 | 6392.55834825 | -1.29329368459 | 6394.85164193 | 1.29329368459 |
| 2330 | 2329 | 6395.80450733 | -1.36119010688 | 6398.16569744 | 1.36119010688 |
| 2331 | 2330 | 6399.0508811 | -1.43067763677 | 6401.48155874 | 1.43067763677 |
| 2332 | 2331 | 6402.29746946 | -1.50124976654 | 6404.79871923 | 1.50124976654 |
| 2333 | 2332 | 6405.54427233 | -1.57239507397 | 6408.1166674 | 1.57239507397 |
| 2334 | 2333 | 6408.79128959 | -1.64360027347 | 6411.43488987 | 1.64360027347 |
| 2335 | 2334 | 6412.03852118 | -1.71435328047 | 6414.75287446 | 1.71435328047 |
| 2336 | 2335 | 6415.28596699 | -1.78414627242 | 6418.07011326 | 1.78414627242 |
| 2337 | 2336 | 6418.53362693 | -1.85247872997 | 6421.38610566 | 1.85247872997 |
| 2338 | 2337 | 6421.78150092 | -1.9188604417 | 6424.70036136 | 1.9188604417 |
| 2339 | 2338 | 6425.02958885 | -1.9828144561 | 6428.01240331 | 1.9828144561 |
| 2340 | 2339 | 6428.27789064 | -2.04387996477 | 6431.32177061 | 2.04387996477 |
| 2341 | 2340 | 6431.5264062 | -2.10161510105 | 6434.6280213 | 2.10161510105 |
| 2342 | 2341 | 6434.77513543 | -2.15559963875 | 6437.93073507 | 2.15559963875 |
| 2343 | 2342 | 6438.02407825 | -2.20543757621 | 6441.22951583 | 2.20543757621 |
| 2344 | 2343 | 6441.27323456 | -2.25075959148 | 6444.52399415 | 2.25075959148 |
| 2345 | 2344 | 6444.52260427 | -2.29122535487 | 6447.81382963 | 2.29122535487 |
| 2346 | 2345 | 6447.7721873 | -2.32652568624 | 6451.09871298 | 2.32652568624 |
| 2347 | 2346 | 6451.02198354 | -2.35638454471 | 6454.37836808 | 2.35638454471 |
| 2348 | 2347 | 6454.27199291 | -2.38056083984 | 6457.65255375 | 2.38056083984 |
| 2349 | 2348 | 6457.52221532 | -2.39885005366 | 6460.92106537 | 2.39885005366 |
| 2350 | 2349 | 6460.77265067 | -2.41108566452 | 6464.18373634 | 2.41108566452 |
| 2351 | 2350 | 6464.02329889 | -2.41714036418 | 6467.44043925 | 2.41714036418 |
| 2352 | 2351 | 6467.27415986 | -2.4169270611 | 6470.69108692 | 2.4169270611 |
| 2353 | 2352 | 6470.52523352 | -2.41039966357 | 6473.93563318 | 2.41039966357 |
| 2354 | 2353 | 6473.77651976 | -2.39755363781 | 6477.17407339 | 2.39755363781 |
| 2355 | 2354 | 6477.02801849 | -2.37842633711 | 6480.40644483 | 2.37842633711 |
| 2356 | 2355 | 6480.27972963 | -2.35309709933 | 6483.63282673 | 2.35309709933 |
| 2357 | 2356 | 6483.53165308 | -2.32168711138 | 6486.85334019 | 2.32168711138 |
| 2358 | 2357 | 6486.78378876 | -2.28435904021 | 6490.0681478 | 2.28435904021 |
| 2359 | 2358 | 6490.03613657 | -2.24131643154 | 6493.277453 | 2.24131643154 |
| 2360 | 2359 | 6493.28869642 | -2.19280287825 | 6496.4814993 | 2.19280287825 |
| 2361 | 2360 | 6496.54146823 | -2.13910096198 | 6499.68056919 | 2.13910096198 |
| 2362 | 2361 | 6499.7944519 | -2.08053097234 | 6502.87498287 | 2.08053097234 |
| 2363 | 2362 | 6503.04764735 | -2.01744940965 | 6506.06509676 | 2.01744940965 |
| 2364 | 2363 | 6506.30105448 | -1.95024727785 | 6509.25130176 | 1.95024727785 |
| 2365 | 2364 | 6509.55467321 | -1.87934817579 | 6512.43402139 | 1.87934817579 |
| 2366 | 2365 | 6512.80850344 | -1.80520619578 | 6515.61370964 | 1.80520619578 |
| 2367 | 2366 | 6516.06254509 | -1.72830363959 | 6518.79084873 | 1.72830363959 |
| 2368 | 2367 | 6519.31679807 | -1.64914856288 | 6521.96594664 | 1.64914856288 |
| 2369 | 2368 | 6522.57126229 | -1.56827216011 | 6525.13953445 | 1.56827216011 |
| 2370 | 2369 | 6525.82593765 | -1.48622600273 | 6528.31216365 | 1.48622600273 |
| 2371 | 2370 | 6529.08082408 | -1.40357914432 | 6531.48440322 | 1.40357914432 |
| 2372 | 2371 | 6532.33592147 | -1.32091510712 | 6534.65683658 | 1.32091510712 |
| 2373 | 2372 | 6535.59122975 | -1.2388287649 | 6537.83005851 | 1.2388287649 |
| 2374 | 2373 | 6538.84674881 | -1.15792313789 | 6541.00467195 | 1.15792313789 |
| 2375 | 2374 | 6542.10247859 | -1.07880611592 | 6544.1812847 | 1.07880611592 |
| 2376 | 2375 | 6545.35841897 | -1.00208712635 | 6547.3605061 | 1.00208712635 |
| 2377 | 2376 | 6548.61456989 | -0.928373763639 | 6550.54294365 | 0.928373763639 |
| 2378 | 2377 | 6551.87093124 | -0.858268397978 | 6553.72919963 | 0.858268397978 |
| 2379 | 2378 | 6555.12750294 | -0.792364780059 | 6556.91986772 | 0.792364780059 |
| 2380 | 2379 | 6558.3842849 | -0.73124465971 | 6560.11552956 | 0.73124465971 |
| 2381 | 2380 | 6561.64127703 | -0.675474435708 | 6563.31675147 | 0.675474435708 |
| 2382 | 2381 | 6564.89847925 | -0.625601854228 | 6566.5240811 | 0.625601854228 |
| 2383 | 2382 | 6568.15589146 | -0.582152773098 | 6569.73804423 | 0.582152773098 |
| 2384 | 2383 | 6571.41351358 | -0.54562800884 | 6572.95914159 | 0.54562800884 |
| 2385 | 2384 | 6574.67134552 | -0.516500283069 | 6576.1878458 | 0.516500283069 |
| 2386 | 2385 | 6577.92938719 | -0.495211284453 | 6579.42459848 | 0.495211284453 |
| 2387 | 2386 | 6581.18763851 | -0.48216886187 | 6582.66980737 | 0.48216886187 |
| 2388 | 2387 | 6584.44609938 | -0.477744363834 | 6585.92384374 | 0.477744363834 |
| 2389 | 2388 | 6587.70476972 | -0.48227013859 | 6589.18703986 | 0.48227013859 |
| 2390 | 2389 | 6590.96364944 | -0.496037208523 | 6592.45968665 | 0.496037208523 |
| 2391 | 2390 | 6594.22273845 | -0.519293131716 | 6595.74203158 | 0.519293131716 |
| 2392 | 2391 | 6597.48203667 | -0.552240062618 | 6599.03427673 | 0.552240062618 |
| 2393 | 2392 | 6600.741544 | -0.595033022828 | 6602.33657702 | 0.595033022828 |
| 2394 | 2393 | 6604.00126037 | -0.64777839201 | 6605.64903876 | 0.64777839201 |
| 2395 | 2394 | 6607.26118567 | -0.710532627889 | 6608.9717183 | 0.710532627889 |
| 2396 | 2395 | 6610.52131984 | -0.783301223199 | 6612.30462106 | 0.783301223199 |
| 2397 | 2396 | 6613.78166277 | -0.866037906278 | 6615.64770067 | 0.866037906278 |
| 2398 | 2397 | 6617.04221438 | -0.958644090857 | 6619.00085847 | 0.958644090857 |
| 2399 | 2398 | 6620.30297459 | -1.06096857936 | 6622.36394317 | 1.06096857936 |
| 2400 | 2399 | 6623.5639433 | -1.17280752281 | 6625.73675082 | 1.17280752281 |
| 2401 | 2400 | 6626.82512043 | -1.29390463916 | 6629.11902507 | 1.29390463916 |
| 2402 | 2401 | 6630.0865059 | -1.42395169064 | 6632.51045759 | 1.42395169064 |
| 2403 | 2402 | 6633.34809961 | -1.56258921939 | 6635.91068883 | 1.56258921939 |
| 2404 | 2403 | 6636.60990149 | -1.70940753941 | 6639.31930903 | 1.70940753941 |
| 2405 | 2404 | 6639.87191143 | -1.86394798162 | 6642.73585941 | 1.86394798162 |
| 2406 | 2405 | 6643.13412937 | -2.02570438747 | 6646.15983375 | 2.02570438747 |
| 2407 | 2406 | 6646.3965552 | -2.19412484536 | 6649.59068004 | 2.19412484536 |
| 2408 | 2407 | 6649.65918885 | -2.36861366307 | 6653.02780251 | 2.36861366307 |
| 2409 | 2408 | 6652.92203022 | -2.5485335679 | 6656.47056379 | 2.5485335679 |
| 2410 | 2409 | 6656.18507924 | -2.73320812533 | 6659.91828736 | 2.73320812533 |
| 2411 | 2410 | 6659.44833581 | -2.92192436587 | 6663.37026017 | 2.92192436587 |
| 2412 | 2411 | 6662.71179985 | -3.11393560865 | 6666.82573546 | 3.11393560865 |
| 2413 | 2412 | 6665.97547127 | -3.3084644694 | 6670.28393574 | 3.3084644694 |
| 2414 | 2413 | 6669.23934999 | -3.50470603928 | 6673.74405603 | 3.50470603928 |
| 2415 | 2414 | 6672.50343592 | -3.70183122063 | 6677.20526714 | 3.70183122063 |
| 2416 | 2415 | 6675.76772898 | -3.89899020436 | 6680.66671918 | 3.89899020436 |
| 2417 | 2416 | 6679.03222907 | -4.09531607331 | 6684.12754514 | 4.09531607331 |
| 2418 | 2417 | 6682.29693612 | -4.28992851512 | 6687.58686463 | 4.28992851512 |
| 2419 | 2418 | 6685.56185004 | -4.4819376276 | 6691.04378766 | 4.4819376276 |
| 2420 | 2419 | 6688.82697073 | -4.67044779912 | 6694.49741853 | 4.67044779912 |
| 2421 | 2420 | 6692.09229813 | -4.85456164593 | 6697.94685978 | 4.85456164593 |
| 2422 | 2421 | 6695.35783214 | -5.03338398835 | 6701.39121613 | 5.03338398835 |
| 2423 | 2422 | 6698.62357267 | -5.20602584719 | 6704.82959852 | 5.20602584719 |
| 2424 | 2423 | 6701.88951965 | -5.37160844166 | 6708.26112809 | 5.37160844166 |
| 2425 | 2424 | 6705.15567298 | -5.52926717027 | 6711.68494015 | 5.52926717027 |
| 2426 | 2425 | 6708.42203258 | -5.67815555576 | 6715.10018813 | 5.67815555576 |
| 2427 | 2426 | 6711.68859836 | -5.81744913562 | 6718.5060475 | 5.81744913562 |
| 2428 | 2427 | 6714.95537025 | -5.94634927979 | 6721.90171953 | 5.94634927979 |
| 2429 | 2428 | 6718.22234815 | -6.06408691745 | 6725.28643507 | 6.06408691745 |
| 2430 | 2429 | 6721.48953199 | -6.16992615516 | 6728.65945814 | 6.16992615516 |
| 2431 | 2430 | 6724.75692167 | -6.26316776919 | 6732.02008944 | 6.26316776919 |
| 2432 | 2431 | 6728.02451711 | -6.34315255533 | 6735.36766966 | 6.34315255533 |
| 2433 | 2432 | 6731.29231823 | -6.40926452014 | 6738.70158275 | 6.40926452014 |
| 2434 | 2433 | 6734.56032494 | -6.46093389831 | 6742.02125883 | 6.46093389831 |
| 2435 | 2434 | 6737.82853715 | -6.49763998162 | 6745.32617714 | 6.49763998162 |
| 2436 | 2435 | 6741.09695479 | -6.51891374581 | 6748.61586854 | 6.51891374581 |
| 2437 | 2436 | 6744.36557777 | -6.52434026259 | 6751.88991804 | 6.52434026259 |
| 2438 | 2437 | 6747.63440601 | -6.5135608851 | 6755.14796689 | 6.5135608851 |
| 2439 | 2438 | 6750.90343941 | -6.48627519599 | 6758.38971461 | 6.48627519599 |
| 2440 | 2439 | 6754.1726779 | -6.44224270866 | 6761.61492061 | 6.44224270866 |
| 2441 | 2440 | 6757.44212139 | -6.38128431307 | 6764.82340571 | 6.38128431307 |
| 2442 | 2441 | 6760.7117698 | -6.30328345887 | 6768.01505326 | 6.30328345887 |
| 2443 | 2442 | 6763.98162305 | -6.20818706986 | 6771.18981012 | 6.20818706986 |
| 2444 | 2443 | 6767.25168104 | -6.09600618494 | 6774.34768723 | 6.09600618494 |
| 2445 | 2444 | 6770.52194371 | -5.96681632199 | 6777.48876003 | 5.96681632199 |
| 2446 | 2445 | 6773.79241095 | -5.82075756252 | 6780.61316851 | 5.82075756252 |
| 2447 | 2446 | 6777.06308269 | -5.65803435619 | 6783.72111705 | 5.65803435619 |
| 2448 | 2447 | 6780.33395885 | -5.47891504551 | 6786.8128739 | 5.47891504551 |
| 2449 | 2448 | 6783.60503934 | -5.28373111252 | 6789.88877045 | 5.28373111252 |
| 2450 | 2449 | 6786.87632408 | -5.0728761504 | 6792.94920023 | 5.0728761504 |
| 2451 | 2450 | 6790.14781298 | -4.84680456438 | 6795.99461755 | 4.84680456438 |
| 2452 | 2451 | 6793.41950597 | -4.60603000745 | 6799.02553597 | 4.60603000745 |
| 2453 | 2452 | 6796.69140295 | -4.35112355774 | 6802.04252651 | 4.35112355774 |
| 2454 | 2453 | 6799.96350385 | -4.08271164556 | 6805.04621549 | 4.08271164556 |
| 2455 | 2454 | 6803.23580858 | -3.80147373933 | 6808.03728232 | 3.80147373933 |
| 2456 | 2455 | 6806.50831706 | -3.50813980075 | 6811.01645686 | 3.50813980075 |
| 2457 | 2456 | 6809.7810292 | -3.20348752048 | 6813.98451672 | 3.20348752048 |
| 2458 | 2457 | 6813.05394493 | -2.88833934697 | 6816.94228428 | 2.88833934697 |
| 2459 | 2458 | 6816.32706416 | -2.56355932166 | 6819.89062348 | 2.56355932166 |
| 2460 | 2459 | 6819.60038681 | -2.23004973491 | 6822.83043654 | 2.23004973491 |
| 2461 | 2460 | 6822.87391279 | -1.88874761782 | 6825.76266041 | 1.88874761782 |
| 2462 | 2461 | 6826.14764202 | -1.54062108571 | 6828.68826311 | 1.54062108571 |
| 2463 | 2462 | 6829.42157442 | -1.18666555002 | 6831.60823997 | 1.18666555002 |
| 2464 | 2463 | 6832.69570991 | -0.827899815493 | 6834.52360973 | 0.827899815493 |
| 2465 | 2464 | 6835.97004841 | -0.465362080714 | 6837.43541049 | 0.465362080714 |
| 2466 | 2465 | 6839.24458982 | -0.100105859754 | 6840.34469568 | 0.100105859754 |
| 2467 | 2466 | 6842.51933408 | 0.266804156357 | 6843.25252992 | 0.266804156357 |
| 2468 | 2467 | 6845.79428109 | 0.634296279722 | 6846.15998481 | 0.634296279722 |
| 2469 | 2468 | 6849.06943078 | 1.0012960283 | 6849.06813475 | 1.0012960283 |
| 2470 | 2469 | 6852.34478306 | 1.3667303323 | 6851.97805273 | 1.3667303323 |
| 2471 | 2470 | 6855.62033785 | 1.72953172527 | 6854.89080613 | 1.72953172527 |
| 2472 | 2471 | 6858.89609507 | 2.08864250105 | 6857.80745257 | 2.08864250105 |
| 2473 | 2472 | 6862.17205464 | 2.44301881789 | 6860.72903582 | 2.44301881789 |
| 2474 | 2473 | 6865.44821648 | 2.79163473138 | 6863.65658175 | 2.79163473138 |
| 2475 | 2474 | 6868.7245805 | 3.13348613819 | 6866.59109436 | 3.13348613819 |
| 2476 | 2475 | 6872.00114662 | 3.46759461304 | 6869.533552 | 3.46759461304 |
| 2477 | 2476 | 6875.27791476 | 3.7930111219 | 6872.48490363 | 3.7930111219 |
| 2478 | 2477 | 6878.55488483 | 4.10881959503 | 6875.44606524 | 4.10881959503 |
| 2479 | 2478 | 6881.83205677 | 4.41414034418 | 6878.41791643 | 4.41414034418 |
| 2480 | 2479 | 6885.10943048 | 4.70813330906 | 6881.40129717 | 4.70813330906 |
| 2481 | 2480 | 6888.38700589 | 4.99000111886 | 6884.39700477 | 4.99000111886 |
| 2482 | 2481 | 6891.6647829 | 5.25899195587 | 6887.40579095 | 5.25899195587 |
| 2483 | 2482 | 6894.94276146 | 5.51440220885 | 6890.42835925 | 5.51440220885 |
| 2484 | 2483 | 6898.22094146 | 5.75557890502 | 6893.46536255 | 5.75557890502 |
| 2485 | 2484 | 6901.49932283 | 5.98192191061 | 6896.51740091 | 5.98192191061 |
| 2486 | 2485 | 6904.77790548 | 6.19288589102 | 6899.58501959 | 6.19288589102 |
| 2487 | 2486 | 6908.05668935 | 6.38798202266 | 6902.66870733 | 6.38798202266 |
| 2488 | 2487 | 6911.33567434 | 6.56677945013 | 6905.76889489 | 6.56677945013 |
| 2489 | 2488 | 6914.61486038 | 6.7289064831 | 6908.88595389 | 6.7289064831 |
| 2490 | 2489 | 6917.89424738 | 6.87405152898 | 6912.02019585 | 6.87405152898 |
| 2491 | 2490 | 6921.17383527 | 7.00196375843 | 6915.17187151 | 7.00196375843 |
| 2492 | 2491 | 6924.45362395 | 7.11245350222 | 6918.34117045 | 7.11245350222 |
| 2493 | 2492 | 6927.73361337 | 7.20539237913 | 6921.52822099 | 7.20539237913 |
| 2494 | 2493 | 6931.01380342 | 7.28071315585 | 6924.73309026 | 7.28071315585 |
| 2495 | 2494 | 6934.29419403 | 7.33840934127 | 6927.95578469 | 7.33840934127 |
| 2496 | 2495 | 6937.57478513 | 7.37853451865 | 6931.19625061 | 7.37853451865 |
| 2497 | 2496 | 6940.85557663 | 7.40120142037 | 6934.45437521 | 7.40120142037 |
| 2498 | 2497 | 6944.13656845 | 7.40658075143 | 6937.72998769 | 7.40658075143 |
| 2499 | 2498 | 6947.4177605 | 7.39489976867 | 6941.02286073 | 7.39489976867 |
| 2500 | 2499 | 6950.69915272 | 7.36644062421 | 6944.3327121 | 7.36644062421 |
| 2501 | 2500 | 6953.98074502 | 7.32153848234 | 6947.65920654 | 7.32153848234 |
E-021-sinf-sf-curve.json
— 1.2 KB, updated 08-19-2026
JSON sidecar (click to expand)
{
"experiment": "E-021",
"task": "3.7: exact S_inf(n) + |S_f(n)| curve + D-036 constants",
"script": "research/numerics/scripts/E-021-sinf-sf-curve.py",
"parameters": {
"n_max": 5000,
"t_zeros": 5000.0
},
"checks": {
"V1_lambda_vs_E015": true,
"V2_R_bound_holds": true,
"V3_Sinf_residual_bounded": true
},
"key_values": {
"A_use": 0.9,
"B0_use": 1.0,
"R_max_sample": 4.7507714994958565,
"C0_samples": {
"1e2": 6.234438640727731,
"1e4": 8.840233256550178,
"1e6": 11.194201354663145
},
"eta_0": "-0.5772156649015328606065120900824024310",
"Sinf_residual_fits": [
[
1000,
-0.2500416666625
],
[
2000,
-0.2500208333328125
],
[
3000,
-0.25001388888873455
],
[
4000,
-0.25001041666660156
],
[
5000,
-0.2500083333333
]
],
"V1_worst_rel": 4.79820218420929e-25,
"S_f_max_abs": "13.5229134371",
"S_f_max_abs_n": 3298
},
"elapsed_seconds": 2139.3,
"timestamp_utc": "2026-08-19T06:48:55.463113+00:00"
}
Source code
Python script (click to expand)
"""E-021 — task 3.7: exact S_inf(n) to n=1e4, |S_f(n)| curve, tightened
D-036 constants. Feeds D-037 (finite-height Li theorem).
Components:
P1. D-036 constants: C0(t) from Trudgian; |R(s)| = |zeta'/zeta(s) -
sum_{|gamma-t|<1} 1/(s-rho)| sampled at ~30 contour points (flint
acb zeta + fd derivative, zeros via mp.zetazero) -> fit A, B0.
P2. eta_j — ALL FLINT (session 006 cont.10 root-cause: mpmath zeta,
Hurwitz included, silently loses accuracy beyond ~58 digits on
this stack [mpmath 1.3 + Py 3.14] -> eta_j errors ~1e-58 ->
S_f binomial cancellation explodes ~(4/3)^n; V1 failed 1.4e143.
The zero-side sigma route also has eta_0 wrong by 2.4e-4 from
sigma_1 truncation at T=5000 — both defects removed here).
j <= 23: Stieltjes series division (E-011 machinery, validated):
-zeta'/zeta(1+u) = (1/u) N(u)/D(u), eta_k = [u^{k+1}] N/D.
j >= 24: Lagarias (4.10) with flint arb zeta:
eta_j = (-1)^{j+1} [(1-2^{-(j+1)}) zeta(j+1) - 1 + sigma_{j+1}]
with sigma_m = (-1)^{m-1}(tau_{m-1} - eta_{m-1}) + 1 EXACT
(arithmetic side) for m <= 24, and sigma_m = 2 Re sum
rho^{-m} over the first 100 zeros (mp.zetazero, dps 100)
for 25 <= m <= M_SIG; omitted beyond (boundary error
C(n,M_SIG)*14^{-M_SIG} < 1e-40 by construction).
NOTES (hard-won, session 006 cont.10):
* sigma_m may NOT be omitted at any m <= M_SIG — the truncation
boundary error ~ C(n,M)*14^{-M} PEAKS at M = n/15 with size
~(15/14)^n: with M=200, S_f exploded as 1e133 at n=5000
(measured). M_SIG ~ 0.22*n_max.
* the m=24 omission alone moved S_f(200) by ~0.4 (measured).
* float64 zeros for sigma_m are NOT enough either (S_f(300) off
by 7.8e-8 — measured); need mp.zetazero precision. Zeros
k > 100 contribute < (14.13/236.5)^25 ~ 1e-31 relative for
m >= 25, so the first 100 at dps 100 are effectively exact.
* GAMMA_E must be a string (bare float -> 53-bit, 4.94e-21).
P3. S_inf(n) EXACT for n <= N_MAX (Lagarias (4.11)):
S_inf(n) = sum_{j=1}^n (-1)^j C(n,j) (1-2^{-j}) zeta*(j),
zeta*(1) = log(4pi)+gamma, zeta*(j) = zeta(j) (flint.arb).
Cancellation ~2^n -> dps = ceil(0.31*n) + 60.
P4. S_f(n) = sum_{j=1}^n C(n,j) eta_{j-1} (plain binomial — the
E-011/Lagarias-(4.13) convention after the (-1) absorbed into
the series-eta definition; VALIDATED: S_f(200) = -2.14037668
matches S_inf(200)+1-lambda_200(E-015)); lambda_n =
S_inf - S_f + 1.
P5. VALIDATION: lambda_n (n <= 3000) vs E-015 certified CSV (rel dev);
eta_0 vs E-011 value; S_inf fit: S_inf - [(1/2)n log n + C1 n]
-> c0 (+ c1/n...), C1 = (gamma-1-log(2pi))/2.
Checks:
V1. lambda_n matches E-015 for n <= 3000 (rel dev < 1e-50 at dps used).
V2. |R(s)| <= A log(t+2) + B0 at all sample points with the FITTED
A, B0 (and fitted values reported vs D-036's 2.0/2.0).
V3. S_inf fit residual -> constant c0 (|residual - c0| -> 0 trend).
Outputs: research/numerics/data/E-021-sinf-sf-curve.csv (+ .json)
"""
import json
import sys
import time
from datetime import datetime, timezone
from pathlib import Path
import flint
import mpmath as mp
import numpy as np
REPO = Path(__file__).resolve().parents[3]
DATA = REPO / "research" / "numerics" / "data"
CSV = DATA / "E-021-sinf-sf-curve.csv"
JSON = DATA / "E-021-sinf-sf-curve.json"
E015 = DATA / "E-015-li-coefficients-n3000.csv"
N_MAX = 5000 # 10000 costs ~2h (row cost ~ n^2 * dps);
# cached zeta/zeros make a later 1e4 rerun cheap
T_ZEROS = 5000.0 # zeros up to this height for sigma sums
N_ZMAX = 8000 # mp.zetazero count cap (N(5e3) ~ 7.9e3)
DPS_BIG = 3300
# NOTE: must be a STRING — a bare float literal collapses to 53-bit
# (measured error 4.94e-21 -> sigma_1/zeta*(1) wrong at digit 21).
GAMMA_E = "0.57721566490153286060651209008240243104215933593992337"
# ---------------------------------------------------------------- N(T)
def N_count(T):
F = (T / (2 * np.pi)) * np.log(T / (2 * np.pi)) - T / (2 * np.pi) + 7 / 8
return F
def S_bound(T):
return 0.137 * np.log(T) + 0.443 * np.log(np.log(T)) + 1.588
def C0(t):
"""Upper bound for zeros in [t, t+1] (t >= 10)."""
return (N_count(t + 1) - N_count(t)) + S_bound(t + 1) + S_bound(t)
# ------------------------------------------------------------- zeros
def compute_zeros():
cache = DATA / "E-021-zeros-cache.npy"
n_est = int(N_count(T_ZEROS) + S_bound(T_ZEROS)) + 100
n_est = min(n_est, N_ZMAX)
if cache.exists():
zs = np.load(cache)
if len(zs) >= n_est:
print(f" loaded {n_est} zeros from cache", flush=True)
return zs[:n_est]
print(f" computing {n_est} zeros via mp.zetazero ...", flush=True)
mp.mp.dps = 30
zs = []
for k in range(1, n_est + 1):
zs.append(mp.zetazero(k).imag)
if k % 1000 == 0:
print(f" {k}/{n_est}", flush=True)
out = np.array([float(z) for z in zs])
np.save(cache, out)
return out
# ------------------------------------------------------- zeta strings
def get_zeta_strings(n_max):
"""zeta(j) decimal strings at full precision (flint arb), cached.
full_digits = 0.31*n_max + 100 covers the ~2^n cancellation in
BOTH S_inf and the (1-2^{-s})zeta(s)-1 eta formula (absolute
error ~1e-1650 uniformly)."""
full_digits = int(0.31 * n_max) + 100
zcache = DATA / "E-021-zeta-cache.json"
if zcache.exists():
zeta_str = {int(k): v for k, v in
json.loads(zcache.read_text()).items()}
print(" zeta strings loaded from cache", flush=True)
# patch legacy zeta*(1) (built with double-precision GAMMA_E)
mp.mp.dps = full_digits + 50
z1 = mp.nstr(mp.log(4 * mp.pi) + mp.mpf(GAMMA_E), full_digits)
if zeta_str.get(1) != z1:
zeta_str[1] = z1
zcache.write_text(json.dumps(zeta_str))
print(" patched zeta*(1) in cache (GAMMA_E float fix)",
flush=True)
return zeta_str, full_digits
flint.ctx.prec = int(full_digits * 3.33) + 200
mp.mp.dps = full_digits + 50
zeta_str = {1: mp.nstr(mp.log(4 * mp.pi) + mp.mpf(GAMMA_E),
full_digits)}
for j in range(2, n_max + 1):
zeta_str[j] = flint.arb(j).zeta().str(full_digits,
radius=False)
if j % 2000 == 0:
print(f" zeta({j}) done", flush=True)
zcache.write_text(json.dumps(zeta_str))
return zeta_str, full_digits
# ---------------------------------------------------------------- eta
# K_SPLIT: eta_j for j < K_SPLIT from Stieltjes (exact, arithmetic);
# sigma_m exact for m <= K_SPLIT. Must be ~80: with K_SPLIT=24 the
# zero-tail (k>100) of sigma_25 entered at term j=24 with C(n,24)
# amplification — S_f(3000) was off by 1.06e3 growing ~n^24 (measured).
# With K_SPLIT=80 the zero-tail exposure (m>=81, k>100) is < 3e-11.
K_SPLIT = 80
def compute_eta(zeta_str, full_digits):
"""eta_j for j = 0..N_MAX-1, ALL flint-based (see header P2).
Returns dict j -> decimal string at full_digits."""
print(f" eta_0..{K_SPLIT - 1}: flint Stieltjes + series division "
"(E-011) ...", flush=True)
flint.ctx.prec = int((full_digits + 100) * 3.33) + 200
mp.mp.dps = full_digits + 100 # BEFORE mp.mpf(string) parses below!
gam_s = [mp.mpf(flint.acb.stieltjes(k).real.str(
full_digits + 100, radius=False)) for k in range(K_SPLIT + 2)]
N_ = [mp.mpf(0)] * (K_SPLIT + 2)
D_ = [mp.mpf(0)] * (K_SPLIT + 2)
N_[0] = D_[0] = 1
for m in range(0, K_SPLIT + 1):
D_[m + 1] = (-1) ** m * gam_s[m] / mp.factorial(m)
for m in range(1, K_SPLIT + 1):
N_[m + 1] = -(-1) ** m * gam_s[m] / mp.factorial(m - 1)
Ev = [mp.mpf(0)] * (K_SPLIT + 2)
for k in range(0, K_SPLIT + 2):
s = N_[k]
for i in range(1, k + 1):
s -= D_[i] * Ev[k - i]
Ev[k] = s
eta_str = {j: mp.nstr(Ev[j + 1], full_digits)
for j in range(K_SPLIT)}
print(f" eta_0 = {mp.nstr(Ev[1], 15)} (should be -gamma)",
flush=True)
print(f" eta_1 = {mp.nstr(Ev[2], 15)}", flush=True)
# ---- sigma_m: exact (arithmetic) for m <= 24; zeros for 25..200
print(" sigma_m: m<=24 exact (tau-eta), 25..200 from zeros ...",
flush=True)
mp.mp.dps = full_digits + 50
tau = {0: mp.mpf(-0.5) * (mp.log(4 * mp.pi) + mp.mpf(GAMMA_E))}
for j in range(1, K_SPLIT):
z = mp.mpf(zeta_str[j + 1])
tau[j] = (-1) ** (j + 1) * (1 - mp.mpf(2) ** (-(j + 1))) * z
sigma = {}
for m in range(1, K_SPLIT + 1):
sigma[m] = ((-1) ** (m - 1)
* (tau[m - 1] - mp.mpf(eta_str[m - 1])) + 1)
mp.mp.dps = 60
sig1_known = 1 + mp.euler / 2 - mp.log(4 * mp.pi) / 2
print(f" sigma_1 = {mp.nstr(sigma[1], 20)} "
f"(closed form {mp.nstr(sig1_known, 20)})", flush=True)
# sigma_m, m = 25..M_SIG: first 100 zeros via mp.zetazero, dps 100.
# M_SIG must be adaptive: truncating sigma at M leaves a boundary
# error ~ C(n,M)*14.13^{-M} which PEAKS at M = n/15 (~(15/14)^n);
# with M=200 the run exploded as 1e133 at n=5000 (measured). Need
# C(n,M)*14^{-M} < 1e-40 on the decreasing side (M > n/15).
# float64 zeros are NOT enough (S_f(300) off 7.8e-8 — measured);
# zeros k>100 are suppressed by (14.13/236.5)^25 ~ 1e-31 relative.
n_zeta = max(zeta_str)
M_SIG = n_zeta
for M in range(K_SPLIT + 1, n_zeta + 1):
if M > n_zeta / 15:
logC = (mp.loggamma(n_zeta + 1) - mp.loggamma(M + 1)
- mp.loggamma(n_zeta - M + 1))
if float(logC - (M - 1) * mp.log(14.13)
+ mp.log(0.05)) / np.log(10) < -40:
M_SIG = M
break
print(f" M_SIG = {M_SIG} (C(n,M)*14^{{-M}} < 1e-40)", flush=True)
# sigma_m precision matters: dps-100 sums left eps_m ~ 14^{-m}e-100,
# whose C(n,j)-amplified impact (peak term C(n,n/15)*14^{-n/15} ~
# 1e105 at n=3000) showed up as S_f error ~1e3 (measured). Zeros
# at 400 digits + sums at full_digits+50 kill it.
# dps BEFORE any mp.mpf(string) parse! (Third instance of this bug
# class: g100 parsed at leftover dps 60 corrupted sigma_m at
# ~m*1e-60*14^{-m} -> S_f(3000) off by 1.7e7, growth ~n^80.)
mp.mp.dps = full_digits + 50
z100cache = DATA / "E-021-zeros100-hi-cache.json"
if z100cache.exists():
g100 = [mp.mpf(v) for v in
json.loads(z100cache.read_text())]
else:
mp.mp.dps = 450
g100 = [mp.zetazero(k).imag for k in range(1, 101)]
z100cache.write_text(json.dumps([mp.nstr(g, 400)
for g in g100]))
mp.mp.dps = full_digits + 50
rho = [mp.mpc(mp.mpf("0.5"), g) for g in g100]
for m in range(K_SPLIT + 1, M_SIG + 1):
sigma[m] = 2 * mp.re(sum(r ** (-m) for r in rho))
mp.mp.dps = 60
print(f" sigma_2 = {mp.nstr(sigma[2], 20)}", flush=True)
print(f" sigma_25 (zeros) = {mp.nstr(sigma[25], 6)}; "
f"sigma_{M_SIG} = {mp.nstr(sigma[M_SIG], 6)}", flush=True)
print(" eta_j (j>=24): (-1)^{j+1}[(1-2^{-(j+1)})zeta(j+1) - 1 "
"+ sigma_{j+1}] ...", flush=True)
mp.mp.dps = full_digits + 50
for j in range(K_SPLIT, n_zeta):
z = mp.mpf(zeta_str[j + 1])
sig = sigma[j + 1] if j + 1 <= M_SIG else mp.mpf(0)
eta = (-1) ** (j + 1) * ((1 - mp.mpf(2) ** (-(j + 1))) * z - 1
+ sig)
eta_str[j] = mp.nstr(eta, full_digits)
# stitch check: eta_{K_SPLIT-1} via Stieltjes vs via full formula
mp.mp.dps = full_digits + 50
eta23_formula = ((-1) ** K_SPLIT
* ((1 - mp.mpf(2) ** (-K_SPLIT))
* mp.mpf(zeta_str[K_SPLIT])
- 1 + sigma[K_SPLIT]))
stitch = abs(eta23_formula - mp.mpf(eta_str[K_SPLIT - 1]))
mp.mp.dps = 60
print(f" stitch |eta_{K_SPLIT - 1} stieltjes - formula| = "
f"{mp.nstr(stitch, 3)}", flush=True)
return eta_str
# ----------------------------------------------------------- S_inf, Sf
def compute_S_inf(n_max, zeta_str, full_digits):
"""Exact S_inf(n) via zeta*(j) (flint arb), dps scaled by n.
Cancellation ~2^n: every zeta(j) stored at FULL string precision
(the Sigma(-1)^j C(n,j)*1 = 0 piece must cancel exactly)."""
print(" parsing zeta strings once at full precision ...", flush=True)
mp.mp.dps = full_digits + 50
zeta_mpf = {j: mp.mpf(v) for j, v in zeta_str.items()}
results = {}
for n in range(1, n_max + 1):
mp.mp.dps = int(0.31 * n) + 80
s = mp.mpf(0)
c = mp.mpf(1)
for j in range(1, n + 1):
c = c * (n - j + 1) / j # C(n,j) by recurrence
s += ((-1) ** j) * c * (1 - mp.mpf(2) ** (-j)) * zeta_mpf[j]
results[n] = +s
if n % 500 == 0:
print(f" S_inf row {n}/{n_max}", flush=True)
return results
def compute_Sf(n_max, eta_str):
"""S_f(n) = sum_j C(n,j) eta_{j-1} — plain binomial (E-011/Lagarias
(4.13) convention with series-eta; validated at n=200 vs E-015:
S_f(200) = -2.14037668 = S_inf(200)+1-lambda_200). Requires eta_j
absolute accuracy ~1e-1650 at n=5000 (terms C(n,j)*eta up to
~1e312 cancel to O(1)) — flint-only computation, see P2."""
full_digits = int(0.31 * n_max) + 100
mp.mp.dps = full_digits + 50
eta_mpf = {j: mp.mpf(v) for j, v in eta_str.items()}
results = {}
for n in range(1, n_max + 1):
mp.mp.dps = int(0.31 * n) + 80
s = mp.mpf(0)
c = mp.mpf(1)
for j in range(1, n + 1):
c = c * (n - j + 1) / j
s += c * eta_mpf[j - 1]
results[n] = +s
if n % 500 == 0:
print(f" S_f row {n}/{n_max}", flush=True)
return results
def main() -> int:
if CSV.exists() and "--force" not in sys.argv:
print(f"cached: {CSV} (use --force to recompute)")
return 0
t0 = time.time()
# ---- P1: constants
print("P1: D-036 constants ...", flush=True)
print(f" C0(100) = {C0(100):.3f}, C0(1e4) = {C0(1e4):.3f}, "
f"C0(1e6) = {C0(1e6):.3f}", flush=True)
gam_sample = compute_zeros()
def xi_mp(s):
return 0.5 * s * (s - 1) * mp.pi ** (-s / 2) * mp.gamma(s / 2) \
* mp.zeta(s)
def zeta_logder(s):
"""zeta'/zeta via xi'/xi minus explicit terms (mpmath dps 30;
complex-zeta OK to ~1e-10 per E-018 C2)."""
sm = mp.mpc(s.real, s.imag)
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))
R_samples = []
mp.mp.dps = 30
for sig in (-2.5, 0.5, 3.0):
for t in (10.0, 50.0, 100.0, 500.0, 1000.0):
s = complex(sig, t)
near = [g for g in gam_sample if abs(g - t) < 1.0]
psum = sum(1.0 / (s - complex(0.5, g)) for g in near)
R_samples.append((sig, t, abs(zeta_logder(s) - psum)))
# fit |R| <= A log(t+2) + B0
A_fit = max(v / np.log(t + 2) for _, t, v in R_samples)
A_use = max(0.5, float(np.ceil(A_fit * 1.2 * 10) / 10))
B0_need = max(v - A_use * np.log(t + 2) for _, t, v in R_samples)
B0_use = max(1.0, float(np.ceil(B0_need * 1.3 * 10) / 10))
print(f" |R| max sample = {max(v for *_ , v in R_samples):.2f}; "
f"A_use={A_use}, B0_use={B0_use}", flush=True)
# ---- P2: zeta strings + eta (all flint)
print("P2: zeta strings + eta_j (flint) ...", flush=True)
zeta_str, full_digits = get_zeta_strings(N_MAX)
eta_str = compute_eta(zeta_str, full_digits)
# ---- P3/P4: S_inf, S_f
print("P3: S_inf exact ...", flush=True)
S_inf = compute_S_inf(N_MAX, zeta_str, full_digits)
print("P4: S_f ...", flush=True)
S_f = compute_Sf(N_MAX, eta_str)
# ---- P5: validation + fit
print("P5: validation vs E-015 ...", flush=True)
e015 = {}
with E015.open() as f:
header = f.readline()
for line in f:
parts = line.strip().split(",")
if len(parts) >= 2 and parts[0].isdigit():
e015[int(parts[0])] = mp.mpf(parts[1])
worst = 0.0
mp.mp.dps = 100
for n in sorted(e015):
lam = S_inf[n] - S_f[n] + 1
dev = abs(lam - e015[n]) / abs(e015[n])
worst = max(worst, float(dev))
print(f" V1 worst rel dev vs E-015 (n<=3000): {worst:.2e}", flush=True)
C1 = (mp.mpf(GAMMA_E) - 1 - mp.log(2 * mp.pi)) / 2
fits = []
for n in (1000, 2000, 3000, 4000, 5000, 6000, 8000, 10000):
if n > N_MAX:
continue
mp.mp.dps = 100
resid = S_inf[n] - (mp.mpf(n) / 2) * mp.log(n) - C1 * n
fits.append((n, float(resid)))
print(f" S_inf residual (should -> c0): {fits}", flush=True)
# ---- write CSV
with CSV.open("w", encoding="utf-8", newline="") as f:
f.write("n,S_inf,S_f,lambda_n,abs_Sf\n")
for n in range(1, N_MAX + 1):
lam = S_inf[n] - S_f[n] + 1
f.write(f"{n},{mp.nstr(S_inf[n],12)},{mp.nstr(S_f[n],12)},"
f"{mp.nstr(lam,12)},{mp.nstr(abs(S_f[n]),12)}\n")
checks = {
# V1 floor is ~1e-24 (E-015 CSV holds 26 digits); 1e-15 still
# kills any macroscopic (convention/precision) bug — the bugs
# found in cont.10 produced 1e-8..1e143 deviations.
"V1_lambda_vs_E015": bool(worst < 1e-15),
"V2_R_bound_holds": bool(all(
v <= A_use * np.log(t + 2) + B0_use for _, t, v in R_samples)),
"V3_Sinf_residual_bounded": bool(
abs(fits[-1][1] - fits[-2][1]) < abs(fits[0][1] - fits[1][1])),
}
meta = {
"experiment": "E-021",
"task": "3.7: exact S_inf(n) + |S_f(n)| curve + D-036 constants",
"script": "research/numerics/scripts/E-021-sinf-sf-curve.py",
"parameters": {"n_max": N_MAX, "t_zeros": T_ZEROS},
"checks": checks,
"key_values": {
"A_use": A_use, "B0_use": B0_use,
"R_max_sample": max(v for *_, v in R_samples),
"C0_samples": {"1e2": C0(100), "1e4": C0(1e4), "1e6": C0(1e6)},
"eta_0": eta_str[0][:40],
"Sinf_residual_fits": fits,
"V1_worst_rel": worst,
"S_f_max_abs": mp.nstr(max(abs(S_f[n]) for n in S_f), 12),
"S_f_max_abs_n": int(max(S_f, key=lambda k: abs(S_f[k]))),
},
"elapsed_seconds": round(time.time() - t0, 1),
"timestamp_utc": datetime.now(timezone.utc).isoformat(),
}
JSON.write_text(json.dumps(meta, indent=2), encoding="utf-8")
ok = all(checks.values())
print(f"wrote {CSV.name}, {JSON.name} — "
f"{'ALL CHECKS PASS' if ok else 'CHECK FAILURE: ' + str(checks)}")
return 0 if ok else 1
if __name__ == "__main__":
raise SystemExit(main())