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 20 of 21 · 500/page · 10001 rows next →
# tg_tprime_sum_t
9502 9.5000 -4.729537379373e-02 4.330713037823e+02
9503 9.5010 -4.718498687519e-02 4.332999544483e+02
9504 9.5020 -4.711192880443e-02 4.335286834276e+02
9505 9.5030 -4.708315056949e-02 4.337574838270e+02
9506 9.5040 -4.701489673151e-02 4.339864394597e+02
9507 9.5050 -4.690025082712e-02 4.342155573003e+02
9508 9.5060 -4.683143085140e-02 4.344447451885e+02
9509 9.5070 -4.678620049630e-02 4.346740254186e+02
9510 9.5080 -4.669970968831e-02 4.349034628988e+02
9511 9.5090 -4.655972026064e-02 4.351330699251e+02
9512 9.5100 -4.642082281625e-02 4.353627919650e+02
9513 9.5110 -4.630716263316e-02 4.355926049313e+02
9514 9.5120 -4.623088275192e-02 4.358224967391e+02
9515 9.5130 -4.616778759750e-02 4.360524916420e+02
9516 9.5140 -4.614210140250e-02 4.362825654739e+02
9517 9.5150 -4.616589087370e-02 4.365127062265e+02
9518 9.5160 -4.622708046854e-02 4.367429260333e+02
9519 9.5170 -4.630160964005e-02 4.369732490132e+02
9520 9.5180 -4.638128463304e-02 4.372036834183e+02
9521 9.5190 -4.649703011254e-02 4.374341983821e+02
9522 9.5200 -4.658663173256e-02 4.376648561773e+02
9523 9.5210 -4.664774789064e-02 4.378956592040e+02
9524 9.5220 -4.675825411902e-02 4.381265296448e+02
9525 9.5230 -4.694196434779e-02 4.383574437444e+02
9526 9.5240 -4.711999427413e-02 4.385884804455e+02
9527 9.5250 -4.716160481901e-02 4.388197705456e+02
9528 9.5260 -4.711626363126e-02 4.390512646356e+02
9529 9.5270 -4.700496542653e-02 4.392829417794e+02
9530 9.5280 -4.682820153781e-02 4.395148015440e+02
9531 9.5290 -4.673622869229e-02 4.397466937315e+02
9532 9.5300 -4.656846541464e-02 4.399787789818e+02
9533 9.5310 -4.639694036139e-02 4.402109853251e+02
9534 9.5320 -4.623503800713e-02 4.404432994354e+02
9535 9.5330 -4.607775992624e-02 4.406757263700e+02
9536 9.5340 -4.593394308962e-02 4.409082573506e+02
9537 9.5350 -4.584208898185e-02 4.411408539345e+02
9538 9.5360 -4.572190967984e-02 4.413735964684e+02
9539 9.5370 -4.566266244307e-02 4.416063957539e+02
9540 9.5380 -4.563997581674e-02 4.418392762212e+02
9541 9.5390 -4.548123797018e-02 4.420724105412e+02
9542 9.5400 -4.536132224990e-02 4.423056238993e+02
9543 9.5410 -4.512879796355e-02 4.425390677853e+02
9544 9.5420 -4.487669446436e-02 4.427726492287e+02
9545 9.5430 -4.458011728018e-02 4.430063931830e+02
9546 9.5440 -4.440039094576e-02 4.432401383827e+02
9547 9.5450 -4.422727678922e-02 4.434739951255e+02
9548 9.5460 -4.412238987011e-02 4.437079018555e+02
9549 9.5470 -4.408247868890e-02 4.439418618833e+02
9550 9.5480 -4.397645261985e-02 4.441760063587e+02
9551 9.5490 -4.389433746796e-02 4.444102453150e+02
9552 9.5500 -4.379242550992e-02 4.446446225192e+02
9553 9.5510 -4.374115030900e-02 4.448790675970e+02
9554 9.5520 -4.369136308813e-02 4.451136297563e+02
9555 9.5530 -4.363412934209e-02 4.453483179911e+02
9556 9.5540 -4.351063545472e-02 4.455831911743e+02
9557 9.5550 -4.345913074901e-02 4.458181111158e+02
9558 9.5560 -4.349213161900e-02 4.460530653587e+02
9559 9.5570 -4.364199633713e-02 4.462880216042e+02
9560 9.5580 -4.375860031215e-02 4.465231300362e+02
9561 9.5590 -4.383549725041e-02 4.467583971606e+02
9562 9.5600 -4.390011912467e-02 4.469937956049e+02
9563 9.5610 -4.402891599845e-02 4.472292489785e+02
9564 9.5620 -4.417290621979e-02 4.474648063226e+02
9565 9.5630 -4.435471015404e-02 4.477004450766e+02
9566 9.5640 -4.461770633937e-02 4.479361219215e+02
9567 9.5650 -4.484340625259e-02 4.481719554054e+02
9568 9.5660 -4.510476415557e-02 4.484078726339e+02
9569 9.5670 -4.546038823054e-02 4.486438150584e+02
9570 9.5680 -4.584267837470e-02 4.488798503387e+02
9571 9.5690 -4.624048384036e-02 4.491159896855e+02
9572 9.5700 -4.666042711973e-02 4.493522265359e+02
9573 9.5710 -4.702996659050e-02 4.495886334916e+02
9574 9.5720 -4.739286468869e-02 4.498251668498e+02
9575 9.5730 -4.783821503113e-02 4.500617375770e+02
9576 9.5740 -4.833729177265e-02 4.502983744588e+02
9577 9.5750 -4.882058733461e-02 4.505351470627e+02
9578 9.5760 -4.926190657353e-02 4.507720816440e+02
9579 9.5770 -4.963282057829e-02 4.510092066915e+02
9580 9.5780 -4.994861801701e-02 4.512465069767e+02
9581 9.5790 -5.022034111944e-02 4.514839715173e+02
9582 9.5800 -5.049981892805e-02 4.517215485445e+02
9583 9.5810 -5.083939414291e-02 4.519591857756e+02
9584 9.5820 -5.119508177314e-02 4.521969272558e+02
9585 9.5830 -5.158889737680e-02 4.524347510298e+02
9586 9.5840 -5.203181987698e-02 4.526726461789e+02
9587 9.5850 -5.245864188769e-02 4.529106779706e+02
9588 9.5860 -5.276963834074e-02 4.531489461904e+02
9589 9.5870 -5.294877718739e-02 4.533874669307e+02
9590 9.5880 -5.322152331845e-02 4.536260147868e+02
9591 9.5890 -5.349261118109e-02 4.538646850847e+02
9592 9.5900 -5.384823581009e-02 4.541033916898e+02
9593 9.5910 -5.421371169860e-02 4.543422093481e+02
9594 9.5920 -5.444441080978e-02 4.545812827479e+02
9595 9.5930 -5.467324481469e-02 4.548204790383e+02
9596 9.5940 -5.489782570258e-02 4.550598006676e+02
9597 9.5950 -5.516071174674e-02 4.552992051382e+02
9598 9.5960 -5.547269630858e-02 4.555386817173e+02
9599 9.5970 -5.580391988598e-02 4.557782603250e+02
9600 9.5980 -5.606902457418e-02 4.560180263799e+02
9601 9.5990 -5.625184389215e-02 4.562579961091e+02
9602 9.6000 -5.635934751425e-02 4.564981626038e+02
9603 9.6010 -5.640852740303e-02 4.567385089325e+02
9604 9.6020 -5.639757508368e-02 4.569790369647e+02
9605 9.6030 -5.642509403071e-02 4.572196481576e+02
9606 9.6040 -5.648601691754e-02 4.574603476394e+02
9607 9.6050 -5.648089335841e-02 4.577012349213e+02
9608 9.6060 -5.647348526257e-02 4.579422463023e+02
9609 9.6070 -5.649282181367e-02 4.581833528142e+02
9610 9.6080 -5.646396844810e-02 4.584246294524e+02
9611 9.6090 -5.639418716524e-02 4.586660690160e+02
9612 9.6100 -5.631489646708e-02 4.589076401475e+02
9613 9.6110 -5.633089198000e-02 4.591492381122e+02
9614 9.6120 -5.632216760058e-02 4.593909829775e+02
9615 9.6130 -5.627391873226e-02 4.596328896088e+02
9616 9.6140 -5.619096910833e-02 4.598749532438e+02
9617 9.6150 -5.614669500893e-02 4.601171005671e+02
9618 9.6160 -5.617210079260e-02 4.603593006358e+02
9619 9.6170 -5.628937956540e-02 4.606015313179e+02
9620 9.6180 -5.639265890185e-02 4.608438985471e+02
9621 9.6190 -5.655029583392e-02 4.610863340276e+02
9622 9.6200 -5.676760727272e-02 4.613288325039e+02
9623 9.6210 -5.698141711203e-02 4.615714572135e+02
9624 9.6220 -5.712930078532e-02 4.618142706421e+02
9625 9.6230 -5.726316247448e-02 4.620572209472e+02
9626 9.6240 -5.739545770005e-02 4.623002957346e+02
9627 9.6250 -5.753792496623e-02 4.625434833273e+02
9628 9.6260 -5.759385863203e-02 4.627868804925e+02
9629 9.6270 -5.767611264026e-02 4.630303744376e+02
9630 9.6280 -5.778704000404e-02 4.632739628714e+02
9631 9.6290 -5.790378150548e-02 4.635176687145e+02
9632 9.6300 -5.800554693251e-02 4.637615128188e+02
9633 9.6310 -5.815212305706e-02 4.640054354593e+02
9634 9.6320 -5.826367779125e-02 4.642495165297e+02
9635 9.6330 -5.841763449806e-02 4.644936786683e+02
9636 9.6340 -5.850431505533e-02 4.647380316150e+02
9637 9.6350 -5.850201612927e-02 4.649825971350e+02
9638 9.6360 -5.845133124649e-02 4.652273346965e+02
9639 9.6370 -5.835530459938e-02 4.654722413172e+02
9640 9.6380 -5.820880321121e-02 4.657173221919e+02
9641 9.6390 -5.808275463752e-02 4.659625064550e+02
9642 9.6400 -5.794357680714e-02 4.662078277504e+02
9643 9.6410 -5.776911538052e-02 4.664533082946e+02
9644 9.6420 -5.752903089968e-02 4.666989784889e+02
9645 9.6430 -5.730408090871e-02 4.669447576378e+02
9646 9.6440 -5.710387514914e-02 4.671906361937e+02
9647 9.6450 -5.692607544383e-02 4.674366165568e+02
9648 9.6460 -5.670691767385e-02 4.676827625534e+02
9649 9.6470 -5.645406305888e-02 4.679290665843e+02
9650 9.6480 -5.621765854759e-02 4.681754785649e+02
9651 9.6490 -5.599296403296e-02 4.684220032974e+02
9652 9.6500 -5.579665912107e-02 4.686686241645e+02
9653 9.6510 -5.564988548227e-02 4.689153200868e+02
9654 9.6520 -5.553341745287e-02 4.691621103523e+02
9655 9.6530 -5.540833344579e-02 4.694090339449e+02
9656 9.6540 -5.528314713551e-02 4.696560824133e+02
9657 9.6550 -5.514510484053e-02 4.699032685735e+02
9658 9.6560 -5.502104946163e-02 4.701505656452e+02
9659 9.6570 -5.490601936714e-02 4.703979786524e+02
9660 9.6580 -5.477685171712e-02 4.706455308204e+02
9661 9.6590 -5.451764758491e-02 4.708933381107e+02
9662 9.6600 -5.421020623964e-02 4.711413187866e+02
9663 9.6610 -5.383749567447e-02 4.713894899427e+02
9664 9.6620 -5.355842170310e-02 4.716376927357e+02
9665 9.6630 -5.340468396861e-02 4.718858955288e+02
9666 9.6640 -5.319955564403e-02 4.721342751114e+02
9667 9.6650 -5.287544099828e-02 4.723828991419e+02
9668 9.6660 -5.255643981905e-02 4.726316435834e+02
9669 9.6670 -5.221129598534e-02 4.728805397547e+02
9670 9.6680 -5.181707906683e-02 4.731296106490e+02
9671 9.6690 -5.135241943948e-02 4.733788776988e+02
9672 9.6700 -5.086320776200e-02 4.736282950764e+02
9673 9.6710 -5.048293466785e-02 4.738777293540e+02
9674 9.6720 -5.018958310633e-02 4.741272026115e+02
9675 9.6730 -4.994641831728e-02 4.743767516468e+02
9676 9.6740 -4.960925272014e-02 4.746265207104e+02
9677 9.6750 -4.923742315982e-02 4.748764505284e+02
9678 9.6760 -4.878046261272e-02 4.751265916311e+02
9679 9.6770 -4.834316797845e-02 4.753768392844e+02
9680 9.6780 -4.798460003518e-02 4.756271344909e+02
9681 9.6790 -4.763033734053e-02 4.758775517351e+02
9682 9.6800 -4.729499777692e-02 4.761280764623e+02
9683 9.6810 -4.696417268385e-02 4.763787231443e+02
9684 9.6820 -4.666898117814e-02 4.766294607254e+02
9685 9.6830 -4.645483988439e-02 4.768802438521e+02
9686 9.6840 -4.632880699394e-02 4.771310655297e+02
9687 9.6850 -4.606885332228e-02 4.773821478506e+02
9688 9.6860 -4.572770637932e-02 4.776334381506e+02
9689 9.6870 -4.531470809451e-02 4.778849271514e+02
9690 9.6880 -4.488306469073e-02 4.781365617100e+02
9691 9.6890 -4.447720638694e-02 4.783882974598e+02
9692 9.6900 -4.402194931692e-02 4.786402096481e+02
9693 9.6910 -4.368480418723e-02 4.788921308277e+02
9694 9.6920 -4.345047106943e-02 4.791440763622e+02
9695 9.6930 -4.309513244776e-02 4.793962701327e+02
9696 9.6940 -4.282091922894e-02 4.796485100718e+02
9697 9.6950 -4.249164462534e-02 4.799009324300e+02
9698 9.6960 -4.216561018694e-02 4.801534789696e+02
9699 9.6970 -4.182559062153e-02 4.804061669794e+02
9700 9.6980 -4.148661448792e-02 4.806589814947e+02
9701 9.6990 -4.125390339942e-02 4.809118173577e+02
9702 9.7000 -4.107429043935e-02 4.811647277991e+02
9703 9.7010 -4.094863040414e-02 4.814177120279e+02
9704 9.7020 -4.081444966724e-02 4.816708325818e+02
9705 9.7030 -4.067168091198e-02 4.819240895918e+02
9706 9.7040 -4.047392309849e-02 4.821775295231e+02
9707 9.7050 -4.032158529788e-02 4.824310520304e+02
9708 9.7060 -4.027479032572e-02 4.826845970551e+02
9709 9.7070 -4.015639566114e-02 4.829383418037e+02
9710 9.7080 -4.000523404266e-02 4.831922475075e+02
9711 9.7090 -3.979002823549e-02 4.834463455079e+02
9712 9.7100 -3.964862595124e-02 4.837004980212e+02
9713 9.7110 -3.943401191229e-02 4.839548521270e+02
9714 9.7120 -3.927080414013e-02 4.842092832715e+02
9715 9.7130 -3.917098512890e-02 4.844637795363e+02
9716 9.7140 -3.911073185329e-02 4.847183648088e+02
9717 9.7150 -3.904081045235e-02 4.849730883871e+02
9718 9.7160 -3.891614489824e-02 4.852279954116e+02
9719 9.7170 -3.886755270192e-02 4.854829551292e+02
9720 9.7180 -3.886621510234e-02 4.857379964230e+02
9721 9.7190 -3.887190068255e-02 4.859931595889e+02
9722 9.7200 -3.884569764433e-02 4.862484836031e+02
9723 9.7210 -3.876585469976e-02 4.865039902814e+02
9724 9.7220 -3.864965654361e-02 4.867596624036e+02
9725 9.7230 -3.857407533879e-02 4.870154230622e+02
9726 9.7240 -3.840784744268e-02 4.872714035854e+02
9727 9.7250 -3.832962319833e-02 4.875274253874e+02
9728 9.7260 -3.828236956678e-02 4.877835455660e+02
9729 9.7270 -3.821643955536e-02 4.880398138328e+02
9730 9.7280 -3.815826973009e-02 4.882962038160e+02
9731 9.7290 -3.818159107906e-02 4.885526418494e+02
9732 9.7300 -3.828488498248e-02 4.888091295163e+02
9733 9.7310 -3.840079770993e-02 4.890657342354e+02
9734 9.7320 -3.844779210767e-02 4.893225376086e+02
9735 9.7330 -3.857281560198e-02 4.895793927534e+02
9736 9.7340 -3.876603276195e-02 4.898363095701e+02
9737 9.7350 -3.888715010161e-02 4.900934284171e+02
9738 9.7360 -3.898056476259e-02 4.903507049624e+02
9739 9.7370 -3.909198976257e-02 4.906080935578e+02
9740 9.7380 -3.910818425819e-02 4.908657075094e+02
9741 9.7390 -3.917406966575e-02 4.911234019607e+02
9742 9.7400 -3.927998035382e-02 4.913811866425e+02
9743 9.7410 -3.930526351728e-02 4.916391822727e+02
9744 9.7420 -3.937539154779e-02 4.918972634442e+02
9745 9.7430 -3.940603382885e-02 4.921555145527e+02
9746 9.7440 -3.932586292319e-02 4.924140069910e+02
9747 9.7450 -3.922511484988e-02 4.926726505882e+02
9748 9.7460 -3.921074140313e-02 4.929313384580e+02
9749 9.7470 -3.923103312348e-02 4.931901223750e+02
9750 9.7480 -3.922341255855e-02 4.934490649822e+02
9751 9.7490 -3.920527111543e-02 4.937081489535e+02
9752 9.7500 -3.923067734575e-02 4.939673202858e+02
9753 9.7510 -3.929175967093e-02 4.942265869162e+02
9754 9.7520 -3.936899243734e-02 4.944859684358e+02
9755 9.7530 -3.937868921484e-02 4.947455485966e+02
9756 9.7540 -3.931538620145e-02 4.950053329279e+02
9757 9.7550 -3.931907421721e-02 4.952651815046e+02
9758 9.7560 -3.934842644664e-02 4.955251357191e+02
9759 9.7570 -3.943687568139e-02 4.957851622042e+02
9760 9.7580 -3.965241075332e-02 4.960451930368e+02
9761 9.7590 -3.981539449892e-02 4.963054079199e+02
9762 9.7600 -4.001039050346e-02 4.965657223556e+02
9763 9.7610 -4.012189873881e-02 4.968262519097e+02
9764 9.7620 -4.022088097080e-02 4.970869256864e+02
9765 9.7630 -4.035018891686e-02 4.973477008997e+02
9766 9.7640 -4.040690913592e-02 4.976086805289e+02
9767 9.7650 -4.038383201884e-02 4.978698718497e+02
9768 9.7660 -4.036217810362e-02 4.981311937075e+02
9769 9.7670 -4.033794555458e-02 4.983926501700e+02
9770 9.7680 -4.032294050429e-02 4.986542294972e+02
9771 9.7690 -4.028888201451e-02 4.989159600361e+02
9772 9.7700 -4.013306508170e-02 4.991779445578e+02
9773 9.7710 -3.995565262992e-02 4.994400829655e+02
9774 9.7720 -3.980509511123e-02 4.997023268748e+02
9775 9.7730 -3.971370248942e-02 4.999646440421e+02
9776 9.7740 -3.966943400043e-02 5.002270465743e+02
9777 9.7750 -3.955584742030e-02 5.004896509800e+02
9778 9.7760 -3.942214745047e-02 5.007524081206e+02
9779 9.7770 -3.927705059189e-02 5.010153093460e+02
9780 9.7780 -3.912194463868e-02 5.012783533349e+02
9781 9.7790 -3.907760834369e-02 5.015414193747e+02
9782 9.7800 -3.899545469633e-02 5.018046561190e+02
9783 9.7810 -3.890186833664e-02 5.020680372497e+02
9784 9.7820 -3.887588478941e-02 5.023314837975e+02
9785 9.7830 -3.885772323598e-02 5.025950556100e+02
9786 9.7840 -3.885287213386e-02 5.028587472652e+02
9787 9.7850 -3.879505462692e-02 5.031226251066e+02
9788 9.7860 -3.880836768561e-02 5.033865651037e+02
9789 9.7870 -3.879252608776e-02 5.036506676086e+02
9790 9.7880 -3.880471236734e-02 5.039148755052e+02
9791 9.7890 -3.888604410177e-02 5.041791477429e+02
9792 9.7900 -3.891900459433e-02 5.044436019051e+02
9793 9.7910 -3.897564016255e-02 5.047081660122e+02
9794 9.7920 -3.909324878522e-02 5.049728028331e+02
9795 9.7930 -3.921888691899e-02 5.052375653781e+02
9796 9.7940 -3.926034381235e-02 5.055025459250e+02
9797 9.7950 -3.922424914504e-02 5.057677379110e+02
9798 9.7960 -3.922520490561e-02 5.060330268010e+02
9799 9.7970 -3.919799944343e-02 5.062984778737e+02
9800 9.7980 -3.905852771170e-02 5.065641753012e+02
9801 9.7990 -3.896977762474e-02 5.068299561626e+02
9802 9.8000 -3.895326486154e-02 5.070957990093e+02
9803 9.8010 -3.896128020389e-02 5.073617516177e+02
9804 9.8020 -3.884205657694e-02 5.076279658220e+02
9805 9.8030 -3.874685420125e-02 5.078942904292e+02
9806 9.8040 -3.865239770095e-02 5.081607487819e+02
9807 9.8050 -3.861835828671e-02 5.084272812761e+02
9808 9.8060 -3.846272316950e-02 5.086940699920e+02
9809 9.8070 -3.825145054774e-02 5.089610490386e+02
9810 9.8080 -3.810662483628e-02 5.092280963990e+02
9811 9.8090 -3.797605495673e-02 5.094952643315e+02
9812 9.8100 -3.784137555917e-02 5.097625712690e+02
9813 9.8110 -3.765302513221e-02 5.100300668404e+02
9814 9.8120 -3.743020958366e-02 5.102977319074e+02
9815 9.8130 -3.715180202922e-02 5.105655876643e+02
9816 9.8140 -3.690663735169e-02 5.108335453439e+02
9817 9.8150 -3.663853191336e-02 5.111016611973e+02
9818 9.8160 -3.628059520421e-02 5.113700021827e+02
9819 9.8170 -3.594718906899e-02 5.116384540060e+02
9820 9.8180 -3.563427785714e-02 5.119070207704e+02
9821 9.8190 -3.533045212743e-02 5.121757139533e+02
9822 9.8200 -3.502743038144e-02 5.124445419037e+02
9823 9.8210 -3.471740345576e-02 5.127135124987e+02
9824 9.8220 -3.443435575616e-02 5.129825918218e+02
9825 9.8230 -3.407493035222e-02 5.132518832977e+02
9826 9.8240 -3.364000489772e-02 5.135213861167e+02
9827 9.8250 -3.326030396850e-02 5.137909696221e+02
9828 9.8260 -3.289644558545e-02 5.140606732639e+02
9829 9.8270 -3.252692092810e-02 5.143305186190e+02
9830 9.8280 -3.211288283455e-02 5.146005446024e+02
9831 9.8290 -3.169177733527e-02 5.148707138364e+02
9832 9.8300 -3.137901433143e-02 5.151409109790e+02
9833 9.8310 -3.104109926347e-02 5.154112695930e+02
9834 9.8320 -3.077251511892e-02 5.156816952635e+02
9835 9.8330 -3.057364345617e-02 5.159521876773e+02
9836 9.8340 -3.044617411746e-02 5.162227452127e+02
9837 9.8350 -3.037739815418e-02 5.164933806469e+02
9838 9.8360 -3.030384640347e-02 5.167641575174e+02
9839 9.8370 -3.024857240179e-02 5.170350528391e+02
9840 9.8380 -3.018077568928e-02 5.173060974808e+02
9841 9.8390 -3.012346679083e-02 5.175772685003e+02
9842 9.8400 -3.004730637528e-02 5.178485953055e+02
9843 9.8410 -2.998548404231e-02 5.181200447753e+02
9844 9.8420 -2.987182621857e-02 5.183916831516e+02
9845 9.8430 -2.979022416193e-02 5.186634266119e+02
9846 9.8440 -2.982320103674e-02 5.189351927015e+02
9847 9.8450 -2.992612384093e-02 5.192070261221e+02
9848 9.8460 -3.006103002352e-02 5.194789649048e+02
9849 9.8470 -3.030387383115e-02 5.197509331642e+02
9850 9.8480 -3.053938085967e-02 5.200230462433e+02
9851 9.8490 -3.070894004714e-02 5.202953628219e+02
9852 9.8500 -3.097325023364e-02 5.205677222701e+02
9853 9.8510 -3.126117031727e-02 5.208401957978e+02
9854 9.8520 -3.156400311635e-02 5.211127921709e+02
9855 9.8530 -3.191207689415e-02 5.213854811302e+02
9856 9.8540 -3.225738602941e-02 5.216583107501e+02
9857 9.8550 -3.261139229713e-02 5.219312696379e+02
9858 9.8560 -3.301808791883e-02 5.222043138703e+02
9859 9.8570 -3.333198551278e-02 5.224775890038e+02
9860 9.8580 -3.367106101300e-02 5.227509771315e+02
9861 9.8590 -3.411575941740e-02 5.230243978775e+02
9862 9.8600 -3.459390831879e-02 5.232979234834e+02
9863 9.8610 -3.507425238046e-02 5.235715852736e+02
9864 9.8620 -3.557161638251e-02 5.238453684925e+02
9865 9.8630 -3.610387963400e-02 5.241192553302e+02
9866 9.8640 -3.658013597009e-02 5.243933367621e+02
9867 9.8650 -3.702460421501e-02 5.246675886386e+02
9868 9.8660 -3.747115737657e-02 5.249419771561e+02
9869 9.8670 -3.789026728917e-02 5.252165319121e+02
9870 9.8680 -3.834826192563e-02 5.254911866480e+02
9871 9.8690 -3.879905033768e-02 5.257659875243e+02
9872 9.8700 -3.924143885804e-02 5.260409358042e+02
9873 9.8710 -3.978252881924e-02 5.263159244558e+02
9874 9.8720 -4.043303842497e-02 5.265909428304e+02
9875 9.8730 -4.096676396552e-02 5.268662172013e+02
9876 9.8740 -4.150624442257e-02 5.271416250993e+02
9877 9.8750 -4.189496365776e-02 5.274173231100e+02
9878 9.8760 -4.217924121723e-02 5.276932649837e+02
9879 9.8770 -4.238852551846e-02 5.279694213417e+02
9880 9.8780 -4.248136703920e-02 5.282458337031e+02
9881 9.8790 -4.256150054171e-02 5.285223984032e+02
9882 9.8800 -4.271121642760e-02 5.287990332212e+02
9883 9.8810 -4.284296119165e-02 5.290758257807e+02
9884 9.8820 -4.293566050562e-02 5.293527972257e+02
9885 9.8830 -4.299401212136e-02 5.296299429285e+02
9886 9.8840 -4.303601944711e-02 5.299072449557e+02
9887 9.8850 -4.312535499940e-02 5.301846397047e+02
9888 9.8860 -4.335481066655e-02 5.304620344537e+02
9889 9.8870 -4.368160612204e-02 5.307394720531e+02
9890 9.8880 -4.405534952185e-02 5.310170029649e+02
9891 9.8890 -4.437184321954e-02 5.312947314568e+02
9892 9.8900 -4.466001417662e-02 5.315726286722e+02
9893 9.8910 -4.497114769867e-02 5.318506433958e+02
9894 9.8920 -4.518922746568e-02 5.321288917142e+02
9895 9.8930 -4.542712710358e-02 5.324072608242e+02
9896 9.8940 -4.568591268319e-02 5.326857497300e+02
9897 9.8950 -4.593913933187e-02 5.329643849468e+02
9898 9.8960 -4.623639791107e-02 5.332431169541e+02
9899 9.8970 -4.648678153646e-02 5.335220367292e+02
9900 9.8980 -4.677161221538e-02 5.338010630207e+02
9901 9.8990 -4.706416889426e-02 5.340802226201e+02
9902 9.9000 -4.738318546162e-02 5.343594968639e+02
9903 9.9010 -4.769460685894e-02 5.346389198779e+02
9904 9.9020 -4.800039725712e-02 5.349184897684e+02
9905 9.9030 -4.826546999540e-02 5.351982416929e+02
9906 9.9040 -4.845752085724e-02 5.354782080261e+02
9907 9.9050 -4.862547385036e-02 5.357583399147e+02
9908 9.9060 -4.877306529122e-02 5.360386336933e+02
9909 9.9070 -4.891059824584e-02 5.363190791295e+02
9910 9.9080 -4.907035843258e-02 5.365996440083e+02
9911 9.9090 -4.925926843807e-02 5.368803214782e+02
9912 9.9100 -4.935449104879e-02 5.371612344471e+02
9913 9.9110 -4.940684819427e-02 5.374423321642e+02
9914 9.9120 -4.940374759705e-02 5.377236272925e+02
9915 9.9130 -4.936747677075e-02 5.380050976156e+02
9916 9.9140 -4.936812348631e-02 5.382866731168e+02
9917 9.9150 -4.943157933643e-02 5.385683279755e+02
9918 9.9160 -4.946868430064e-02 5.388501514228e+02
9919 9.9170 -4.953453557863e-02 5.391320884328e+02
9920 9.9180 -4.963372412457e-02 5.394141344855e+02
9921 9.9190 -4.977042678788e-02 5.396962854754e+02
9922 9.9200 -4.997905381319e-02 5.399785070634e+02
9923 9.9210 -5.011132939661e-02 5.402609475967e+02
9924 9.9220 -5.011932163469e-02 5.405436550784e+02
9925 9.9230 -5.016368233802e-02 5.408264689282e+02
9926 9.9240 -5.014281235399e-02 5.411094908165e+02
9927 9.9250 -5.013318670919e-02 5.413926443397e+02
9928 9.9260 -5.011968602223e-02 5.416759446886e+02
9929 9.9270 -5.020104614851e-02 5.419592931990e+02
9930 9.9280 -5.025647361169e-02 5.422428107358e+02
9931 9.9290 -5.035640764454e-02 5.425264269314e+02
9932 9.9300 -5.045067727330e-02 5.428101920283e+02
9933 9.9310 -5.051609796024e-02 5.430941292826e+02
9934 9.9320 -5.056839578415e-02 5.433782230401e+02
9935 9.9330 -5.072645962046e-02 5.436623544835e+02
9936 9.9340 -5.088104258706e-02 5.439466329314e+02
9937 9.9350 -5.109023900769e-02 5.442310003613e+02
9938 9.9360 -5.128686025670e-02 5.445155240337e+02
9939 9.9370 -5.156058318100e-02 5.448001143435e+02
9940 9.9380 -5.187310155050e-02 5.450848096689e+02
9941 9.9390 -5.220467776999e-02 5.453696298194e+02
9942 9.9400 -5.251492394867e-02 5.456546152548e+02
9943 9.9410 -5.270985024999e-02 5.459398600370e+02
9944 9.9420 -5.285093401738e-02 5.462253027606e+02
9945 9.9430 -5.302976647121e-02 5.465108519066e+02
9946 9.9440 -5.321541448540e-02 5.467965384800e+02
9947 9.9450 -5.353258368481e-02 5.470822378475e+02
9948 9.9460 -5.389125761864e-02 5.473680400977e+02
9949 9.9470 -5.426268442344e-02 5.476539740547e+02
9950 9.9480 -5.456339478725e-02 5.479401232599e+02
9951 9.9490 -5.486659080033e-02 5.482264145837e+02
9952 9.9500 -5.515765472589e-02 5.485128627160e+02
9953 9.9510 -5.543662121004e-02 5.487994676946e+02
9954 9.9520 -5.572317192463e-02 5.490862099101e+02
9955 9.9530 -5.602980776545e-02 5.493730769342e+02
9956 9.9540 -5.616358974478e-02 5.496602617783e+02
9957 9.9550 -5.634671159085e-02 5.499475423211e+02
9958 9.9560 -5.651886490225e-02 5.502349789436e+02
9959 9.9570 -5.675268317952e-02 5.505224990849e+02
9960 9.9580 -5.698978801802e-02 5.508101611959e+02
9961 9.9590 -5.726685409713e-02 5.510979286747e+02
9962 9.9600 -5.750029910184e-02 5.513858851762e+02
9963 9.9610 -5.766902792467e-02 5.516740518683e+02
9964 9.9620 -5.776656104344e-02 5.519624353032e+02
9965 9.9630 -5.788113743961e-02 5.522509473148e+02
9966 9.9640 -5.800315950703e-02 5.525395975735e+02
9967 9.9650 -5.820257408998e-02 5.528283162053e+02
9968 9.9660 -5.841471858128e-02 5.531171679457e+02
9969 9.9670 -5.870092487942e-02 5.534060915358e+02
9970 9.9680 -5.894389298457e-02 5.536952043484e+02
9971 9.9690 -5.918438297398e-02 5.539844656967e+02
9972 9.9700 -5.949923200154e-02 5.542737988164e+02
9973 9.9710 -5.977702139381e-02 5.545633151993e+02
9974 9.9720 -5.995295091830e-02 5.548530797188e+02
9975 9.9730 -6.014225731176e-02 5.551429772113e+02
9976 9.9740 -6.042889068172e-02 5.554329237998e+02
9977 9.9750 -6.080730565493e-02 5.557229251031e+02
9978 9.9760 -6.110014378189e-02 5.560131585527e+02
9979 9.9770 -6.129985049187e-02 5.563036317766e+02
9980 9.9780 -6.143516089980e-02 5.565943161129e+02
9981 9.9790 -6.162092373412e-02 5.568850967864e+02
9982 9.9800 -6.171183106544e-02 5.571761191784e+02
9983 9.9810 -6.172374343109e-02 5.574673675018e+02
9984 9.9820 -6.164032407591e-02 5.577588581668e+02
9985 9.9830 -6.163959649796e-02 5.580504132235e+02
9986 9.9840 -6.163369151744e-02 5.583421206145e+02
9987 9.9850 -6.165245060992e-02 5.586339505721e+02
9988 9.9860 -6.171658480679e-02 5.589258824588e+02
9989 9.9870 -6.180378428079e-02 5.592179386581e+02
9990 9.9880 -6.184611345849e-02 5.595101871794e+02
9991 9.9890 -6.186470622960e-02 5.598026069624e+02
9992 9.9900 -6.188977327168e-02 5.600951678702e+02
9993 9.9910 -6.189892917077e-02 5.603878923622e+02
9994 9.9920 -6.191544865275e-02 5.606807572373e+02
9995 9.9930 -6.186625324818e-02 5.609738356481e+02
9996 9.9940 -6.179321260733e-02 5.612670857987e+02
9997 9.9950 -6.176330537177e-02 5.615604407844e+02
9998 9.9960 -6.179712907251e-02 5.618538800819e+02
9999 9.9970 -6.182440004646e-02 5.621474740487e+02
10000 9.9980 -6.190350948408e-02 5.624411643677e+02
10001 9.9990 -6.201010826832e-02 5.627349754623e+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())