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 14 of 21 · 500/page · 10001 rows next →
# tg_tprime_sum_t
6502 6.5000 -5.173036339874e-02 8.194936546749e+01
6503 6.5010 -5.137333307432e-02 8.199862998330e+01
6504 6.5020 -5.104210598860e-02 8.204789449910e+01
6505 6.5030 -5.073669504653e-02 8.209715901491e+01
6506 6.5040 -5.045711315939e-02 8.214642353071e+01
6507 6.5050 -5.020337324485e-02 8.219568804651e+01
6508 6.5060 -4.997548822722e-02 8.224495256232e+01
6509 6.5070 -4.977347103719e-02 8.229421707812e+01
6510 6.5080 -4.959733461181e-02 8.234348159392e+01
6511 6.5090 -4.944709189478e-02 8.239274610973e+01
6512 6.5100 -4.932275583622e-02 8.244201062553e+01
6513 6.5110 -4.922433939256e-02 8.249127514133e+01
6514 6.5120 -4.908793089016e-02 8.254060358177e+01
6515 6.5130 -4.879038323600e-02 8.259011910691e+01
6516 6.5140 -4.851879410546e-02 8.263963463205e+01
6517 6.5150 -4.827317648096e-02 8.268915015719e+01
6518 6.5160 -4.805354335157e-02 8.273866568233e+01
6519 6.5170 -4.785990771281e-02 8.278818120747e+01
6520 6.5180 -4.760993825365e-02 8.283777907693e+01
6521 6.5190 -4.721784215269e-02 8.288754509652e+01
6522 6.5200 -4.685178256779e-02 8.293731111612e+01
6523 6.5210 -4.651177252046e-02 8.298707713571e+01
6524 6.5220 -4.619782503887e-02 8.303684315531e+01
6525 6.5230 -4.590995315738e-02 8.308660917490e+01
6526 6.5240 -4.564816991709e-02 8.313637519450e+01
6527 6.5250 -4.541248836565e-02 8.318614121410e+01
6528 6.5260 -4.520292155714e-02 8.323590723369e+01
6529 6.5270 -4.489333414321e-02 8.328579940170e+01
6530 6.5280 -4.448630662354e-02 8.333581515068e+01
6531 6.5290 -4.410543304827e-02 8.338583089966e+01
6532 6.5300 -4.375072649765e-02 8.343584664864e+01
6533 6.5310 -4.342220005852e-02 8.348586239762e+01
6534 6.5320 -4.311986682413e-02 8.353587814660e+01
6535 6.5330 -4.284373989447e-02 8.358589389558e+01
6536 6.5340 -4.259383237586e-02 8.363590964456e+01
6537 6.5350 -4.237015738131e-02 8.368592539355e+01
6538 6.5360 -4.217272803037e-02 8.373594114253e+01
6539 6.5370 -4.200155744916e-02 8.378595689151e+01
6540 6.5380 -4.185665877038e-02 8.383597264049e+01
6541 6.5390 -4.152409989793e-02 8.388620233470e+01
6542 6.5400 -4.118306188742e-02 8.393646680625e+01
6543 6.5410 -4.086833521672e-02 8.398673127779e+01
6544 6.5420 -4.057993304474e-02 8.403699574933e+01
6545 6.5430 -4.031786853711e-02 8.408726022087e+01
6546 6.5440 -4.008215486594e-02 8.413752469241e+01
6547 6.5450 -3.987280520987e-02 8.418778916396e+01
6548 6.5460 -3.968983275427e-02 8.423805363550e+01
6549 6.5470 -3.953325069107e-02 8.428831810704e+01
6550 6.5480 -3.940307221863e-02 8.433858257858e+01
6551 6.5490 -3.929931054220e-02 8.438884705012e+01
6552 6.5500 -3.922197887342e-02 8.443911152167e+01
6553 6.5510 -3.917109043053e-02 8.448937599321e+01
6554 6.5520 -3.914665843856e-02 8.453964046475e+01
6555 6.5530 -3.902690564663e-02 8.459002672677e+01
6556 6.5540 -3.880794145033e-02 8.464053868312e+01
6557 6.5550 -3.861547341939e-02 8.469105063947e+01
6558 6.5560 -3.844951480516e-02 8.474156259582e+01
6559 6.5570 -3.831007886567e-02 8.479207455217e+01
6560 6.5580 -3.819717886560e-02 8.484258650852e+01
6561 6.5590 -3.811082807620e-02 8.489309846487e+01
6562 6.5600 -3.805103977548e-02 8.494361042122e+01
6563 6.5610 -3.801782724788e-02 8.499412237757e+01
6564 6.5620 -3.801120378466e-02 8.504463433392e+01
6565 6.5630 -3.803118268370e-02 8.509514629026e+01
6566 6.5640 -3.804216298380e-02 8.514569386088e+01
6567 6.5650 -3.786887575890e-02 8.519645232800e+01
6568 6.5660 -3.772223082969e-02 8.524721079512e+01
6569 6.5670 -3.760224152066e-02 8.529796926223e+01
6570 6.5680 -3.750892116299e-02 8.534872772935e+01
6571 6.5690 -3.744228309451e-02 8.539948619647e+01
6572 6.5700 -3.740234065965e-02 8.545024466359e+01
6573 6.5710 -3.738910720960e-02 8.550100313070e+01
6574 6.5720 -3.740259610217e-02 8.555176159782e+01
6575 6.5730 -3.744282070187e-02 8.560252006494e+01
6576 6.5740 -3.750979437994e-02 8.565327853206e+01
6577 6.5750 -3.760353051420e-02 8.570403699918e+01
6578 6.5760 -3.772404248927e-02 8.575479546629e+01
6579 6.5770 -3.787134369641e-02 8.580555393341e+01
6580 6.5780 -3.801143680319e-02 8.585634641126e+01
6581 6.5790 -3.796704384070e-02 8.590735019121e+01
6582 6.5800 -3.794948032426e-02 8.595835397116e+01
6583 6.5810 -3.795875967197e-02 8.600935775112e+01
6584 6.5820 -3.799489530857e-02 8.606036153107e+01
6585 6.5830 -3.805790066566e-02 8.611136531102e+01
6586 6.5840 -3.814778918138e-02 8.616236909097e+01
6587 6.5850 -3.826457430072e-02 8.621337287092e+01
6588 6.5860 -3.840826947531e-02 8.626437665088e+01
6589 6.5870 -3.857888816350e-02 8.631538043083e+01
6590 6.5880 -3.877644383049e-02 8.636638421078e+01
6591 6.5890 -3.898298328093e-02 8.641740595740e+01
6592 6.5900 -3.899008357126e-02 8.646865410711e+01
6593 6.5910 -3.902416127619e-02 8.651990225682e+01
6594 6.5920 -3.907195425723e-02 8.657116368216e+01
6595 6.5930 -3.911933793027e-02 8.662245252121e+01
6596 6.5940 -3.919373951429e-02 8.667374136026e+01
6597 6.5950 -3.929517252175e-02 8.672503019931e+01
6598 6.5960 -3.942365047166e-02 8.677631903837e+01
6599 6.5970 -3.957918688993e-02 8.682760787742e+01
6600 6.5980 -3.955362751707e-02 8.687910488426e+01
6601 6.5990 -3.951965034032e-02 8.693063739445e+01
6602 6.6000 -3.951277224999e-02 8.698216990464e+01
6603 6.6010 -3.953300679911e-02 8.703370241483e+01
6604 6.6020 -3.958036754738e-02 8.708523492502e+01
6605 6.6030 -3.965486806125e-02 8.713676743521e+01
6606 6.6040 -3.975652191405e-02 8.718829994540e+01
6607 6.6050 -3.988534268573e-02 8.723983245559e+01
6608 6.6060 -3.987075292738e-02 8.729153555681e+01
6609 6.6070 -3.981096849262e-02 8.734331104681e+01
6610 6.6080 -3.977839175772e-02 8.739508653681e+01
6611 6.6090 -3.977303633002e-02 8.744686202681e+01
6612 6.6100 -3.979491582357e-02 8.749863751682e+01
6613 6.6110 -3.977032773764e-02 8.755048672294e+01
6614 6.6120 -3.960419502657e-02 8.760250473585e+01
6615 6.6130 -3.946533811980e-02 8.765452274877e+01
6616 6.6140 -3.935377065856e-02 8.770654076169e+01
6617 6.6150 -3.926950629102e-02 8.775855877461e+01
6618 6.6160 -3.921255867221e-02 8.781057678752e+01
6619 6.6170 -3.918294146380e-02 8.786259480044e+01
6620 6.6180 -3.918066833446e-02 8.791461281336e+01
6621 6.6190 -3.920575295970e-02 8.796663082628e+01
6622 6.6200 -3.925820902172e-02 8.801864883919e+01
6623 6.6210 -3.933805020980e-02 8.807066685211e+01
6624 6.6220 -3.930168467642e-02 8.812282847057e+01
6625 6.6230 -3.919471868738e-02 8.817508810201e+01
6626 6.6240 -3.911517893283e-02 8.822734773345e+01
6627 6.6250 -3.906307912931e-02 8.827960736489e+01
6628 6.6260 -3.903843300031e-02 8.833186699633e+01
6629 6.6270 -3.904125427595e-02 8.838412662778e+01
6630 6.6280 -3.907155669343e-02 8.843638625922e+01
6631 6.6290 -3.912935399678e-02 8.848864589066e+01
6632 6.6300 -3.906123693146e-02 8.854105894510e+01
6633 6.6310 -3.893311696021e-02 8.859355952485e+01
6634 6.6320 -3.883253314816e-02 8.864606010460e+01
6635 6.6330 -3.875949926678e-02 8.869856068434e+01
6636 6.6340 -3.871402909446e-02 8.875106126409e+01
6637 6.6350 -3.860795704952e-02 8.880365002321e+01
6638 6.6360 -3.837715038679e-02 8.885639110822e+01
6639 6.6370 -3.817394880971e-02 8.890913219324e+01
6640 6.6380 -3.799836612429e-02 8.896187327826e+01
6641 6.6390 -3.785041614339e-02 8.901461436328e+01
6642 6.6400 -3.773011268685e-02 8.906735544830e+01
6643 6.6410 -3.763746958140e-02 8.912009653331e+01
6644 6.6420 -3.757250066066e-02 8.917283761833e+01
6645 6.6430 -3.753521976518e-02 8.922557870335e+01
6646 6.6440 -3.752564074241e-02 8.927831978837e+01
6647 6.6450 -3.754377744677e-02 8.933106087339e+01
6648 6.6460 -3.737181448110e-02 8.938401978766e+01
6649 6.6470 -3.720579612153e-02 8.943700050079e+01
6650 6.6480 -3.706753509390e-02 8.948998121392e+01
6651 6.6490 -3.695704528034e-02 8.954296192705e+01
6652 6.6500 -3.687434056988e-02 8.959594264017e+01
6653 6.6510 -3.664698766972e-02 8.964909580049e+01
6654 6.6520 -3.638070094850e-02 8.970231570753e+01
6655 6.6530 -3.614224103933e-02 8.975553561457e+01
6656 6.6540 -3.593162185909e-02 8.980875552161e+01
6657 6.6550 -3.574885733167e-02 8.986197542865e+01
6658 6.6560 -3.559396138781e-02 8.991519533569e+01
6659 6.6570 -3.546694796534e-02 8.996841524272e+01
6660 6.6580 -3.536783100903e-02 9.002163514976e+01
6661 6.6590 -3.529662447053e-02 9.007485505680e+01
6662 6.6600 -3.525334230862e-02 9.012807496384e+01
6663 6.6610 -3.523799848896e-02 9.018129487088e+01
6664 6.6620 -3.525060698411e-02 9.023451477792e+01
6665 6.6630 -3.529118177387e-02 9.028773468496e+01
6666 6.6640 -3.535973684476e-02 9.034095459200e+01
6667 6.6650 -3.545628619054e-02 9.039417449904e+01
6668 6.6660 -3.558084381171e-02 9.044739440608e+01
6669 6.6670 -3.573342371600e-02 9.050061431312e+01
6670 6.6680 -3.591403991808e-02 9.055383422016e+01
6671 6.6690 -3.593926366117e-02 9.060723756998e+01
6672 6.6700 -3.593829786436e-02 9.066069517368e+01
6673 6.6710 -3.596541045134e-02 9.071415277739e+01
6674 6.6720 -3.602061546473e-02 9.076761038109e+01
6675 6.6730 -3.610392695436e-02 9.082106798480e+01
6676 6.6740 -3.621535897691e-02 9.087452558850e+01
6677 6.6750 -3.635492559612e-02 9.092798319221e+01
6678 6.6760 -3.652264088292e-02 9.098144079592e+01
6679 6.6770 -3.671851891509e-02 9.103489839962e+01
6680 6.6780 -3.694257377750e-02 9.108835600333e+01
6681 6.6790 -3.719481956217e-02 9.114181360703e+01
6682 6.6800 -3.747527036799e-02 9.119527121074e+01
6683 6.6810 -3.774955032539e-02 9.124876320442e+01
6684 6.6820 -3.784980548460e-02 9.130245745614e+01
6685 6.6830 -3.797830800434e-02 9.135615170786e+01
6686 6.6840 -3.813507201179e-02 9.140984595958e+01
6687 6.6850 -3.832011164115e-02 9.146354021130e+01
6688 6.6860 -3.853344103389e-02 9.151723446302e+01
6689 6.6870 -3.877507433830e-02 9.157092871474e+01
6690 6.6880 -3.904502570996e-02 9.162462296646e+01
6691 6.6890 -3.934330931147e-02 9.167831721818e+01
6692 6.6900 -3.966993931236e-02 9.173201146990e+01
6693 6.6910 -4.002492988949e-02 9.178570572162e+01
6694 6.6920 -4.040829522668e-02 9.183939997334e+01
6695 6.6930 -4.082004951480e-02 9.189309422506e+01
6696 6.6940 -4.126020695195e-02 9.194678847678e+01
6697 6.6950 -4.172878174318e-02 9.200048272850e+01
6698 6.6960 -4.217845081293e-02 9.205422431751e+01
6699 6.6970 -4.246849120283e-02 9.210815398098e+01
6700 6.6980 -4.278699160489e-02 9.216208364445e+01
6701 6.6990 -4.296180672218e-02 9.221618546746e+01
6702 6.7000 -4.310206185242e-02 9.227035033893e+01
6703 6.7010 -4.327081971683e-02 9.232451521041e+01
6704 6.7020 -4.346809457039e-02 9.237868008189e+01
6705 6.7030 -4.369390067511e-02 9.243284495336e+01
6706 6.7040 -4.394825230020e-02 9.248700982484e+01
6707 6.7050 -4.423116372197e-02 9.254117469632e+01
6708 6.7060 -4.454264922391e-02 9.259533956779e+01
6709 6.7070 -4.488272309665e-02 9.264950443927e+01
6710 6.7080 -4.525139963791e-02 9.270366931075e+01
6711 6.7090 -4.564869315262e-02 9.275783418223e+01
6712 6.7100 -4.607461795286e-02 9.281199905370e+01
6713 6.7110 -4.641750112979e-02 9.286627561241e+01
6714 6.7120 -4.666653259455e-02 9.292067468276e+01
6715 6.7130 -4.693398932867e-02 9.297508400210e+01
6716 6.7140 -4.700638472030e-02 9.302971707139e+01
6717 6.7150 -4.710748306518e-02 9.308435014068e+01
6718 6.7160 -4.723729871845e-02 9.313898320997e+01
6719 6.7170 -4.739584604231e-02 9.319361627927e+01
6720 6.7180 -4.753751597665e-02 9.324829497199e+01
6721 6.7190 -4.751996879950e-02 9.330316164224e+01
6722 6.7200 -4.753119642279e-02 9.335802831249e+01
6723 6.7210 -4.738919518960e-02 9.341307700078e+01
6724 6.7220 -4.722461270052e-02 9.346817707393e+01
6725 6.7230 -4.708884820648e-02 9.352327714707e+01
6726 6.7240 -4.698191612006e-02 9.357837722021e+01
6727 6.7250 -4.690383086098e-02 9.363347729335e+01
6728 6.7260 -4.685460685645e-02 9.368857736650e+01
6729 6.7270 -4.683425854057e-02 9.374367743964e+01
6730 6.7280 -4.684280035480e-02 9.379877751278e+01
6731 6.7290 -4.688024674788e-02 9.385387758592e+01
6732 6.7300 -4.694661217570e-02 9.390897765907e+01
6733 6.7310 -4.704191110130e-02 9.396407773221e+01
6734 6.7320 -4.716615799517e-02 9.401917780535e+01
6735 6.7330 -4.713591837060e-02 9.407446132746e+01
6736 6.7340 -4.708568291614e-02 9.412979382233e+01
6737 6.7350 -4.701702503371e-02 9.418517373104e+01
6738 6.7360 -4.690867327478e-02 9.424062233956e+01
6739 6.7370 -4.682934194454e-02 9.429607094808e+01
6740 6.7380 -4.677904555686e-02 9.435151955659e+01
6741 6.7390 -4.675779863275e-02 9.440696816511e+01
6742 6.7400 -4.676561570063e-02 9.446241677363e+01
6743 6.7410 -4.680251129611e-02 9.451786538214e+01
6744 6.7420 -4.686849996218e-02 9.457331399066e+01
6745 6.7430 -4.696359624887e-02 9.462876259918e+01
6746 6.7440 -4.708781471371e-02 9.468421120770e+01
6747 6.7450 -4.724116992140e-02 9.473965981621e+01
6748 6.7460 -4.742367644403e-02 9.479510842473e+01
6749 6.7470 -4.763534886081e-02 9.485055703325e+01
6750 6.7480 -4.787620175834e-02 9.490600564176e+01
6751 6.7490 -4.809068761781e-02 9.496150981239e+01
6752 6.7500 -4.815887214009e-02 9.501718949403e+01
6753 6.7510 -4.825628094662e-02 9.507286917568e+01
6754 6.7520 -4.838292865337e-02 9.512854885732e+01
6755 6.7530 -4.853882988334e-02 9.518422853896e+01
6756 6.7540 -4.859433099686e-02 9.524003788887e+01
6757 6.7550 -4.857809012718e-02 9.529594826356e+01
6758 6.7560 -4.853788231917e-02 9.535191190262e+01
6759 6.7570 -4.834974711370e-02 9.540805278117e+01
6760 6.7580 -4.819093865679e-02 9.546419365972e+01
6761 6.7590 -4.806147161552e-02 9.552033453827e+01
6762 6.7600 -4.796136066414e-02 9.557647541682e+01
6763 6.7610 -4.775592498688e-02 9.563275099086e+01
6764 6.7620 -4.748444307555e-02 9.568912199660e+01
6765 6.7630 -4.724236132139e-02 9.574549300234e+01
6766 6.7640 -4.702969442812e-02 9.580186400809e+01
6767 6.7650 -4.684645710684e-02 9.585823501383e+01
6768 6.7660 -4.669266407604e-02 9.591460601957e+01
6769 6.7670 -4.656833006154e-02 9.597097702531e+01
6770 6.7680 -4.647346979653e-02 9.602734803105e+01
6771 6.7690 -4.640809802155e-02 9.608371903679e+01
6772 6.7700 -4.637222948455e-02 9.614009004253e+01
6773 6.7710 -4.636587894085e-02 9.619646104827e+01
6774 6.7720 -4.638906115311e-02 9.625283205401e+01
6775 6.7730 -4.644179089142e-02 9.630920305975e+01
6776 6.7740 -4.652408293323e-02 9.636557406549e+01
6777 6.7750 -4.663595206339e-02 9.642194507123e+01
6778 6.7760 -4.677741307416e-02 9.647831607697e+01
6779 6.7770 -4.683566761332e-02 9.653479989587e+01
6780 6.7780 -4.680753040953e-02 9.659139972799e+01
6781 6.7790 -4.680902950744e-02 9.664799956011e+01
6782 6.7800 -4.684017972887e-02 9.670459939223e+01
6783 6.7810 -4.690099590322e-02 9.676119922436e+01
6784 6.7820 -4.677619843128e-02 9.681801435092e+01
6785 6.7830 -4.666793139258e-02 9.687484264268e+01
6786 6.7840 -4.643533361122e-02 9.693182497566e+01
6787 6.7850 -4.615822533357e-02 9.698888154449e+01
6788 6.7860 -4.591085726636e-02 9.704593811332e+01
6789 6.7870 -4.569324428350e-02 9.710299468214e+01
6790 6.7880 -4.547007063737e-02 9.716008658160e+01
6791 6.7890 -4.508409894553e-02 9.721737106396e+01
6792 6.7900 -4.472792700408e-02 9.727465554631e+01
6793 6.7910 -4.440156971674e-02 9.733194002867e+01
6794 6.7920 -4.410504199446e-02 9.738922451102e+01
6795 6.7930 -4.383835875585e-02 9.744650899338e+01
6796 6.7940 -4.360153492678e-02 9.750379347574e+01
6797 6.7950 -4.339458544081e-02 9.756107795809e+01
6798 6.7960 -4.321752523871e-02 9.761836244045e+01
6799 6.7970 -4.307036926891e-02 9.767564692281e+01
6800 6.7980 -4.295313248735e-02 9.773293140516e+01
6801 6.7990 -4.286582985726e-02 9.779021588752e+01
6802 6.8000 -4.280847634953e-02 9.784750036987e+01
6803 6.8010 -4.278108694237e-02 9.790478485223e+01
6804 6.8020 -4.278367662170e-02 9.796206933459e+01
6805 6.8030 -4.281626038070e-02 9.801935381694e+01
6806 6.8040 -4.287885322026e-02 9.807663829930e+01
6807 6.8050 -4.297147014856e-02 9.813392278166e+01
6808 6.8060 -4.309412618151e-02 9.819120726401e+01
6809 6.8070 -4.324683634233e-02 9.824849174637e+01
6810 6.8080 -4.342961566191e-02 9.830577622872e+01
6811 6.8090 -4.364247917851e-02 9.836306071108e+01
6812 6.8100 -4.388544193808e-02 9.842034519344e+01
6813 6.8110 -4.396460375234e-02 9.847782359103e+01
6814 6.8120 -4.404168309683e-02 9.853533420046e+01
6815 6.8130 -4.414890686699e-02 9.859284480988e+01
6816 6.8140 -4.428629013879e-02 9.865035541931e+01
6817 6.8150 -4.435064522300e-02 9.870796923151e+01
6818 6.8160 -4.432261687748e-02 9.876570561681e+01
6819 6.8170 -4.432479330689e-02 9.882344200211e+01
6820 6.8180 -4.435718961724e-02 9.888117838742e+01
6821 6.8190 -4.441982092234e-02 9.893891477272e+01
6822 6.8200 -4.451270234342e-02 9.899665115802e+01
6823 6.8210 -4.463584900937e-02 9.905438754333e+01
6824 6.8220 -4.478927605657e-02 9.911212392863e+01
6825 6.8230 -4.497299862901e-02 9.916986031393e+01
6826 6.8240 -4.502635269732e-02 9.922775737842e+01
6827 6.8250 -4.504563234174e-02 9.928571884316e+01
6828 6.8260 -4.509525298882e-02 9.934368030791e+01
6829 6.8270 -4.517522981276e-02 9.940164177265e+01
6830 6.8280 -4.528557799552e-02 9.945960323740e+01
6831 6.8290 -4.542631272653e-02 9.951756470214e+01
6832 6.8300 -4.559744920296e-02 9.957552616688e+01
6833 6.8310 -4.579900262935e-02 9.963348763163e+01
6834 6.8320 -4.603098821805e-02 9.969144909637e+01
6835 6.8330 -4.629342118899e-02 9.974941056112e+01
6836 6.8340 -4.658631676955e-02 9.980737202586e+01
6837 6.8350 -4.670985175926e-02 9.986553332904e+01
6838 6.8360 -4.683949843767e-02 9.992371901362e+01
6839 6.8370 -4.699965345396e-02 9.998190469820e+01
6840 6.8380 -4.719033206613e-02 1.000400903828e+02
6841 6.8390 -4.741154953978e-02 1.000982760674e+02
6842 6.8400 -4.766332114817e-02 1.001564617519e+02
6843 6.8410 -4.794566217219e-02 1.002146474365e+02
6844 6.8420 -4.825858790040e-02 1.002728331211e+02
6845 6.8430 -4.853131431270e-02 1.003310896050e+02
6846 6.8440 -4.868191462635e-02 1.003894988303e+02
6847 6.8450 -4.886314555564e-02 1.004479080556e+02
6848 6.8460 -4.907502241967e-02 1.005063172809e+02
6849 6.8470 -4.930486907521e-02 1.005647391976e+02
6850 6.8480 -4.935487982958e-02 1.006233716269e+02
6851 6.8490 -4.943558252213e-02 1.006820040562e+02
6852 6.8500 -4.954699250264e-02 1.007406364854e+02
6853 6.8510 -4.968912512861e-02 1.007992689147e+02
6854 6.8520 -4.986199576527e-02 1.008579013440e+02
6855 6.8530 -5.006561978533e-02 1.009165337732e+02
6856 6.8540 -5.014391901198e-02 1.009753222961e+02
6857 6.8550 -5.018639365137e-02 1.010341774276e+02
6858 6.8560 -5.025966783890e-02 1.010930325592e+02
6859 6.8570 -5.036375697820e-02 1.011518876907e+02
6860 6.8580 -5.049867648064e-02 1.012107428223e+02
6861 6.8590 -5.066444176525e-02 1.012695979539e+02
6862 6.8600 -5.077549803201e-02 1.013285386557e+02
6863 6.8610 -5.078079644625e-02 1.013876159919e+02
6864 6.8620 -5.081698694599e-02 1.014466933282e+02
6865 6.8630 -5.088408498124e-02 1.015057706645e+02
6866 6.8640 -5.098210600954e-02 1.015648480008e+02
6867 6.8650 -5.111106549623e-02 1.016239253371e+02
6868 6.8660 -5.127097891450e-02 1.016830026734e+02
6869 6.8670 -5.146186174512e-02 1.017420800096e+02
6870 6.8680 -5.168089466162e-02 1.018011601807e+02
6871 6.8690 -5.182298900966e-02 1.018603482908e+02
6872 6.8700 -5.199609925910e-02 1.019195364009e+02
6873 6.8710 -5.220024092170e-02 1.019787245109e+02
6874 6.8720 -5.243542951702e-02 1.020379126210e+02
6875 6.8730 -5.270168057251e-02 1.020971007311e+02
6876 6.8740 -5.299900962322e-02 1.021562888411e+02
6877 6.8750 -5.315025216125e-02 1.022156541313e+02
6878 6.8760 -5.328872451801e-02 1.022750633006e+02
6879 6.8770 -5.345832152195e-02 1.023344724700e+02
6880 6.8780 -5.365905873931e-02 1.023938816394e+02
6881 6.8790 -5.374227904824e-02 1.024534394815e+02
6882 6.8800 -5.378460742135e-02 1.025130693869e+02
6883 6.8810 -5.385812275324e-02 1.025726992923e+02
6884 6.8820 -5.396284064124e-02 1.026323291977e+02
6885 6.8830 -5.409877669064e-02 1.026919591030e+02
6886 6.8840 -5.426594651437e-02 1.027515890084e+02
6887 6.8850 -5.435129866826e-02 1.028113319809e+02
6888 6.8860 -5.436072866934e-02 1.028711821405e+02
6889 6.8870 -5.440143933059e-02 1.029310323001e+02
6890 6.8880 -5.447344629626e-02 1.029908824598e+02
6891 6.8890 -5.457676521833e-02 1.030507326194e+02
6892 6.8900 -5.471141175673e-02 1.031105827790e+02
6893 6.8910 -5.479149545186e-02 1.031705188448e+02
6894 6.8920 -5.476906793491e-02 1.032305887807e+02
6895 6.8930 -5.477801506104e-02 1.032906587166e+02
6896 6.8940 -5.481835252141e-02 1.033507286526e+02
6897 6.8950 -5.489009601517e-02 1.034107985885e+02
6898 6.8960 -5.499326124921e-02 1.034708685244e+02
6899 6.8970 -5.512786393840e-02 1.035309384603e+02
6900 6.8980 -5.529391980535e-02 1.035910083963e+02
6901 6.8990 -5.542888623779e-02 1.036511408905e+02
6902 6.9000 -5.543875077024e-02 1.037114299714e+02
6903 6.9010 -5.548011569563e-02 1.037717190522e+02
6904 6.9020 -5.555299676808e-02 1.038320081330e+02
6905 6.9030 -5.565740974956e-02 1.038922972138e+02
6906 6.9040 -5.579337041008e-02 1.039525862946e+02
6907 6.9050 -5.590639398656e-02 1.040129298760e+02
6908 6.9060 -5.588682169530e-02 1.040734376325e+02
6909 6.9070 -5.589884444006e-02 1.041339453889e+02
6910 6.9080 -5.594247802230e-02 1.041944531454e+02
6911 6.9090 -5.601773825134e-02 1.042549609019e+02
6912 6.9100 -5.612464094453e-02 1.043154686583e+02
6913 6.9110 -5.626320192704e-02 1.043759764148e+02
6914 6.9120 -5.643343703196e-02 1.044364841713e+02
6915 6.9130 -5.663536210032e-02 1.044969919277e+02
6916 6.9140 -5.686899298107e-02 1.045574996842e+02
6917 6.9150 -5.713434553106e-02 1.046180074407e+02
6918 6.9160 -5.743143561507e-02 1.046785151971e+02
6919 6.9170 -5.769822534009e-02 1.047390850074e+02
6920 6.9180 -5.784109005587e-02 1.047998105119e+02
6921 6.9190 -5.801573994780e-02 1.048605360164e+02
6922 6.9200 -5.822219091231e-02 1.049212615210e+02
6923 6.9210 -5.838903006785e-02 1.049820584543e+02
6924 6.9220 -5.844168885964e-02 1.050430014008e+02
6925 6.9230 -5.852619646149e-02 1.051039443474e+02
6926 6.9240 -5.864256880170e-02 1.051648872940e+02
6927 6.9250 -5.879082181673e-02 1.052258302406e+02
6928 6.9260 -5.897097145083e-02 1.052867731871e+02
6929 6.9270 -5.909125581626e-02 1.053478079115e+02
6930 6.9280 -5.911826062209e-02 1.054089678440e+02
6931 6.9290 -5.907699288277e-02 1.054702279936e+02
6932 6.9300 -5.895106799598e-02 1.055316047608e+02
6933 6.9310 -5.885711956967e-02 1.055929815279e+02
6934 6.9320 -5.878372245656e-02 1.056543697362e+02
6935 6.9330 -5.873211408633e-02 1.057157681642e+02
6936 6.9340 -5.871253017717e-02 1.057771665923e+02
6937 6.9350 -5.872498674536e-02 1.058385650203e+02
6938 6.9360 -5.876949981513e-02 1.058999634483e+02
6939 6.9370 -5.884608541870e-02 1.059613618763e+02
6940 6.9380 -5.895475959634e-02 1.060227603043e+02
6941 6.9390 -5.894092678393e-02 1.060843133440e+02
6942 6.9400 -5.889774218334e-02 1.061459278561e+02
6943 6.9410 -5.871879812168e-02 1.062077102644e+02
6944 6.9420 -5.852396798512e-02 1.062695407116e+02
6945 6.9430 -5.836130674437e-02 1.063313711588e+02
6946 6.9440 -5.823083048805e-02 1.063932016060e+02
6947 6.9450 -5.813255531259e-02 1.064550320532e+02
6948 6.9460 -5.806649732262e-02 1.065168625003e+02
6949 6.9470 -5.782019720136e-02 1.065789054230e+02
6950 6.9480 -5.760313155169e-02 1.066409513605e+02
6951 6.9490 -5.741833144955e-02 1.067029972981e+02
6952 6.9500 -5.726581303167e-02 1.067650432357e+02
6953 6.9510 -5.714559244297e-02 1.068270891732e+02
6954 6.9520 -5.705768583639e-02 1.068891351108e+02
6955 6.9530 -5.700210937298e-02 1.069511810484e+02
6956 6.9540 -5.697887922186e-02 1.070132269860e+02
6957 6.9550 -5.698801156020e-02 1.070752729235e+02
6958 6.9560 -5.694203256315e-02 1.071374063511e+02
6959 6.9570 -5.680118190700e-02 1.071996670452e+02
6960 6.9580 -5.658487265259e-02 1.072620356090e+02
6961 6.9590 -5.629424948624e-02 1.073245109140e+02
6962 6.9600 -5.603606981684e-02 1.073869862189e+02
6963 6.9610 -5.581034987015e-02 1.074494615239e+02
6964 6.9620 -5.561710588007e-02 1.075119368289e+02
6965 6.9630 -5.545635408872e-02 1.075744121338e+02
6966 6.9640 -5.532811074621e-02 1.076368874388e+02
6967 6.9650 -5.523239211082e-02 1.076993627438e+02
6968 6.9660 -5.516921444900e-02 1.077618380487e+02
6969 6.9670 -5.513156538480e-02 1.078243203823e+02
6970 6.9680 -5.491963067398e-02 1.078870095751e+02
6971 6.9690 -5.470830501072e-02 1.079497307487e+02
6972 6.9700 -5.434782195890e-02 1.080126336858e+02
6973 6.9710 -5.401996133487e-02 1.080755366229e+02
6974 6.9720 -5.372473945383e-02 1.081384395599e+02
6975 6.9730 -5.346217263934e-02 1.082013424970e+02
6976 6.9740 -5.323227722294e-02 1.082642454341e+02
6977 6.9750 -5.292391306141e-02 1.083272595276e+02
6978 6.9760 -5.254609372358e-02 1.083903757805e+02
6979 6.9770 -5.220099482765e-02 1.084534920333e+02
6980 6.9780 -5.188863273805e-02 1.085166082861e+02
6981 6.9790 -5.160902382728e-02 1.085797245389e+02
6982 6.9800 -5.136218447596e-02 1.086428407918e+02
6983 6.9810 -5.114813107307e-02 1.087059570446e+02
6984 6.9820 -5.096688001553e-02 1.087690732974e+02
6985 6.9830 -5.081844770879e-02 1.088321895502e+02
6986 6.9840 -5.070285056614e-02 1.088953058030e+02
6987 6.9850 -5.062010500938e-02 1.089584220559e+02
6988 6.9860 -5.057022746846e-02 1.090215383087e+02
6989 6.9870 -5.055323438136e-02 1.090846545615e+02
6990 6.9880 -5.056914219457e-02 1.091477708143e+02
6991 6.9890 -5.061796736252e-02 1.092108870672e+02
6992 6.9900 -5.069972634812e-02 1.092740033200e+02
6993 6.9910 -5.081443562225e-02 1.093371195728e+02
6994 6.9920 -5.078757168691e-02 1.094004103656e+02
6995 6.9930 -5.075618233109e-02 1.094637386671e+02
6996 6.9940 -5.075779272640e-02 1.095270669686e+02
6997 6.9950 -5.076065076020e-02 1.095904270387e+02
6998 6.9960 -5.061653940134e-02 1.096539671109e+02
6999 6.9970 -5.043806992953e-02 1.097175745906e+02
7000 6.9980 -5.014844134058e-02 1.097813262951e+02
7001 6.9990 -4.989189510535e-02 1.098450779997e+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())