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 18 of 21 · 500/page · 10001 rows next →
# tg_tprime_sum_t
8502 8.5000 -4.353603096472e-02 2.538456661126e+02
8503 8.5010 -4.391794699455e-02 2.539828439881e+02
8504 8.5020 -4.426570119007e-02 2.541201261659e+02
8505 8.5030 -4.468363093989e-02 2.542574083437e+02
8506 8.5040 -4.505064585156e-02 2.543948116470e+02
8507 8.5050 -4.530793609099e-02 2.545323949208e+02
8508 8.5060 -4.554045710798e-02 2.546700732446e+02
8509 8.5070 -4.575525488940e-02 2.548078396078e+02
8510 8.5080 -4.596119301677e-02 2.549456851818e+02
8511 8.5090 -4.614216487774e-02 2.550836261085e+02
8512 8.5100 -4.632636601610e-02 2.552216342274e+02
8513 8.5110 -4.652610507083e-02 2.553596972653e+02
8514 8.5120 -4.658303185735e-02 2.554979736076e+02
8515 8.5130 -4.661651309158e-02 2.556363439226e+02
8516 8.5140 -4.672055690902e-02 2.557747142377e+02
8517 8.5150 -4.684574090969e-02 2.559131340105e+02
8518 8.5160 -4.694540251878e-02 2.560516499388e+02
8519 8.5170 -4.701943611447e-02 2.561902621637e+02
8520 8.5180 -4.701960930089e-02 2.563290189528e+02
8521 8.5190 -4.699401004826e-02 2.564678722536e+02
8522 8.5200 -4.684651096021e-02 2.566069182288e+02
8523 8.5210 -4.672279206432e-02 2.567460112338e+02
8524 8.5220 -4.656975217396e-02 2.568852044052e+02
8525 8.5230 -4.634726123989e-02 2.570245379084e+02
8526 8.5240 -4.619568658540e-02 2.571638714117e+02
8527 8.5250 -4.611061164445e-02 2.573032093670e+02
8528 8.5260 -4.594244332077e-02 2.574427014029e+02
8529 8.5270 -4.582369890728e-02 2.575822150376e+02
8530 8.5280 -4.569700568187e-02 2.577218076794e+02
8531 8.5290 -4.559132927078e-02 2.578614503981e+02
8532 8.5300 -4.544597000237e-02 2.580012039291e+02
8533 8.5310 -4.537177565558e-02 2.581409574601e+02
8534 8.5320 -4.536878182147e-02 2.582807109911e+02
8535 8.5330 -4.537425353283e-02 2.584205272926e+02
8536 8.5340 -4.530583484136e-02 2.585604887563e+02
8537 8.5350 -4.521060988278e-02 2.587005483337e+02
8538 8.5360 -4.513365397646e-02 2.588406609851e+02
8539 8.5370 -4.510413329304e-02 2.589807975799e+02
8540 8.5380 -4.495382257227e-02 2.591211263793e+02
8541 8.5390 -4.477644699271e-02 2.592615536937e+02
8542 8.5400 -4.457191231097e-02 2.594020796530e+02
8543 8.5410 -4.434012486918e-02 2.595427043868e+02
8544 8.5420 -4.409461725858e-02 2.596834143981e+02
8545 8.5430 -4.392070284246e-02 2.598241244094e+02
8546 8.5440 -4.381841742624e-02 2.599648344207e+02
8547 8.5450 -4.378779683367e-02 2.601055444321e+02
8548 8.5460 -4.382887690602e-02 2.602462544434e+02
8549 8.5470 -4.384273826183e-02 2.603870634100e+02
8550 8.5480 -4.382894576448e-02 2.605279718028e+02
8551 8.5490 -4.384715086682e-02 2.606689200063e+02
8552 8.5500 -4.393720017914e-02 2.608098682098e+02
8553 8.5510 -4.396459635855e-02 2.609509509466e+02
8554 8.5520 -4.396058545168e-02 2.610921370066e+02
8555 8.5530 -4.395333241506e-02 2.612333982607e+02
8556 8.5540 -4.397442140343e-02 2.613747031609e+02
8557 8.5550 -4.398396591172e-02 2.615160916296e+02
8558 8.5560 -4.401101941724e-02 2.616575346494e+02
8559 8.5570 -4.401085385697e-02 2.617990769843e+02
8560 8.5580 -4.408282045853e-02 2.619406193192e+02
8561 8.5590 -4.412535543801e-02 2.620822632540e+02
8562 8.5600 -4.422311708523e-02 2.622239241665e+02
8563 8.5610 -4.439311917432e-02 2.623655850789e+02
8564 8.5620 -4.458717432714e-02 2.625072942149e+02
8565 8.5630 -4.467653536254e-02 2.626491803577e+02
8566 8.5640 -4.464961711546e-02 2.627912551287e+02
8567 8.5650 -4.463543235006e-02 2.629333895512e+02
8568 8.5660 -4.469366885289e-02 2.630755239738e+02
8569 8.5670 -4.482436284427e-02 2.632176583963e+02
8570 8.5680 -4.502755056166e-02 2.633597928189e+02
8571 8.5690 -4.519416636696e-02 2.635020363433e+02
8572 8.5700 -4.542432332081e-02 2.636442888929e+02
8573 8.5710 -4.565092667444e-02 2.637866175986e+02
8574 8.5720 -4.583312158923e-02 2.639290633516e+02
8575 8.5730 -4.592724348325e-02 2.640716698528e+02
8576 8.5740 -4.609407691078e-02 2.642142763540e+02
8577 8.5750 -4.632139350238e-02 2.643568951199e+02
8578 8.5760 -4.651594050693e-02 2.644996194397e+02
8579 8.5770 -4.666883551323e-02 2.646424582322e+02
8580 8.5780 -4.679226653574e-02 2.647853993458e+02
8581 8.5790 -4.696990095631e-02 2.649283591495e+02
8582 8.5800 -4.719604424774e-02 2.650713433744e+02
8583 8.5810 -4.739720994677e-02 2.652144255433e+02
8584 8.5820 -4.757850069538e-02 2.653576005901e+02
8585 8.5830 -4.775418995983e-02 2.655008542779e+02
8586 8.5840 -4.800295522607e-02 2.656441079656e+02
8587 8.5850 -4.824159240018e-02 2.657874448941e+02
8588 8.5860 -4.840640951308e-02 2.659309287916e+02
8589 8.5870 -4.863986594662e-02 2.660744172356e+02
8590 8.5880 -4.894654468059e-02 2.662179056796e+02
8591 8.5890 -4.932648233472e-02 2.663613941236e+02
8592 8.5900 -4.977971554800e-02 2.665048825675e+02
8593 8.5910 -5.026289288219e-02 2.666484143996e+02
8594 8.5920 -5.071574097021e-02 2.667920499298e+02
8595 8.5930 -5.113818993973e-02 2.669357892647e+02
8596 8.5940 -5.153017039554e-02 2.670796325104e+02
8597 8.5950 -5.188229216658e-02 2.672235890938e+02
8598 8.5960 -5.224360197103e-02 2.673676100050e+02
8599 8.5970 -5.257434085091e-02 2.675117350397e+02
8600 8.5980 -5.279237393533e-02 2.676560463694e+02
8601 8.5990 -5.297143737751e-02 2.678004702950e+02
8602 8.6000 -5.320999209851e-02 2.679449083922e+02
8603 8.6010 -5.341770727601e-02 2.680894510287e+02
8604 8.6020 -5.355166176557e-02 2.682341411626e+02
8605 8.6030 -5.356903598647e-02 2.683790216503e+02
8606 8.6040 -5.355552531988e-02 2.685240068333e+02
8607 8.6050 -5.359402289058e-02 2.686690138554e+02
8608 8.6060 -5.370640473679e-02 2.688140208775e+02
8609 8.6070 -5.389270780950e-02 2.689590278997e+02
8610 8.6080 -5.406181821304e-02 2.691041260726e+02
8611 8.6090 -5.416230943511e-02 2.692493668600e+02
8612 8.6100 -5.415274261908e-02 2.693947917376e+02
8613 8.6110 -5.416984498514e-02 2.695402640152e+02
8614 8.6120 -5.426105361197e-02 2.696857362928e+02
8615 8.6130 -5.438984693366e-02 2.698312451290e+02
8616 8.6140 -5.437671835099e-02 2.699769700676e+02
8617 8.6150 -5.434216439790e-02 2.701227906490e+02
8618 8.6160 -5.437629391524e-02 2.702686168016e+02
8619 8.6170 -5.429479237993e-02 2.704146328770e+02
8620 8.6180 -5.418167988105e-02 2.705607548922e+02
8621 8.6190 -5.399499408516e-02 2.707070248469e+02
8622 8.6200 -5.386835279883e-02 2.708533091603e+02
8623 8.6210 -5.381615200297e-02 2.709995934737e+02
8624 8.6220 -5.383842892712e-02 2.711458777871e+02
8625 8.6230 -5.391366800733e-02 2.712921836533e+02
8626 8.6240 -5.395694623413e-02 2.714385960327e+02
8627 8.6250 -5.396820678576e-02 2.715851150192e+02
8628 8.6260 -5.390593564183e-02 2.717317821642e+02
8629 8.6270 -5.383874303246e-02 2.718785288948e+02
8630 8.6280 -5.374500416303e-02 2.720253768732e+02
8631 8.6290 -5.370178200265e-02 2.721722490738e+02
8632 8.6300 -5.362792362621e-02 2.723192266867e+02
8633 8.6310 -5.362887887503e-02 2.724662042997e+02
8634 8.6320 -5.370468516495e-02 2.726131819127e+02
8635 8.6330 -5.385537993092e-02 2.727601595257e+02
8636 8.6340 -5.408100062658e-02 2.729071371387e+02
8637 8.6350 -5.433789824431e-02 2.730541584381e+02
8638 8.6360 -5.459833448726e-02 2.732012511998e+02
8639 8.6370 -5.493380913336e-02 2.733483439616e+02
8640 8.6380 -5.526139153242e-02 2.734955196915e+02
8641 8.6390 -5.550319640813e-02 2.736428563124e+02
8642 8.6400 -5.566494219376e-02 2.737903481434e+02
8643 8.6410 -5.568578790389e-02 2.739380560631e+02
8644 8.6420 -5.559271954826e-02 2.740859531232e+02
8645 8.6430 -5.554800114376e-02 2.742338770971e+02
8646 8.6440 -5.549042477098e-02 2.743818892306e+02
8647 8.6450 -5.550818755583e-02 2.745299013640e+02
8648 8.6460 -5.551354431925e-02 2.746780012802e+02
8649 8.6470 -5.548515686052e-02 2.748262103553e+02
8650 8.6480 -5.538524701939e-02 2.749745664049e+02
8651 8.6490 -5.529174499702e-02 2.751229915368e+02
8652 8.6500 -5.522831211605e-02 2.752714621272e+02
8653 8.6510 -5.514308411877e-02 2.754200300783e+02
8654 8.6520 -5.502476197546e-02 2.755687067268e+02
8655 8.6530 -5.495925795858e-02 2.757174061983e+02
8656 8.6540 -5.496943288947e-02 2.758661056698e+02
8657 8.6550 -5.502009757151e-02 2.760148403683e+02
8658 8.6560 -5.496760883434e-02 2.761637539750e+02
8659 8.6570 -5.483735226660e-02 2.763128211420e+02
8660 8.6580 -5.469373420819e-02 2.764619775010e+02
8661 8.6590 -5.462598453185e-02 2.766111338599e+02
8662 8.6600 -5.463414118079e-02 2.767602902189e+02
8663 8.6610 -5.471824211810e-02 2.769094465778e+02
8664 8.6620 -5.487672285405e-02 2.770586045393e+02
8665 8.6630 -5.496218608314e-02 2.772079115385e+02
8666 8.6640 -5.504649034047e-02 2.773572957550e+02
8667 8.6650 -5.509989948120e-02 2.775067869629e+02
8668 8.6660 -5.519818698164e-02 2.776563094268e+02
8669 8.6670 -5.526271984042e-02 2.778059418179e+02
8670 8.6680 -5.529345694804e-02 2.779556842153e+02
8671 8.6690 -5.530357359195e-02 2.781055234818e+02
8672 8.6700 -5.530218282135e-02 2.782554505425e+02
8673 8.6710 -5.526695721515e-02 2.784054877630e+02
8674 8.6720 -5.527883975142e-02 2.785555542385e+02
8675 8.6730 -5.528932144807e-02 2.787056985162e+02
8676 8.6740 -5.522709045018e-02 2.788559919461e+02
8677 8.6750 -5.505918133467e-02 2.790064675318e+02
8678 8.6760 -5.485429392666e-02 2.791570566119e+02
8679 8.6770 -5.457666322416e-02 2.793077949896e+02
8680 8.6780 -5.420148312564e-02 2.794587075092e+02
8681 8.6790 -5.384196566540e-02 2.796096809971e+02
8682 8.6800 -5.340337552066e-02 2.797608102268e+02
8683 8.6810 -5.297086074948e-02 2.799120100887e+02
8684 8.6820 -5.261509188265e-02 2.800632099506e+02
8685 8.6830 -5.224554809911e-02 2.802145003717e+02
8686 8.6840 -5.184171664057e-02 2.803659019032e+02
8687 8.6850 -5.149033739331e-02 2.805173278435e+02
8688 8.6860 -5.121585769568e-02 2.806687537839e+02
8689 8.6870 -5.097298244336e-02 2.808202250578e+02
8690 8.6880 -5.065756402270e-02 2.809718458514e+02
8691 8.6890 -5.038830294959e-02 2.811234975026e+02
8692 8.6900 -5.011672271312e-02 2.812752285265e+02
8693 8.6910 -4.988885422713e-02 2.814269929307e+02
8694 8.6920 -4.969875311868e-02 2.815787966981e+02
8695 8.6930 -4.951253358774e-02 2.817306737531e+02
8696 8.6940 -4.940352182060e-02 2.818825508081e+02
8697 8.6950 -4.937175643077e-02 2.820344278631e+02
8698 8.6960 -4.941727605151e-02 2.821863049181e+02
8699 8.6970 -4.946624774854e-02 2.823382558446e+02
8700 8.6980 -4.948046335811e-02 2.824903188896e+02
8701 8.6990 -4.953321842321e-02 2.826424207962e+02
8702 8.7000 -4.966341322314e-02 2.827945227028e+02
8703 8.7010 -4.983524583319e-02 2.829466604500e+02
8704 8.7020 -4.993482258689e-02 2.830989479703e+02
8705 8.7030 -5.007307813941e-02 2.832512743677e+02
8706 8.7040 -5.028892846161e-02 2.834036007652e+02
8707 8.7050 -5.050802584456e-02 2.835560015492e+02
8708 8.7060 -5.072926277717e-02 2.837084778660e+02
8709 8.7070 -5.091543902072e-02 2.838610669548e+02
8710 8.7080 -5.102949325762e-02 2.840138059157e+02
8711 8.7090 -5.110846736031e-02 2.841666577458e+02
8712 8.7100 -5.123064971742e-02 2.843195441954e+02
8713 8.7110 -5.138815034667e-02 2.844724731937e+02
8714 8.7120 -5.151045283659e-02 2.846255152958e+02
8715 8.7130 -5.159753060632e-02 2.847786705674e+02
8716 8.7140 -5.169604879458e-02 2.849318923823e+02
8717 8.7150 -5.173933324948e-02 2.850852474537e+02
8718 8.7160 -5.177059974930e-02 2.852386926047e+02
8719 8.7170 -5.179158416307e-02 2.853922261386e+02
8720 8.7180 -5.186750081837e-02 2.855457828801e+02
8721 8.7190 -5.192937311828e-02 2.856994318449e+02
8722 8.7200 -5.199231157949e-02 2.858531579615e+02
8723 8.7210 -5.207992645869e-02 2.860069376589e+02
8724 8.7220 -5.208461807169e-02 2.861608785757e+02
8725 8.7230 -5.210611914271e-02 2.863148810186e+02
8726 8.7240 -5.210232285577e-02 2.864689871334e+02
8727 8.7250 -5.209922959233e-02 2.866231709590e+02
8728 8.7260 -5.213343618093e-02 2.867773959378e+02
8729 8.7270 -5.217043197876e-02 2.869316966197e+02
8730 8.7280 -5.224386528794e-02 2.870860393955e+02
8731 8.7290 -5.229142281043e-02 2.872404866179e+02
8732 8.7300 -5.241759041976e-02 2.873949338403e+02
8733 8.7310 -5.262240743070e-02 2.875493810628e+02
8734 8.7320 -5.288601204760e-02 2.877038481863e+02
8735 8.7330 -5.301883650556e-02 2.878585248181e+02
8736 8.7340 -5.312712976091e-02 2.880133047486e+02
8737 8.7350 -5.321196008722e-02 2.881681869488e+02
8738 8.7360 -5.322625143253e-02 2.883232185343e+02
8739 8.7370 -5.323551871737e-02 2.884783340296e+02
8740 8.7380 -5.321621100335e-02 2.886335570250e+02
8741 8.7390 -5.327009941425e-02 2.887887857889e+02
8742 8.7400 -5.333759714598e-02 2.889440799477e+02
8743 8.7410 -5.338941439414e-02 2.890994688305e+02
8744 8.7420 -5.346021030751e-02 2.892549178179e+02
8745 8.7430 -5.349505321118e-02 2.894104818809e+02
8746 8.7440 -5.345981962457e-02 2.895661951828e+02
8747 8.7450 -5.334747187444e-02 2.897220648007e+02
8748 8.7460 -5.324290534595e-02 2.898780058788e+02
8749 8.7470 -5.313370878762e-02 2.900340308681e+02
8750 8.7480 -5.307743802619e-02 2.901900822524e+02
8751 8.7490 -5.294730005938e-02 2.903462868644e+02
8752 8.7500 -5.282935330513e-02 2.905025586852e+02
8753 8.7510 -5.268611171181e-02 2.906589352407e+02
8754 8.7520 -5.250122959766e-02 2.908154329164e+02
8755 8.7530 -5.228013553111e-02 2.909720463232e+02
8756 8.7540 -5.203985200175e-02 2.911287584787e+02
8757 8.7550 -5.178687528707e-02 2.912855629262e+02
8758 8.7560 -5.149770608243e-02 2.914424832049e+02
8759 8.7570 -5.124154952334e-02 2.915994501495e+02
8760 8.7580 -5.094261789960e-02 2.917565395875e+02
8761 8.7590 -5.053856492413e-02 2.919138139050e+02
8762 8.7600 -5.009817169647e-02 2.920712043610e+02
8763 8.7610 -4.962142540688e-02 2.922287110081e+02
8764 8.7620 -4.914046630577e-02 2.923863017459e+02
8765 8.7630 -4.866631075360e-02 2.925439655981e+02
8766 8.7640 -4.819006757683e-02 2.927017114958e+02
8767 8.7650 -4.772978824198e-02 2.928595214276e+02
8768 8.7660 -4.734954678691e-02 2.930173313593e+02
8769 8.7670 -4.704938324069e-02 2.931751412910e+02
8770 8.7680 -4.675593819819e-02 2.933330246222e+02
8771 8.7690 -4.642604650823e-02 2.934910245581e+02
8772 8.7700 -4.614757198187e-02 2.936490532749e+02
8773 8.7710 -4.594933568014e-02 2.938070819917e+02
8774 8.7720 -4.579541929529e-02 2.939651466670e+02
8775 8.7730 -4.553933560208e-02 2.941233938280e+02
8776 8.7740 -4.536361058120e-02 2.942816409891e+02
8777 8.7750 -4.524393545891e-02 2.944399124991e+02
8778 8.7760 -4.505395702044e-02 2.945983347515e+02
8779 8.7770 -4.486105217999e-02 2.947568404097e+02
8780 8.7780 -4.467997346383e-02 2.949154147612e+02
8781 8.7790 -4.448922663550e-02 2.950740793407e+02
8782 8.7800 -4.436035257159e-02 2.952327626475e+02
8783 8.7810 -4.431211892868e-02 2.953914459543e+02
8784 8.7820 -4.434456603657e-02 2.955501292612e+02
8785 8.7830 -4.443413489934e-02 2.957088361673e+02
8786 8.7840 -4.451930311459e-02 2.958676282356e+02
8787 8.7850 -4.457754933488e-02 2.960265280278e+02
8788 8.7860 -4.471565170057e-02 2.961854288061e+02
8789 8.7870 -4.490881392346e-02 2.963443554072e+02
8790 8.7880 -4.499712468543e-02 2.965034677829e+02
8791 8.7890 -4.505089791752e-02 2.966626956598e+02
8792 8.7900 -4.508703340677e-02 2.968220221786e+02
8793 8.7910 -4.502364887478e-02 2.969815292620e+02
8794 8.7920 -4.490450084125e-02 2.971411731941e+02
8795 8.7930 -4.472818239363e-02 2.973009554223e+02
8796 8.7940 -4.463303023678e-02 2.974607376505e+02
8797 8.7950 -4.458372636914e-02 2.976205552373e+02
8798 8.7960 -4.453031798256e-02 2.977804581762e+02
8799 8.7970 -4.446243270072e-02 2.979404568800e+02
8800 8.7980 -4.444338980313e-02 2.981004880703e+02
8801 8.7990 -4.443006611067e-02 2.982605949108e+02
8802 8.8000 -4.449815257343e-02 2.984207017513e+02
8803 8.8010 -4.458453228975e-02 2.985808717494e+02
8804 8.8020 -4.470753797359e-02 2.987410866132e+02
8805 8.8030 -4.489299092337e-02 2.989013205620e+02
8806 8.8040 -4.504146794380e-02 2.990616730600e+02
8807 8.8050 -4.508819863440e-02 2.992222089182e+02
8808 8.8060 -4.519501302115e-02 2.993827663474e+02
8809 8.8070 -4.526482025202e-02 2.995434424794e+02
8810 8.8080 -4.533839348311e-02 2.997041965819e+02
8811 8.8090 -4.535786576046e-02 2.998650865626e+02
8812 8.8100 -4.537965103505e-02 3.000260560485e+02
8813 8.8110 -4.530276730747e-02 3.001872060626e+02
8814 8.8120 -4.518757645387e-02 3.003484762839e+02
8815 8.8130 -4.509942110919e-02 3.005098014108e+02
8816 8.8140 -4.501856865859e-02 3.006712012168e+02
8817 8.8150 -4.499568545716e-02 3.008326250765e+02
8818 8.8160 -4.490383231923e-02 3.009941999702e+02
8819 8.8170 -4.485434589540e-02 3.011558146024e+02
8820 8.8180 -4.488700562495e-02 3.013174292345e+02
8821 8.8190 -4.499392519591e-02 3.014790517940e+02
8822 8.8200 -4.500029859145e-02 3.016408571280e+02
8823 8.8210 -4.506514923906e-02 3.018026862543e+02
8824 8.8220 -4.515496261527e-02 3.019645727284e+02
8825 8.8230 -4.517020186960e-02 3.021266161284e+02
8826 8.8240 -4.516092219196e-02 3.022887664403e+02
8827 8.8250 -4.512686125519e-02 3.024510239676e+02
8828 8.8260 -4.508100845977e-02 3.026133757622e+02
8829 8.8270 -4.510494287570e-02 3.027757402863e+02
8830 8.8280 -4.521143520439e-02 3.029381048103e+02
8831 8.8290 -4.525397796793e-02 3.031006158831e+02
8832 8.8300 -4.515377689074e-02 3.032633523402e+02
8833 8.8310 -4.504762751756e-02 3.034261774275e+02
8834 8.8320 -4.495061803280e-02 3.035890760981e+02
8835 8.8330 -4.493637311411e-02 3.037519747687e+02
8836 8.8340 -4.486600948201e-02 3.039150123640e+02
8837 8.8350 -4.474445032650e-02 3.040781840021e+02
8838 8.8360 -4.452362825648e-02 3.042415377920e+02
8839 8.8370 -4.435856510517e-02 3.044049187532e+02
8840 8.8380 -4.417323811267e-02 3.045684029500e+02
8841 8.8390 -4.403465708618e-02 3.047319234141e+02
8842 8.8400 -4.388673334457e-02 3.048955362756e+02
8843 8.8410 -4.371856794610e-02 3.050592524751e+02
8844 8.8420 -4.348222570771e-02 3.052231199893e+02
8845 8.8430 -4.325066602824e-02 3.053870659003e+02
8846 8.8440 -4.310232737373e-02 3.055510118113e+02
8847 8.8450 -4.303725136507e-02 3.057149577223e+02
8848 8.8460 -4.305547964410e-02 3.058789036334e+02
8849 8.8470 -4.298918354699e-02 3.060430174147e+02
8850 8.8480 -4.293973055655e-02 3.062071977406e+02
8851 8.8490 -4.278570923614e-02 3.063715660642e+02
8852 8.8500 -4.255567293120e-02 3.065360938737e+02
8853 8.8510 -4.228837684206e-02 3.067007424559e+02
8854 8.8520 -4.198382951152e-02 3.068655118439e+02
8855 8.8530 -4.167234335577e-02 3.070303717671e+02
8856 8.8540 -4.130331339851e-02 3.071953728723e+02
8857 8.8550 -4.090737629926e-02 3.073604845646e+02
8858 8.8560 -4.054449290659e-02 3.075256469251e+02
8859 8.8570 -4.014433629637e-02 3.076909303225e+02
8860 8.8580 -3.973700319374e-02 3.078563047020e+02
8861 8.8590 -3.935908469980e-02 3.080217335144e+02
8862 8.8600 -3.896061610214e-02 3.081872667664e+02
8863 8.8610 -3.853935330677e-02 3.083529067440e+02
8864 8.8620 -3.817836149740e-02 3.085185704240e+02
8865 8.8630 -3.781959763881e-02 3.086843158915e+02
8866 8.8640 -3.748947229324e-02 3.088501167778e+02
8867 8.8650 -3.718163720074e-02 3.090159794734e+02
8868 8.8660 -3.686438843145e-02 3.091819357241e+02
8869 8.8670 -3.663132325316e-02 3.093478919749e+02
8870 8.8680 -3.648248376835e-02 3.095138482256e+02
8871 8.8690 -3.634136200233e-02 3.096798810265e+02
8872 8.8700 -3.616297826261e-02 3.098460353992e+02
8873 8.8710 -3.603599116871e-02 3.100122227275e+02
8874 8.8720 -3.586395383982e-02 3.101785395003e+02
8875 8.8730 -3.561117470617e-02 3.103450214514e+02
8876 8.8740 -3.544287432241e-02 3.105115034025e+02
8877 8.8750 -3.535909493829e-02 3.106779853537e+02
8878 8.8760 -3.525571379103e-02 3.108445714698e+02
8879 8.8770 -3.514442185119e-02 3.110112501023e+02
8880 8.8780 -3.510460321894e-02 3.111779419094e+02
8881 8.8790 -3.511140474219e-02 3.113446717866e+02
8882 8.8800 -3.513620562203e-02 3.115114683969e+02
8883 8.8810 -3.512980284748e-02 3.116783809859e+02
8884 8.8820 -3.511473636392e-02 3.118453870559e+02
8885 8.8830 -3.516444565127e-02 3.120124132099e+02
8886 8.8840 -3.511022903831e-02 3.121796281919e+02
8887 8.8850 -3.498078261289e-02 3.123470033485e+02
8888 8.8860 -3.487194710796e-02 3.125144428813e+02
8889 8.8870 -3.475471489171e-02 3.126819758405e+02
8890 8.8880 -3.460020416836e-02 3.128496311503e+02
8891 8.8890 -3.437961592492e-02 3.130174376524e+02
8892 8.8900 -3.412180114413e-02 3.131853665383e+02
8893 8.8910 -3.393139472241e-02 3.133533132157e+02
8894 8.8920 -3.382623079097e-02 3.135212598931e+02
8895 8.8930 -3.380635198175e-02 3.136892065706e+02
8896 8.8940 -3.379866084259e-02 3.138572263881e+02
8897 8.8950 -3.384527066619e-02 3.140252772751e+02
8898 8.8960 -3.389592315504e-02 3.141934095326e+02
8899 8.8970 -3.395201009393e-02 3.143616218115e+02
8900 8.8980 -3.394271291040e-02 3.145299849732e+02
8901 8.8990 -3.396718708589e-02 3.146983999048e+02
8902 8.9000 -3.401121312145e-02 3.148668808687e+02
8903 8.9010 -3.396134004371e-02 3.150355413587e+02
8904 8.9020 -3.398258726847e-02 3.152042163981e+02
8905 8.9030 -3.397648070326e-02 3.153730045040e+02
8906 8.9040 -3.396151532357e-02 3.155418872242e+02
8907 8.9050 -3.403234831521e-02 3.157107699443e+02
8908 8.9060 -3.408915453054e-02 3.158797525325e+02
8909 8.9070 -3.422797654563e-02 3.160487389891e+02
8910 8.9080 -3.445272572591e-02 3.162177254458e+02
8911 8.9090 -3.468976948681e-02 3.163867855779e+02
8912 8.9100 -3.498289617267e-02 3.165558756403e+02
8913 8.9110 -3.533316525509e-02 3.167249946165e+02
8914 8.9120 -3.564629958376e-02 3.168942368266e+02
8915 8.9130 -3.599074010298e-02 3.170635338727e+02
8916 8.9140 -3.638878023359e-02 3.172328635046e+02
8917 8.9150 -3.680224531583e-02 3.174022639399e+02
8918 8.9160 -3.730198195998e-02 3.175716643753e+02
8919 8.9170 -3.778598330524e-02 3.177411668607e+02
8920 8.9180 -3.816682848617e-02 3.179108588601e+02
8921 8.9190 -3.861583719710e-02 3.180805690970e+02
8922 8.9200 -3.910867992741e-02 3.182503219442e+02
8923 8.9210 -3.952900165858e-02 3.184202338000e+02
8924 8.9220 -3.984464489088e-02 3.185903368649e+02
8925 8.9230 -4.017827180329e-02 3.187605085203e+02
8926 8.9240 -4.050232324828e-02 3.189307763684e+02
8927 8.9250 -4.084415832972e-02 3.191011130936e+02
8928 8.9260 -4.114895987357e-02 3.192715735563e+02
8929 8.9270 -4.141675052563e-02 3.194421577773e+02
8930 8.9280 -4.167485158537e-02 3.196128384786e+02
8931 8.9290 -4.185897772621e-02 3.197836799889e+02
8932 8.9300 -4.194034552698e-02 3.199547111352e+02
8933 8.9310 -4.201438872150e-02 3.201258365272e+02
8934 8.9320 -4.204670785344e-02 3.202970906077e+02
8935 8.9330 -4.208568740201e-02 3.204684250357e+02
8936 8.9340 -4.205234782411e-02 3.206399188345e+02
8937 8.9350 -4.195322502056e-02 3.208115655115e+02
8938 8.9360 -4.182087189952e-02 3.209833325574e+02
8939 8.9370 -4.168575667648e-02 3.211551895476e+02
8940 8.9380 -4.152286015835e-02 3.213271615449e+02
8941 8.9390 -4.141271396828e-02 3.214991680612e+02
8942 8.9400 -4.132200778921e-02 3.216712424506e+02
8943 8.9410 -4.131865833508e-02 3.218433168400e+02
8944 8.9420 -4.125617204520e-02 3.220155377667e+02
8945 8.9430 -4.115460632113e-02 3.221878852169e+02
8946 8.9440 -4.110676673632e-02 3.223602664289e+02
8947 8.9450 -4.114048419885e-02 3.225326536154e+02
8948 8.9460 -4.111076421571e-02 3.227051918147e+02
8949 8.9470 -4.107085832391e-02 3.228778278192e+02
8950 8.9480 -4.097440071699e-02 3.230506080383e+02
8951 8.9490 -4.083849805459e-02 3.232235154094e+02
8952 8.9500 -4.063935679186e-02 3.233965737698e+02
8953 8.9510 -4.049077743474e-02 3.235696693629e+02
8954 8.9520 -4.034231938865e-02 3.237428526732e+02
8955 8.9530 -4.011233042088e-02 3.239162053968e+02
8956 8.9540 -3.992179311543e-02 3.240896065952e+02
8957 8.9550 -3.974657627827e-02 3.242630804435e+02
8958 8.9560 -3.961348296343e-02 3.244366001826e+02
8959 8.9570 -3.937771636454e-02 3.246103106534e+02
8960 8.9580 -3.913246724857e-02 3.247841187091e+02
8961 8.9590 -3.897536461678e-02 3.249579267648e+02
8962 8.9600 -3.890645255305e-02 3.251317348205e+02
8963 8.9610 -3.886982647847e-02 3.253055988249e+02
8964 8.9620 -3.877439026645e-02 3.254796099183e+02
8965 8.9630 -3.876727700787e-02 3.256536210116e+02
8966 8.9640 -3.884853087515e-02 3.258276321050e+02
8967 8.9650 -3.890459869795e-02 3.260017567957e+02
8968 8.9660 -3.891843724824e-02 3.261760121712e+02
8969 8.9670 -3.896098578967e-02 3.263503273365e+02
8970 8.9680 -3.900313125432e-02 3.265247314489e+02
8971 8.9690 -3.908621437280e-02 3.266991832120e+02
8972 8.9700 -3.919205432539e-02 3.268737008509e+02
8973 8.9710 -3.932913310104e-02 3.270482759279e+02
8974 8.9720 -3.939528597391e-02 3.272230106521e+02
8975 8.9730 -3.930869820199e-02 3.273979868826e+02
8976 8.9740 -3.926404818143e-02 3.275730099855e+02
8977 8.9750 -3.928246686185e-02 3.277480588741e+02
8978 8.9760 -3.926450977054e-02 3.279232330374e+02
8979 8.9770 -3.928465156657e-02 3.280984580453e+02
8980 8.9780 -3.925826352538e-02 3.282738185708e+02
8981 8.9790 -3.918577580806e-02 3.284493142284e+02
8982 8.9800 -3.904856013905e-02 3.286249636908e+02
8983 8.9810 -3.895116802793e-02 3.288006624511e+02
8984 8.9820 -3.876683213892e-02 3.289765373212e+02
8985 8.9830 -3.862218916453e-02 3.291524617090e+02
8986 8.9840 -3.851032123673e-02 3.293284425770e+02
8987 8.9850 -3.848775317796e-02 3.295044234450e+02
8988 8.9860 -3.855452964944e-02 3.296804043130e+02
8989 8.9870 -3.864249023929e-02 3.298564533860e+02
8990 8.9880 -3.878757573111e-02 3.300325347681e+02
8991 8.9890 -3.891086744040e-02 3.302087274227e+02
8992 8.9900 -3.896577916268e-02 3.303850779806e+02
8993 8.9910 -3.907817557312e-02 3.305614606220e+02
8994 8.9920 -3.928018494957e-02 3.307378432634e+02
8995 8.9930 -3.947757701645e-02 3.309143201799e+02
8996 8.9940 -3.973860938679e-02 3.310908231587e+02
8997 8.9950 -3.996360206996e-02 3.312674519247e+02
8998 8.9960 -4.020225858920e-02 3.314441568192e+02
8999 8.9970 -4.045215481354e-02 3.316209403113e+02
9000 8.9980 -4.071896034274e-02 3.317977967763e+02
9001 8.9990 -4.085130570582e-02 3.319748776286e+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())