Current task: —

E-009-suzuki-screw-function.py

Experiments: E-009a · script updated 08-18-2026

E-009-suzuki-screw-function.csv — 449.3 KB, updated 08-18-2026

← prev page 17 of 21 · 500/page · 10001 rows next →
# tg_tprime_sum_t
8002 8.0000 -3.094868956649e-02 1.931722500544e+02
8003 8.0010 -3.071242765990e-02 1.932790238283e+02
8004 8.0020 -3.053079121043e-02 1.933857976022e+02
8005 8.0030 -3.040380753765e-02 1.934925713761e+02
8006 8.0040 -3.033150397461e-02 1.935993451500e+02
8007 8.0050 -3.031390786836e-02 1.937061189239e+02
8008 8.0060 -3.035104657935e-02 1.938128926977e+02
8009 8.0070 -3.025802668911e-02 1.939198513924e+02
8010 8.0080 -3.011236595515e-02 1.940269175175e+02
8011 8.0090 -3.002152220224e-02 1.941339836426e+02
8012 8.0100 -2.998552284582e-02 1.942410497677e+02
8013 8.0110 -2.986243873693e-02 1.943482578494e+02
8014 8.0120 -2.979023542502e-02 1.944554699496e+02
8015 8.0130 -2.972642887932e-02 1.945627285797e+02
8016 8.0140 -2.961827668308e-02 1.946700865097e+02
8017 8.0150 -2.942007681780e-02 1.947775894690e+02
8018 8.0160 -2.927615810320e-02 1.948850931563e+02
8019 8.0170 -2.918727607692e-02 1.949925968436e+02
8020 8.0180 -2.915345826401e-02 1.951001005310e+02
8021 8.0190 -2.912023554317e-02 1.952076587150e+02
8022 8.0200 -2.904264337993e-02 1.953153163877e+02
8023 8.0210 -2.888324561247e-02 1.954231110129e+02
8024 8.0220 -2.877902229705e-02 1.955309056381e+02
8025 8.0230 -2.866737347662e-02 1.956387628909e+02
8026 8.0240 -2.852829218854e-02 1.957467028058e+02
8027 8.0250 -2.844446817630e-02 1.958546427207e+02
8028 8.0260 -2.841592907546e-02 1.959625826356e+02
8029 8.0270 -2.836972065023e-02 1.960705955323e+02
8030 8.0280 -2.830675873253e-02 1.961786805228e+02
8031 8.0290 -2.822018041058e-02 1.962868444976e+02
8032 8.0300 -2.812301300073e-02 1.963950744571e+02
8033 8.0310 -2.808126888740e-02 1.965033044166e+02
8034 8.0320 -2.809497578912e-02 1.966115343761e+02
8035 8.0330 -2.807153863724e-02 1.967198569583e+02
8036 8.0340 -2.800205348273e-02 1.968282810951e+02
8037 8.0350 -2.789283726534e-02 1.969368004972e+02
8038 8.0360 -2.778174024873e-02 1.970453773421e+02
8039 8.0370 -2.763909544911e-02 1.971540413246e+02
8040 8.0380 -2.755206826737e-02 1.972627053072e+02
8041 8.0390 -2.752068651933e-02 1.973713692897e+02
8042 8.0400 -2.754497803480e-02 1.974800332722e+02
8043 8.0410 -2.762497065715e-02 1.975886972547e+02
8044 8.0420 -2.776069224401e-02 1.976973612372e+02
8045 8.0430 -2.781607632901e-02 1.978061613141e+02
8046 8.0440 -2.791910909115e-02 1.979149695270e+02
8047 8.0450 -2.807795447391e-02 1.980237777399e+02
8048 8.0460 -2.817400711733e-02 1.981327045861e+02
8049 8.0470 -2.815648321603e-02 1.982418008772e+02
8050 8.0480 -2.817152280614e-02 1.983509205013e+02
8051 8.0490 -2.823702916422e-02 1.984600455830e+02
8052 8.0500 -2.835848784896e-02 1.985691706647e+02
8053 8.0510 -2.853592684367e-02 1.986782957464e+02
8054 8.0520 -2.862882113249e-02 1.987875613811e+02
8055 8.0530 -2.877455941562e-02 1.988968302081e+02
8056 8.0540 -2.897636204220e-02 1.990060990351e+02
8057 8.0550 -2.923425705140e-02 1.991153678621e+02
8058 8.0560 -2.954827249636e-02 1.992246366891e+02
8059 8.0570 -2.991843644436e-02 1.993339055161e+02
8060 8.0580 -3.034477697658e-02 1.994431743432e+02
8061 8.0590 -3.082732218866e-02 1.995524431702e+02
8062 8.0600 -3.126238292834e-02 1.996618157144e+02
8063 8.0610 -3.164824169556e-02 1.997712937216e+02
8064 8.0620 -3.189437790028e-02 1.998809677404e+02
8065 8.0630 -3.217229293707e-02 1.999906662975e+02
8066 8.0640 -3.250655334085e-02 2.001003648547e+02
8067 8.0650 -3.289016507273e-02 2.002100704340e+02
8068 8.0660 -3.319420607991e-02 2.003199119859e+02
8069 8.0670 -3.353114455344e-02 2.004297770702e+02
8070 8.0680 -3.380518028341e-02 2.005397615154e+02
8071 8.0690 -3.400567737136e-02 2.006498759857e+02
8072 8.0700 -3.424988815251e-02 2.007600032569e+02
8073 8.0710 -3.455064185493e-02 2.008701305282e+02
8074 8.0720 -3.488559604322e-02 2.009802801701e+02
8075 8.0730 -3.515689590211e-02 2.010905500659e+02
8076 8.0740 -3.544415301995e-02 2.012008606322e+02
8077 8.0750 -3.568621262338e-02 2.013112730521e+02
8078 8.0760 -3.598495668230e-02 2.014216854721e+02
8079 8.0770 -3.622714558295e-02 2.015322111600e+02
8080 8.0780 -3.641826883365e-02 2.016428446547e+02
8081 8.0790 -3.660252145793e-02 2.017535417896e+02
8082 8.0800 -3.683330164013e-02 2.018642491949e+02
8083 8.0810 -3.698898710521e-02 2.019750885213e+02
8084 8.0820 -3.720152733442e-02 2.020859278476e+02
8085 8.0830 -3.747095076254e-02 2.021967671740e+02
8086 8.0840 -3.779728583796e-02 2.023076065003e+02
8087 8.0850 -3.818056102392e-02 2.024184458266e+02
8088 8.0860 -3.862080479735e-02 2.025292851530e+02
8089 8.0870 -3.907803868202e-02 2.026401644863e+02
8090 8.0880 -3.939588831371e-02 2.027512402295e+02
8091 8.0890 -3.966147905260e-02 2.028624252856e+02
8092 8.0900 -3.978772343002e-02 2.029738067707e+02
8093 8.0910 -3.994618574838e-02 2.030852131491e+02
8094 8.0920 -4.016178781668e-02 2.031966195275e+02
8095 8.0930 -4.041347837400e-02 2.033080469858e+02
8096 8.0940 -4.060194411253e-02 2.034195948657e+02
8097 8.0950 -4.084763537492e-02 2.035311427457e+02
8098 8.0960 -4.115058078102e-02 2.036426906257e+02
8099 8.0970 -4.151080896527e-02 2.037542385056e+02
8100 8.0980 -4.192834857613e-02 2.038657863856e+02
8101 8.0990 -4.240322827648e-02 2.039773342656e+02
8102 8.1000 -4.293547674351e-02 2.040888821455e+02
8103 8.1010 -4.352512266871e-02 2.042004300255e+02
8104 8.1020 -4.408127614074e-02 2.043120688241e+02
8105 8.1030 -4.450373889369e-02 2.044238987683e+02
8106 8.1040 -4.495503813785e-02 2.045357573596e+02
8107 8.1050 -4.535157726526e-02 2.046477282234e+02
8108 8.1060 -4.575065221172e-02 2.047597540925e+02
8109 8.1070 -4.612147893810e-02 2.048718657798e+02
8110 8.1080 -4.646811519027e-02 2.049840592562e+02
8111 8.1090 -4.676044816587e-02 2.050963646634e+02
8112 8.1100 -4.702276625446e-02 2.052087577418e+02
8113 8.1110 -4.726225737014e-02 2.053212313324e+02
8114 8.1120 -4.736278247513e-02 2.054339016030e+02
8115 8.1130 -4.751713818113e-02 2.055465757858e+02
8116 8.1140 -4.772926564399e-02 2.056592499687e+02
8117 8.1150 -4.794640770005e-02 2.057719769376e+02
8118 8.1160 -4.810852649106e-02 2.058848167593e+02
8119 8.1170 -4.821351375177e-02 2.059977715711e+02
8120 8.1180 -4.837638842852e-02 2.061107263828e+02
8121 8.1190 -4.859717947233e-02 2.062236811946e+02
8122 8.1200 -4.879079748931e-02 2.063367211247e+02
8123 8.1210 -4.884735203463e-02 2.064499560926e+02
8124 8.1220 -4.896190988659e-02 2.065631910605e+02
8125 8.1230 -4.912956351679e-02 2.066764309649e+02
8126 8.1240 -4.915846185676e-02 2.067898676859e+02
8127 8.1250 -4.916742375267e-02 2.069033824338e+02
8128 8.1260 -4.923450507794e-02 2.070168971817e+02
8129 8.1270 -4.935973489955e-02 2.071304119296e+02
8130 8.1280 -4.954314229897e-02 2.072439266775e+02
8131 8.1290 -4.966891508800e-02 2.073575572666e+02
8132 8.1300 -4.968954584908e-02 2.074713512336e+02
8133 8.1310 -4.976844151971e-02 2.075851452006e+02
8134 8.1320 -4.990563123994e-02 2.076989391675e+02
8135 8.1330 -5.010114416392e-02 2.078127331345e+02
8136 8.1340 -5.029751755474e-02 2.079265845934e+02
8137 8.1350 -5.047041790539e-02 2.080405179069e+02
8138 8.1360 -5.061078897967e-02 2.081545421604e+02
8139 8.1370 -5.076128596934e-02 2.082686147279e+02
8140 8.1380 -5.097025215320e-02 2.083826872955e+02
8141 8.1390 -5.123771677316e-02 2.084967598631e+02
8142 8.1400 -5.156370908581e-02 2.086108324306e+02
8143 8.1410 -5.194825836224e-02 2.087249049982e+02
8144 8.1420 -5.227881765237e-02 2.088390901420e+02
8145 8.1430 -5.264162115152e-02 2.089533016571e+02
8146 8.1440 -5.306306951589e-02 2.090675131723e+02
8147 8.1450 -5.354319207504e-02 2.091817246874e+02
8148 8.1460 -5.405977183250e-02 2.092959584489e+02
8149 8.1470 -5.451862674272e-02 2.094103086681e+02
8150 8.1480 -5.503624392517e-02 2.095246588873e+02
8151 8.1490 -5.549574976000e-02 2.096391260096e+02
8152 8.1500 -5.588205141655e-02 2.097537251570e+02
8153 8.1510 -5.616053417065e-02 2.098684909739e+02
8154 8.1520 -5.631332204312e-02 2.099834413655e+02
8155 8.1530 -5.643276027352e-02 2.100984840162e+02
8156 8.1540 -5.661113732782e-02 2.102135266669e+02
8157 8.1550 -5.684848268267e-02 2.103285693175e+02
8158 8.1560 -5.708089058224e-02 2.104436759034e+02
8159 8.1570 -5.736715022339e-02 2.105587876649e+02
8160 8.1580 -5.770466659415e-02 2.106739072264e+02
8161 8.1590 -5.797099736103e-02 2.107891570599e+02
8162 8.1600 -5.829644403366e-02 2.109044068935e+02
8163 8.1610 -5.857515634041e-02 2.110197626068e+02
8164 8.1620 -5.888097072208e-02 2.111351503931e+02
8165 8.1630 -5.924598975000e-02 2.112505381795e+02
8166 8.1640 -5.962287282850e-02 2.113659733360e+02
8167 8.1650 -5.996861535080e-02 2.114814988970e+02
8168 8.1660 -6.028603258174e-02 2.115971120767e+02
8169 8.1670 -6.061270593626e-02 2.117127753236e+02
8170 8.1680 -6.099873213369e-02 2.118284385704e+02
8171 8.1690 -6.130286190827e-02 2.119442430962e+02
8172 8.1700 -6.151925447730e-02 2.120601947714e+02
8173 8.1710 -6.167102001494e-02 2.121762705156e+02
8174 8.1720 -6.182724101575e-02 2.122924012759e+02
8175 8.1730 -6.184586947881e-02 2.124087291303e+02
8176 8.1740 -6.188188083247e-02 2.125250991329e+02
8177 8.1750 -6.185977176541e-02 2.126415868168e+02
8178 8.1760 -6.189725342807e-02 2.127580745008e+02
8179 8.1770 -6.194949294360e-02 2.128746070475e+02
8180 8.1780 -6.186427210446e-02 2.129913367048e+02
8181 8.1790 -6.180653568648e-02 2.131080985579e+02
8182 8.1800 -6.180850929893e-02 2.132248604111e+02
8183 8.1810 -6.181559418603e-02 2.133416768928e+02
8184 8.1820 -6.180018161167e-02 2.134585756418e+02
8185 8.1830 -6.184456870008e-02 2.135754743907e+02
8186 8.1840 -6.186032048013e-02 2.136924616046e+02
8187 8.1850 -6.175092286489e-02 2.138096338273e+02
8188 8.1860 -6.170141467908e-02 2.139268060501e+02
8189 8.1870 -6.167669610874e-02 2.140440134026e+02
8190 8.1880 -6.161047809122e-02 2.141613222039e+02
8191 8.1890 -6.160423940469e-02 2.142786310052e+02
8192 8.1900 -6.165801004651e-02 2.143959398064e+02
8193 8.1910 -6.172158940591e-02 2.145132988384e+02
8194 8.1920 -6.175909075302e-02 2.146307440177e+02
8195 8.1930 -6.176043245603e-02 2.147482854560e+02
8196 8.1940 -6.170016068331e-02 2.148659486373e+02
8197 8.1950 -6.164552269679e-02 2.149836663444e+02
8198 8.1960 -6.152277889222e-02 2.151015123469e+02
8199 8.1970 -6.145240019756e-02 2.152193662040e+02
8200 8.1980 -6.134206290210e-02 2.153373202695e+02
8201 8.1990 -6.124454608273e-02 2.154553217946e+02
8202 8.2000 -6.108301902143e-02 2.155734476400e+02
8203 8.2010 -6.092243077835e-02 2.156916328869e+02
8204 8.2020 -6.074574744527e-02 2.158098945994e+02
8205 8.2030 -6.062946477161e-02 2.159281563118e+02
8206 8.2040 -6.057361296498e-02 2.160464180243e+02
8207 8.2050 -6.057078431726e-02 2.161646871747e+02
8208 8.2060 -6.050024283750e-02 2.162830845292e+02
8209 8.2070 -6.049022293937e-02 2.164014818838e+02
8210 8.2080 -6.054075489111e-02 2.165198792383e+02
8211 8.2090 -6.051415640624e-02 2.166384143055e+02
8212 8.2100 -6.039498967389e-02 2.167571025533e+02
8213 8.2110 -6.022104772574e-02 2.168759062190e+02
8214 8.2120 -6.010777885223e-02 2.169947098848e+02
8215 8.2130 -6.005521339769e-02 2.171135135505e+02
8216 8.2140 -6.001642850920e-02 2.172323641695e+02
8217 8.2150 -5.995016483904e-02 2.173513030314e+02
8218 8.2160 -5.984700338588e-02 2.174703395857e+02
8219 8.2170 -5.968058384963e-02 2.175895002229e+02
8220 8.2180 -5.952662407926e-02 2.177087092558e+02
8221 8.2190 -5.936844836546e-02 2.178279833904e+02
8222 8.2200 -5.920134307970e-02 2.179473273708e+02
8223 8.2210 -5.909518451290e-02 2.180666713513e+02
8224 8.2220 -5.892651483979e-02 2.181861388200e+02
8225 8.2230 -5.874013962366e-02 2.183056850020e+02
8226 8.2240 -5.852844598645e-02 2.184253175406e+02
8227 8.2250 -5.832509916209e-02 2.185450028011e+02
8228 8.2260 -5.805261091962e-02 2.186648183023e+02
8229 8.2270 -5.778386917847e-02 2.187846911869e+02
8230 8.2280 -5.749913432759e-02 2.189046412250e+02
8231 8.2290 -5.727559047075e-02 2.190245912631e+02
8232 8.2300 -5.711326821088e-02 2.191445413011e+02
8233 8.2310 -5.701219816659e-02 2.192644913392e+02
8234 8.2320 -5.697241097159e-02 2.193844413773e+02
8235 8.2330 -5.691878501812e-02 2.195044665676e+02
8236 8.2340 -5.686741703834e-02 2.196245508441e+02
8237 8.2350 -5.668950797222e-02 2.197448230366e+02
8238 8.2360 -5.649263238825e-02 2.198651756011e+02
8239 8.2370 -5.635719305230e-02 2.199855281656e+02
8240 8.2380 -5.617799405467e-02 2.201059859567e+02
8241 8.2390 -5.603152337513e-02 2.202264725172e+02
8242 8.2400 -5.594658116721e-02 2.203469590778e+02
8243 8.2410 -5.591149553250e-02 2.204674573410e+02
8244 8.2420 -5.581142130150e-02 2.205880821828e+02
8245 8.2430 -5.564368548425e-02 2.207088363071e+02
8246 8.2440 -5.547684699529e-02 2.208296511857e+02
8247 8.2450 -5.529877010428e-02 2.209505389851e+02
8248 8.2460 -5.518240654756e-02 2.210714267846e+02
8249 8.2470 -5.512778718938e-02 2.211923145840e+02
8250 8.2480 -5.513494290965e-02 2.213132023835e+02
8251 8.2490 -5.507823724916e-02 2.214342158503e+02
8252 8.2500 -5.494218953426e-02 2.215553704961e+02
8253 8.2510 -5.486800963008e-02 2.216765251418e+02
8254 8.2520 -5.477617023947e-02 2.217977593458e+02
8255 8.2530 -5.469254081953e-02 2.219190472696e+02
8256 8.2540 -5.467087208150e-02 2.220403351933e+02
8257 8.2550 -5.471119501347e-02 2.221616231170e+02
8258 8.2560 -5.468695525876e-02 2.222830376261e+02
8259 8.2570 -5.454471513184e-02 2.224046321893e+02
8260 8.2580 -5.437204803972e-02 2.225263192641e+02
8261 8.2590 -5.426149672495e-02 2.226480063390e+02
8262 8.2600 -5.410669965067e-02 2.227697998064e+02
8263 8.2610 -5.398758821498e-02 2.228916197662e+02
8264 8.2620 -5.393068580033e-02 2.230134397259e+02
8265 8.2630 -5.391173062716e-02 2.231352839786e+02
8266 8.2640 -5.382649123802e-02 2.232572567867e+02
8267 8.2650 -5.369104878504e-02 2.233793421002e+02
8268 8.2660 -5.360565726885e-02 2.235014396964e+02
8269 8.2670 -5.346236561131e-02 2.236236575575e+02
8270 8.2680 -5.338146988212e-02 2.237458754186e+02
8271 8.2690 -5.336300128688e-02 2.238680932797e+02
8272 8.2700 -5.340699104695e-02 2.239903111408e+02
8273 8.2710 -5.345063301927e-02 2.241125918392e+02
8274 8.2720 -5.342758358316e-02 2.242350017500e+02
8275 8.2730 -5.339455581237e-02 2.243574841911e+02
8276 8.2740 -5.324872645076e-02 2.244801420173e+02
8277 8.2750 -5.302528116575e-02 2.246029400740e+02
8278 8.2760 -5.278363715952e-02 2.247258189755e+02
8279 8.2770 -5.244483142503e-02 2.248488577161e+02
8280 8.2780 -5.206453029050e-02 2.249720006608e+02
8281 8.2790 -5.174696920725e-02 2.250951436055e+02
8282 8.2800 -5.145224473059e-02 2.252183264849e+02
8283 8.2810 -5.109031968184e-02 2.253416393678e+02
8284 8.2820 -5.069750506614e-02 2.254650459745e+02
8285 8.2830 -5.036755610743e-02 2.255884525812e+02
8286 8.2840 -5.010050424643e-02 2.257118591879e+02
8287 8.2850 -4.989638093948e-02 2.258352657946e+02
8288 8.2860 -4.972435796846e-02 2.259587032609e+02
8289 8.2870 -4.951463296646e-02 2.260822414208e+02
8290 8.2880 -4.936793098227e-02 2.262057795808e+02
8291 8.2890 -4.928428353506e-02 2.263293177407e+02
8292 8.2900 -4.926372216049e-02 2.264528559006e+02
8293 8.2910 -4.930627840892e-02 2.265763940605e+02
8294 8.2920 -4.931954502518e-02 2.267000246593e+02
8295 8.2930 -4.935715370681e-02 2.268236940967e+02
8296 8.2940 -4.945797475909e-02 2.269473635341e+02
8297 8.2950 -4.950389423936e-02 2.270711511171e+02
8298 8.2960 -4.944254544999e-02 2.271951092440e+02
8299 8.2970 -4.933990875782e-02 2.273191719661e+02
8300 8.2980 -4.920818825787e-02 2.274433271109e+02
8301 8.2990 -4.907358182249e-02 2.275675485122e+02
8302 8.3000 -4.880571244219e-02 2.276919665787e+02
8303 8.3010 -4.853468265728e-02 2.278164512397e+02
8304 8.3020 -4.822548739610e-02 2.279410375319e+02
8305 8.3030 -4.797978960202e-02 2.280656238240e+02
8306 8.3040 -4.779762103221e-02 2.281902101162e+02
8307 8.3050 -4.767901345875e-02 2.283147964083e+02
8308 8.3060 -4.762399867053e-02 2.284393827005e+02
8309 8.3070 -4.749480332373e-02 2.285641067978e+02
8310 8.3080 -4.730602229495e-02 2.286889541372e+02
8311 8.3090 -4.707645685647e-02 2.288139059493e+02
8312 8.3100 -4.688464609374e-02 2.289388837268e+02
8313 8.3110 -4.675658729692e-02 2.290638615042e+02
8314 8.3120 -4.669231234988e-02 2.291888392817e+02
8315 8.3130 -4.657920671942e-02 2.293139297056e+02
8316 8.3140 -4.646121300862e-02 2.294390888653e+02
8317 8.3150 -4.632806725353e-02 2.295643270566e+02
8318 8.3160 -4.625883304358e-02 2.296895652479e+02
8319 8.3170 -4.619434411089e-02 2.298148626374e+02
8320 8.3180 -4.599482170986e-02 2.299403590359e+02
8321 8.3190 -4.578147419910e-02 2.300659332670e+02
8322 8.3200 -4.556741991784e-02 2.301915722443e+02
8323 8.3210 -4.541743716055e-02 2.303172112217e+02
8324 8.3220 -4.525648875018e-02 2.304429252682e+02
8325 8.3230 -4.510496040143e-02 2.305686940304e+02
8326 8.3240 -4.501759975626e-02 2.306944627925e+02
8327 8.3250 -4.499443890637e-02 2.308202315547e+02
8328 8.3260 -4.491843450518e-02 2.309461173922e+02
8329 8.3270 -4.473336777464e-02 2.310721765562e+02
8330 8.3280 -4.451431409675e-02 2.311983340033e+02
8331 8.3290 -4.425725700772e-02 2.313245937820e+02
8332 8.3300 -4.403744159015e-02 2.314508806797e+02
8333 8.3310 -4.388201885649e-02 2.315771675773e+02
8334 8.3320 -4.373752869268e-02 2.317035079672e+02
8335 8.3330 -4.352340950493e-02 2.318299824433e+02
8336 8.3340 -4.317749118633e-02 2.319566532078e+02
8337 8.3350 -4.289222584158e-02 2.320833278410e+02
8338 8.3360 -4.267151436364e-02 2.322100024742e+02
8339 8.3370 -4.251538903739e-02 2.323366771074e+02
8340 8.3380 -4.233984582151e-02 2.324634357769e+02
8341 8.3390 -4.218398793331e-02 2.325902394118e+02
8342 8.3400 -4.209281314914e-02 2.327170430468e+02
8343 8.3410 -4.206635381819e-02 2.328438466817e+02
8344 8.3420 -4.210464230675e-02 2.329706503167e+02
8345 8.3430 -4.220771099634e-02 2.330974539516e+02
8346 8.3440 -4.225689478982e-02 2.332243762841e+02
8347 8.3450 -4.236089992946e-02 2.333513086402e+02
8348 8.3460 -4.245974792200e-02 2.334783110309e+02
8349 8.3470 -4.254941537284e-02 2.336053875121e+02
8350 8.3480 -4.250791568676e-02 2.337326601027e+02
8351 8.3490 -4.248597309822e-02 2.338599781111e+02
8352 8.3500 -4.249319435322e-02 2.339873319629e+02
8353 8.3510 -4.236938865987e-02 2.341148818816e+02
8354 8.3520 -4.228579573468e-02 2.342424566598e+02
8355 8.3530 -4.221015194912e-02 2.343700885939e+02
8356 8.3540 -4.200362224966e-02 2.344979165513e+02
8357 8.3550 -4.185894833614e-02 2.346257478229e+02
8358 8.3560 -4.170002895750e-02 2.347536585427e+02
8359 8.3570 -4.153073933273e-02 2.348816448680e+02
8360 8.3580 -4.123074915884e-02 2.350098271617e+02
8361 8.3590 -4.096288036220e-02 2.351380426346e+02
8362 8.3600 -4.070959720424e-02 2.352663088550e+02
8363 8.3610 -4.032575661956e-02 2.353947709986e+02
8364 8.3620 -3.999817852965e-02 2.355232422784e+02
8365 8.3630 -3.966051181195e-02 2.356517890780e+02
8366 8.3640 -3.931164315121e-02 2.357804125435e+02
8367 8.3650 -3.892496828693e-02 2.359091393120e+02
8368 8.3660 -3.856201256811e-02 2.360379078907e+02
8369 8.3670 -3.817880959001e-02 2.361667622790e+02
8370 8.3680 -3.786120164781e-02 2.362956166673e+02
8371 8.3690 -3.760922154727e-02 2.364244710556e+02
8372 8.3700 -3.742290211041e-02 2.365533254439e+02
8373 8.3710 -3.730227617589e-02 2.366821798322e+02
8374 8.3720 -3.724737659840e-02 2.368110342204e+02
8375 8.3730 -3.721110868800e-02 2.369399357363e+02
8376 8.3740 -3.716047803156e-02 2.370689174070e+02
8377 8.3750 -3.716780610712e-02 2.371979069440e+02
8378 8.3760 -3.704529523352e-02 2.373270921779e+02
8379 8.3770 -3.693791942759e-02 2.374563281676e+02
8380 8.3780 -3.685851040468e-02 2.375856021143e+02
8381 8.3790 -3.675597825290e-02 2.377149651410e+02
8382 8.3800 -3.666091611258e-02 2.378443866875e+02
8383 8.3810 -3.655268542592e-02 2.379738874253e+02
8384 8.3820 -3.639439186993e-02 2.381035042817e+02
8385 8.3830 -3.630218716192e-02 2.382331211382e+02
8386 8.3840 -3.617526444727e-02 2.383628388346e+02
8387 8.3850 -3.608856549102e-02 2.384925824622e+02
8388 8.3860 -3.606805459064e-02 2.386223260898e+02
8389 8.3870 -3.611376484829e-02 2.387520697174e+02
8390 8.3880 -3.613868140074e-02 2.388819003930e+02
8391 8.3890 -3.614959581992e-02 2.390118113581e+02
8392 8.3900 -3.614108811491e-02 2.391418080659e+02
8393 8.3910 -3.619893414285e-02 2.392718047737e+02
8394 8.3920 -3.624774405332e-02 2.394018769046e+02
8395 8.3930 -3.631202113858e-02 2.395319999884e+02
8396 8.3940 -3.644275156211e-02 2.396621230722e+02
8397 8.3950 -3.647518636137e-02 2.397924109382e+02
8398 8.3960 -3.648645446835e-02 2.399227864907e+02
8399 8.3970 -3.656427566845e-02 2.400531620432e+02
8400 8.3980 -3.670868324645e-02 2.401835375957e+02
8401 8.3990 -3.687369191229e-02 2.403139591668e+02
8402 8.4000 -3.702345315008e-02 2.404444626383e+02
8403 8.4010 -3.710122972441e-02 2.405751047808e+02
8404 8.4020 -3.713440363315e-02 2.407058582457e+02
8405 8.4030 -3.713756923348e-02 2.408367084719e+02
8406 8.4040 -3.712514973150e-02 2.409676410697e+02
8407 8.4050 -3.710703581520e-02 2.410986461817e+02
8408 8.4060 -3.715577515550e-02 2.412296512938e+02
8409 8.4070 -3.727140118784e-02 2.413606564058e+02
8410 8.4080 -3.740389819613e-02 2.414917115670e+02
8411 8.4090 -3.740821780360e-02 2.416229618592e+02
8412 8.4100 -3.743494860326e-02 2.417542567273e+02
8413 8.4110 -3.741367158729e-02 2.418856666238e+02
8414 8.4120 -3.742483020794e-02 2.420171111388e+02
8415 8.4130 -3.750307648171e-02 2.421485556538e+02
8416 8.4140 -3.757162445896e-02 2.422800769883e+02
8417 8.4150 -3.762342673251e-02 2.424116822233e+02
8418 8.4160 -3.760288824286e-02 2.425434269874e+02
8419 8.4170 -3.744592514334e-02 2.426753753981e+02
8420 8.4180 -3.723396910140e-02 2.428074460573e+02
8421 8.4190 -3.708930227784e-02 2.429395167165e+02
8422 8.4200 -3.701195832555e-02 2.430715873757e+02
8423 8.4210 -3.700197091455e-02 2.432036580349e+02
8424 8.4220 -3.705937373144e-02 2.433357286941e+02
8425 8.4230 -3.704502606815e-02 2.434679385277e+02
8426 8.4240 -3.698753036199e-02 2.436002589671e+02
8427 8.4250 -3.699752604500e-02 2.437325794064e+02
8428 8.4260 -3.698736671090e-02 2.438649875258e+02
8429 8.4270 -3.695928858001e-02 2.439974811230e+02
8430 8.4280 -3.692251513608e-02 2.441300510082e+02
8431 8.4290 -3.695336819927e-02 2.442626208934e+02
8432 8.4300 -3.705188159116e-02 2.443951907786e+02
8433 8.4310 -3.710714746041e-02 2.445278716055e+02
8434 8.4320 -3.719828242596e-02 2.446605842913e+02
8435 8.4330 -3.725101172220e-02 2.447934031447e+02
8436 8.4340 -3.726695697686e-02 2.449263265779e+02
8437 8.4350 -3.726423941973e-02 2.450593365036e+02
8438 8.4360 -3.727175824350e-02 2.451924040566e+02
8439 8.4370 -3.734717462203e-02 2.453254716095e+02
8440 8.4380 -3.749052251255e-02 2.454585391624e+02
8441 8.4390 -3.762318600084e-02 2.455916853653e+02
8442 8.4400 -3.777836495636e-02 2.457248770521e+02
8443 8.4410 -3.800157739774e-02 2.458580687389e+02
8444 8.4420 -3.827090027315e-02 2.459912823829e+02
8445 8.4430 -3.841385781579e-02 2.461246904937e+02
8446 8.4440 -3.848391752625e-02 2.462582396379e+02
8447 8.4450 -3.851426684285e-02 2.463918966622e+02
8448 8.4460 -3.845865213800e-02 2.465257078544e+02
8449 8.4470 -3.836319502123e-02 2.466596271268e+02
8450 8.4480 -3.824786828696e-02 2.467936345409e+02
8451 8.4490 -3.814959667860e-02 2.469276932060e+02
8452 8.4500 -3.806485185827e-02 2.470618066847e+02
8453 8.4510 -3.795988477654e-02 2.471960087601e+02
8454 8.4520 -3.781958722523e-02 2.473303145747e+02
8455 8.4530 -3.774773258770e-02 2.474646203893e+02
8456 8.4540 -3.767043146308e-02 2.475990001275e+02
8457 8.4550 -3.761214160430e-02 2.477334293658e+02
8458 8.4560 -3.761695749253e-02 2.478678640441e+02
8459 8.4570 -3.757248977786e-02 2.480024165859e+02
8460 8.4580 -3.759663629820e-02 2.481369691277e+02
8461 8.4590 -3.768943136928e-02 2.482715216695e+02
8462 8.4600 -3.782331981971e-02 2.484061018008e+02
8463 8.4610 -3.783184291418e-02 2.485408760147e+02
8464 8.4620 -3.781923087966e-02 2.486757401153e+02
8465 8.4630 -3.773337596917e-02 2.488107462447e+02
8466 8.4640 -3.767765285952e-02 2.489457910628e+02
8467 8.4650 -3.769078455542e-02 2.490808358809e+02
8468 8.4660 -3.777280549304e-02 2.492158806989e+02
8469 8.4670 -3.781448398403e-02 2.493510347831e+02
8470 8.4680 -3.788613225171e-02 2.494862278557e+02
8471 8.4690 -3.792945397019e-02 2.496215182475e+02
8472 8.4700 -3.804180284692e-02 2.497568086393e+02
8473 8.4710 -3.822321340385e-02 2.498920990311e+02
8474 8.4720 -3.847372018018e-02 2.500273894229e+02
8475 8.4730 -3.877170299655e-02 2.501627014695e+02
8476 8.4740 -3.899625409566e-02 2.502981561131e+02
8477 8.4750 -3.908543894145e-02 2.504338153229e+02
8478 8.4760 -3.912282456665e-02 2.505695955664e+02
8479 8.4770 -3.907560706108e-02 2.507055296823e+02
8480 8.4780 -3.900687391978e-02 2.508415546176e+02
8481 8.4790 -3.900747925883e-02 2.509775795529e+02
8482 8.4800 -3.895310007014e-02 2.511137288460e+02
8483 8.4810 -3.884808615703e-02 2.512499981816e+02
8484 8.4820 -3.881251481006e-02 2.513862675171e+02
8485 8.4830 -3.882308136613e-02 2.515225601921e+02
8486 8.4840 -3.880445403039e-02 2.516589515730e+02
8487 8.4850 -3.885537350261e-02 2.517953429540e+02
8488 8.4860 -3.897587456478e-02 2.519317343349e+02
8489 8.4870 -3.916599201620e-02 2.520681257158e+02
8490 8.4880 -3.942576067426e-02 2.522045170967e+02
8491 8.4890 -3.975514926452e-02 2.523409085438e+02
8492 8.4900 -4.003256792389e-02 2.524774216816e+02
8493 8.4910 -4.037974234493e-02 2.526139348195e+02
8494 8.4920 -4.068168073824e-02 2.527505629840e+02
8495 8.4930 -4.095993067459e-02 2.528872846625e+02
8496 8.4940 -4.127331634028e-02 2.530240410658e+02
8497 8.4950 -4.162538211286e-02 2.531608286844e+02
8498 8.4960 -4.195710364504e-02 2.532977065776e+02
8499 8.4970 -4.235879052062e-02 2.534345844708e+02
8500 8.4980 -4.278224330682e-02 2.535715105984e+02
8501 8.4990 -4.318144588596e-02 2.537085310116e+02

E-009-suzuki-screw-function.json — 1.4 KB, updated 08-18-2026

JSON sidecar (click to expand)
{
  "experiment": "E-009a",
  "task": "3.4c (D-018 step 1): Suzuki screw function g(t)",
  "description": "mpmath implementation of Suzuki's explicit screw function g(t) (arXiv:2606.09096v1 eq. 1.3); validated against eq. 2.2 near-origin expansion; tabulated on [0,10] step 1e-3 for E-009b Galerkin",
  "script": "research/numerics/scripts/E-009-suzuki-screw-function.py",
  "parameters": {
    "t_max": 10.0,
    "step": 0.001,
    "validation_dps": 30,
    "n_sieve_max": 22028
  },
  "checks": {
    "A1_lerch_convention": true,
    "A2_evenness": true,
    "A3_A_limit": true,
    "A4_r_curvature_converges": true,
    "B_table_finite": true,
    "B_spot_check_vs_mpmath": true
  },
  "key_values": {
    "A_eq2.2": 0.707546365655439,
    "c2_lim_r_over_t2": -0.8750599754042412,
    "digamma_coeff_-half(psi(1/4)-log pi)": 2.6860917096128327,
    "Phi(1,2,1/4)": 17.19732915450711,
    "g(log2)": -0.06355558603756917,
    "g(1)": -0.0440073052368517,
    "g(5)": -0.045371349558830154,
    "g(10)": -0.06209008245757719
  },
  "caveats": [
    "float64 table: Lerch combination has cancellation for small t (~4 digits lost at t=1e-3); spot-checked vs mpmath to 1e-9",
    "prime sum is piecewise linear in t (kinks at log n) — exact via cumsum, no interpolation error",
    "g even: only t >= 0 tabulated"
  ],
  "elapsed_seconds": 3.0,
  "timestamp_utc": "2026-08-18T01:44:26.674491+00:00",
  "row_count": 10001
}

Source code

Python script (click to expand)
"""E-009a — Task 3.4c (Q-3.4c, D-018 plan step 1): Suzuki's screw function g(t).

Suzuki (arXiv:2606.09096v1, eq. 1.3) — explicit screw function of zeta:

  g(t) = -4(e^{t/2} + e^{-t/2} - 2)
         + Sum_{n <= e^{|t|}} (Lambda(n)/sqrt(n)) (|t| - log n)
         - (|t|/2)(psi(1/4) - log pi)
         - (1/4)[ Phi(1,2,1/4) - e^{-|t|/2} Phi(e^{-2|t|}, 2, 1/4) ]

(psi = digamma, Phi = Hurwitz-Lerch transcendent Phi(z,s,a) =
Sum_{k>=0} z^k/(k+a)^s; Lambda = von Mangoldt; prime sum = 0 for
|t| < (1/2) log 2.)

Near-origin expansion (Suzuki eq. 2.2):
  g(t) = (1/2)|t| log|t| + A|t| + (prime sum) + r(t),
  r even C^2, r = O(t^2),
  A = (1/2)(log(2pi) - psi(2)) = (1/2)(log(2pi) + gamma_E - 1)
    = 0.7075463656...

g is a Krein-Langer screw function IFF RH (this is the Cor 1.6 bridge).

Part A (validation, mpmath dps 30):
  A1. Lerch convention: Phi(1,2,1/4) == psi'(1/4) = polygamma(1, 1/4).
  A2. Evenness: g(-t) == g(t) at t = 0.7, 2.3, 5.1 (exercises prime sum).
  A3. A-limit: g(t)/t - (1/2) log t -> A as t -> 0+ (prime sum = 0 there);
      residual must equal r(t)/t = c2*t + o(t) with c2 from A4.
  A4. r-curvature: r(t)/t^2 -> c2 (constant) as t -> 0+, t <= 0.25.

Part B (tabulation, float64 + mpmath hybrid):
  g(t) on t in [0, 10], step 1e-3 (mesh for the E-009b Galerkin stage;
  g is even so t >= 0 suffices). Prime-sum part via exact cumsum arrays
  (P(t) piecewise linear in t with kinks at log n). Lerch combination:
  direct numpy series for t > 0.35 (z = e^{-2t} < 0.5, fast), mpmath
  lerchphi for t <= 0.35 (slow-converging near z = 1).

Outputs: research/numerics/data/E-009-suzuki-screw-function.csv (+ .json)
"""
import json
import sys
import time
from datetime import datetime, timezone
from pathlib import Path

import numpy as np
import mpmath as mp

REPO = Path(__file__).resolve().parents[3]
DATA = REPO / "research" / "numerics" / "data"
CSV = DATA / "E-009-suzuki-screw-function.csv"
JSON = DATA / "E-009-suzuki-screw-function.json"

T_MAX = 10.0          # tabulation range [0, T_MAX] (g even)
H = 1e-3              # mesh step
DPS = 30              # validation precision
A_CONST = 0.5 * (np.log(2 * np.pi) + np.euler_gamma - 1.0)  # eq. 2.2 constant


# ---------------------------------------------------------------- von Mangoldt
def mangoldt_sieve(n_max: int) -> np.ndarray:
    """lam_log[n] = log p if n = p^k (prime power), else 0."""
    lam_log = np.zeros(n_max + 1)
    is_comp = np.zeros(n_max + 1, dtype=bool)
    for p in range(2, n_max + 1):
        if not is_comp[p]:
            if p * p <= n_max:
                is_comp[p * p :: p] = True
            pk = p
            while pk <= n_max:
                lam_log[pk] = np.log(p)
                pk *= p
    return lam_log


N_MAX = int(np.exp(T_MAX)) + 2
LAM_LOG = mangoldt_sieve(N_MAX)
NS = np.arange(2, N_MAX + 1)
LOGS = np.log(NS)
LAM = LAM_LOG[2:] / np.sqrt(NS)          # Lambda(n)/sqrt(n)
C1 = np.cumsum(LAM)                       # Sum_{n<=x} Lambda(n)/sqrt(n)
C0 = np.cumsum(LAM * LOGS)                # Sum_{n<=x} Lambda(n) log(n)/sqrt(n)


def prime_sum_vec(t: np.ndarray) -> np.ndarray:
    """P(t) = Sum_{n <= e^t} (Lambda(n)/sqrt(n))(t - log n), vectorized."""
    m = np.searchsorted(LOGS, t, side="right")     # count of n with log n <= t
    out = np.zeros_like(t)
    pos = m > 0
    idx = m[pos] - 1
    out[pos] = C1[idx] * t[pos] - C0[idx]
    return out


def prime_sum_mp(t: mp.mpf) -> mp.mpf:
    s = mp.mpf(0)
    n = 2
    while mp.log(n) <= t:
        s += (LAM_LOG[n] / mp.sqrt(n)) * (t - mp.log(n))
        n += 1
    return s


# ------------------------------------------------------------------- g(t), mp
def g_mp(t) -> mp.mpf:
    t = mp.mpf(t)
    a = abs(t)
    s = -4 * (mp.exp(a / 2) + mp.exp(-a / 2) - 2)
    s += prime_sum_mp(a)
    s -= (a / 2) * (mp.digamma(mp.mpf(1) / 4) - mp.log(mp.pi))
    s -= mp.mpf(1) / 4 * (mp.lerchphi(1, 2, mp.mpf(1) / 4)
                          - mp.exp(-a / 2) * mp.lerchphi(mp.exp(-2 * a), 2,
                                                         mp.mpf(1) / 4))
    return s


# --------------------------------------------------------------- g(t), float
KK = np.arange(0, 80)
DENOM = (KK + 0.25) ** 2


def lerch_phi2_fast(z: np.ndarray) -> np.ndarray:
    """Phi(z,2,1/4) by direct series; valid for |z| <= 0.5 (t >= 0.35)."""
    powers = np.power.outer(z, KK)          # (n_z, K)
    return (powers / DENOM).sum(axis=1)


def g_float_table(t: np.ndarray) -> np.ndarray:
    g = -4.0 * (np.exp(t / 2) + np.exp(-t / 2) - 2.0)
    g += prime_sum_vec(t)
    dig_coeff = -0.5 * float(mp.digamma(mp.mpf(1) / 4) - mp.log(mp.pi))
    g += dig_coeff * t
    phi1 = float(mp.lerchphi(1, 2, mp.mpf(1) / 4))   # = polygamma(1, 1/4)
    lerch_comb = np.empty_like(t)
    slow = t <= 0.35
    if slow.any():
        mp.dps = 25
        for i in np.flatnonzero(slow):
            ti = mp.mpf(float(t[i]))
            val = (mp.lerchphi(1, 2, mp.mpf(1) / 4)
                   - mp.exp(-ti / 2) * mp.lerchphi(mp.exp(-2 * ti), 2,
                                                   mp.mpf(1) / 4))
            lerch_comb[i] = float(val) / -4.0
        mp.dps = DPS
    if (~slow).any():
        z = np.exp(-2.0 * t[~slow])
        lerch_comb[~slow] = -0.25 * (phi1 - np.exp(-t[~slow] / 2)
                                     * lerch_phi2_fast(z))
    g += lerch_comb
    g[t == 0.0] = 0.0
    return g


# ------------------------------------------------------------------- main
def main() -> int:
    if CSV.exists() and "--force" not in sys.argv:
        print(f"cached: {CSV} exists (use --force to recompute)"); return 0
    t0 = time.time()
    mp.dps = DPS

    # ---- A1: Lerch convention
    phi1_mp = mp.lerchphi(1, 2, mp.mpf(1) / 4)
    trig1_mp = mp.polygamma(1, mp.mpf(1) / 4)
    a1_err = abs(phi1_mp - trig1_mp)
    check_a1 = bool(a1_err < mp.mpf("1e-25"))

    # ---- A2: evenness (t values exercising the prime sum)
    ev_ts = [mp.mpf("0.7"), mp.mpf("2.3"), mp.mpf("5.1")]
    ev_err = max(abs(g_mp(t) - g_mp(-t)) for t in ev_ts)
    check_a2 = bool(ev_err < mp.mpf("1e-20"))

    # ---- A4: r(t)/t^2 -> c2 (t <= 0.25: prime sum = 0)
    A_mp = (mp.log(2 * mp.pi) + mp.euler - 1) / 2
    r_ts = [mp.mpf("0.25"), mp.mpf("0.125"), mp.mpf("0.0625"),
            mp.mpf("0.03125"), mp.mpf("0.015625")]
    r_ratios = []
    for t in r_ts:
        r = g_mp(t) - (t / 2) * mp.log(t) - A_mp * t     # prime sum = 0 here
        r_ratios.append(r / t**2)
    c2 = r_ratios[-1]
    r_gap_last = abs(r_ratios[-1] - r_ratios[-2])
    r_gap_prev = abs(r_ratios[-2] - r_ratios[-3])
    check_a4 = bool(r_gap_last < r_gap_prev)  # gaps shrinking => converging

    # ---- A3: g(t)/t - (1/2) log t -> A; residual ~ c2 * t
    a3_ts = [mp.mpf("1e-2"), mp.mpf("1e-3"), mp.mpf("1e-4")]
    a3_resid = [g_mp(t) / t - mp.log(t) / 2 - A_mp for t in a3_ts]
    # expected residual ~ c2*t; test relative agreement within 25%
    a3_rel = [abs((res - c2 * t) / (c2 * t)) if c2 != 0 else abs(res)
              for res, t in zip(a3_resid, a3_ts)]
    check_a3 = bool(a3_rel[-1] < 0.25 and abs(a3_resid[-1]) < mp.mpf("3e-3"))

    print(f"A1 lerch==polygamma(1,1/4): err {mp.nstr(a1_err, 5)}")
    print(f"A2 evenness max err: {mp.nstr(ev_err, 5)}")
    print(f"A4 r(t)/t^2 -> c2 = {mp.nstr(c2, 12)} "
          f"(gaps {mp.nstr(r_gap_prev, 3)} -> {mp.nstr(r_gap_last, 3)})")
    print(f"A3 residuals g(t)/t - (1/2)log t - A at 1e-2/1e-3/1e-4: "
          f"{[mp.nstr(x, 6) for x in a3_resid]}  (c2*t predicted)")

    # ---- Part B: table on [0, T_MAX]
    t_mesh = np.arange(0.0, T_MAX + 0.5 * H, H)
    g_vals = g_float_table(t_mesh)
    p_vals = prime_sum_vec(t_mesh)
    check_b = bool(np.all(np.isfinite(g_vals)))
    # spot check: float table vs mpmath at a few points
    spot_ts = [0.123, 1.0, 3.7, 7.0, 10.0]
    spot_err = max(abs(g_mp(x) - mp.mpf(float(g_vals[int(round(x / H))])))
                   for x in spot_ts)
    check_spot = bool(spot_err < mp.mpf("1e-9"))
    print(f"Part B: {len(t_mesh)} points, spot-check err vs mpmath: "
          f"{mp.nstr(spot_err, 3)}")

    checks = {
        "A1_lerch_convention": check_a1,
        "A2_evenness": check_a2,
        "A3_A_limit": check_a3,
        "A4_r_curvature_converges": check_a4,
        "B_table_finite": check_b,
        "B_spot_check_vs_mpmath": check_spot,
    }

    DATA.mkdir(parents=True, exist_ok=True)
    with CSV.open("w", encoding="utf-8", newline="") as f:
        f.write("t,g_t,prime_sum_t\n")
        for ti, gi, pi in zip(t_mesh, g_vals, p_vals):
            f.write(f"{ti:.4f},{gi:.12e},{pi:.12e}\n")

    meta = {
        "experiment": "E-009a",
        "task": "3.4c (D-018 step 1): Suzuki screw function g(t)",
        "description": "mpmath implementation of Suzuki's explicit screw "
                       "function g(t) (arXiv:2606.09096v1 eq. 1.3); "
                       "validated against eq. 2.2 near-origin expansion; "
                       "tabulated on [0,10] step 1e-3 for E-009b Galerkin",
        "script": "research/numerics/scripts/E-009-suzuki-screw-function.py",
        "parameters": {"t_max": T_MAX, "step": H, "validation_dps": DPS,
                       "n_sieve_max": N_MAX},
        "checks": checks,
        "key_values": {
            "A_eq2.2": float(A_CONST),
            "c2_lim_r_over_t2": float(c2),
            "digamma_coeff_-half(psi(1/4)-log pi)":
                float(-(mp.digamma(mp.mpf(1) / 4) - mp.log(mp.pi)) / 2),
            "Phi(1,2,1/4)": float(phi1_mp),
            "g(log2)": float(g_mp(mp.log(2))),
            "g(1)": float(g_mp(1)),
            "g(5)": float(g_mp(5)),
            "g(10)": float(g_vals[-1]),
        },
        "caveats": [
            "float64 table: Lerch combination has cancellation for small t "
            "(~4 digits lost at t=1e-3); spot-checked vs mpmath to 1e-9",
            "prime sum is piecewise linear in t (kinks at log n) — exact "
            "via cumsum, no interpolation error",
            "g even: only t >= 0 tabulated",
        ],
        "elapsed_seconds": round(time.time() - t0, 1),
        "timestamp_utc": datetime.now(timezone.utc).isoformat(),
        "row_count": int(len(t_mesh)),
    }
    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())