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 10 of 21 · 500/page · 10001 rows next →
# tg_tprime_sum_t
4502 4.5000 -3.355178364215e-02 2.212930907591e+01
4503 4.5010 -3.341420364134e-02 2.214574078573e+01
4504 4.5020 -3.328611610864e-02 2.216217249555e+01
4505 4.5030 -3.316752579151e-02 2.217860420537e+01
4506 4.5040 -3.305843743979e-02 2.219503591519e+01
4507 4.5050 -3.295885580569e-02 2.221146762501e+01
4508 4.5060 -3.286878564378e-02 2.222789933483e+01
4509 4.5070 -3.278823171104e-02 2.224433104465e+01
4510 4.5080 -3.271719876681e-02 2.226076275447e+01
4511 4.5090 -3.265569157280e-02 2.227719446429e+01
4512 4.5100 -3.260371489315e-02 2.229362617411e+01
4513 4.5110 -3.256127349430e-02 2.231005788393e+01
4514 4.5120 -3.252837214514e-02 2.232648959375e+01
4515 4.5130 -3.250501561693e-02 2.234292130357e+01
4516 4.5140 -3.249120868331e-02 2.235935301339e+01
4517 4.5150 -3.248695612031e-02 2.237578472320e+01
4518 4.5160 -3.249226270634e-02 2.239221643302e+01
4519 4.5170 -3.250713322222e-02 2.240864814284e+01
4520 4.5180 -3.253157245113e-02 2.242507985266e+01
4521 4.5190 -3.256558517867e-02 2.244151156248e+01
4522 4.5200 -3.260917619283e-02 2.245794327230e+01
4523 4.5210 -3.266235028398e-02 2.247437498212e+01
4524 4.5220 -3.272511224489e-02 2.249080669194e+01
4525 4.5230 -3.279746687075e-02 2.250723840176e+01
4526 4.5240 -3.287941895911e-02 2.252367011158e+01
4527 4.5250 -3.297097330994e-02 2.254010182140e+01
4528 4.5260 -3.307213472561e-02 2.255653353122e+01
4529 4.5270 -3.318290801090e-02 2.257296524104e+01
4530 4.5280 -3.330329797296e-02 2.258939695086e+01
4531 4.5290 -3.343330942139e-02 2.260582866068e+01
4532 4.5300 -3.357294716817e-02 2.262226037049e+01
4533 4.5310 -3.372221602767e-02 2.263869208031e+01
4534 4.5320 -3.388112081671e-02 2.265512379013e+01
4535 4.5330 -3.404966635449e-02 2.267155549995e+01
4536 4.5340 -3.422785746261e-02 2.268798720977e+01
4537 4.5350 -3.441569896512e-02 2.270441891959e+01
4538 4.5360 -3.461319568844e-02 2.272085062941e+01
4539 4.5370 -3.482035246142e-02 2.273728233923e+01
4540 4.5380 -3.503717411534e-02 2.275371404905e+01
4541 4.5390 -3.526366548389e-02 2.277014575887e+01
4542 4.5400 -3.549983140316e-02 2.278657746869e+01
4543 4.5410 -3.574567671168e-02 2.280300917851e+01
4544 4.5420 -3.600120625039e-02 2.281944088833e+01
4545 4.5430 -3.626642486264e-02 2.283587259815e+01
4546 4.5440 -3.654133739422e-02 2.285230430797e+01
4547 4.5450 -3.682594869333e-02 2.286873601778e+01
4548 4.5460 -3.712026361061e-02 2.288516772760e+01
4549 4.5470 -3.742428699912e-02 2.290159943742e+01
4550 4.5480 -3.773802371433e-02 2.291803114724e+01
4551 4.5490 -3.806147861416e-02 2.293446285706e+01
4552 4.5500 -3.839465655896e-02 2.295089456688e+01
4553 4.5510 -3.873756241149e-02 2.296732627670e+01
4554 4.5520 -3.909020103696e-02 2.298375798652e+01
4555 4.5530 -3.945257730301e-02 2.300018969634e+01
4556 4.5540 -3.982469607971e-02 2.301662140616e+01
4557 4.5550 -4.020656223956e-02 2.303305311598e+01
4558 4.5560 -4.059818065751e-02 2.304948482580e+01
4559 4.5570 -4.099955621097e-02 2.306591653562e+01
4560 4.5580 -4.141069377971e-02 2.308234824544e+01
4561 4.5590 -4.183159824602e-02 2.309877995526e+01
4562 4.5600 -4.226227449460e-02 2.311521166508e+01
4563 4.5610 -4.270272741259e-02 2.313164337489e+01
4564 4.5620 -4.315296188960e-02 2.314807508471e+01
4565 4.5630 -4.361298281764e-02 2.316450679453e+01
4566 4.5640 -4.408279509121e-02 2.318093850435e+01
4567 4.5650 -4.456240360724e-02 2.319737021417e+01
4568 4.5660 -4.505181326509e-02 2.321380192399e+01
4569 4.5670 -4.555102896662e-02 2.323023363381e+01
4570 4.5680 -4.606005561609e-02 2.324666534363e+01
4571 4.5690 -4.657889812024e-02 2.326309705345e+01
4572 4.5700 -4.710756138825e-02 2.327952876327e+01
4573 4.5710 -4.764605033178e-02 2.329596047309e+01
4574 4.5720 -4.819436986490e-02 2.331239218291e+01
4575 4.5730 -4.875252490420e-02 2.332882389273e+01
4576 4.5740 -4.932052036867e-02 2.334525560255e+01
4577 4.5750 -4.976411314414e-02 2.336182156040e+01
4578 4.5760 -4.988731270099e-02 2.337871776175e+01
4579 4.5770 -5.002036745483e-02 2.339561396309e+01
4580 4.5780 -5.016328233454e-02 2.341251016443e+01
4581 4.5790 -5.031606227142e-02 2.342940636578e+01
4582 4.5800 -5.047871219927e-02 2.344630256712e+01
4583 4.5810 -5.065123705437e-02 2.346319876847e+01
4584 4.5820 -5.083364177542e-02 2.348009496981e+01
4585 4.5830 -5.102593130364e-02 2.349699117115e+01
4586 4.5840 -5.122811058272e-02 2.351388737250e+01
4587 4.5850 -5.144018455876e-02 2.353078357384e+01
4588 4.5860 -5.166215818040e-02 2.354767977519e+01
4589 4.5870 -5.189403639873e-02 2.356457597653e+01
4590 4.5880 -5.213582416732e-02 2.358147217788e+01
4591 4.5890 -5.238752644221e-02 2.359836837922e+01
4592 4.5900 -5.264914818194e-02 2.361526458056e+01
4593 4.5910 -5.292069434749e-02 2.363216078191e+01
4594 4.5920 -5.320216990235e-02 2.364905698325e+01
4595 4.5930 -5.349357981252e-02 2.366595318460e+01
4596 4.5940 -5.379492904640e-02 2.368284938594e+01
4597 4.5950 -5.410622257497e-02 2.369974558729e+01
4598 4.5960 -5.442746537161e-02 2.371664178863e+01
4599 4.5970 -5.475866241225e-02 2.373353798997e+01
4600 4.5980 -5.509981867531e-02 2.375043419132e+01
4601 4.5990 -5.545093914163e-02 2.376733039266e+01
4602 4.6000 -5.581202879461e-02 2.378422659401e+01
4603 4.6010 -5.618309262014e-02 2.380112279535e+01
4604 4.6020 -5.656413560655e-02 2.381801899669e+01
4605 4.6030 -5.695516274472e-02 2.383491519804e+01
4606 4.6040 -5.735617902799e-02 2.385181139938e+01
4607 4.6050 -5.776718945223e-02 2.386870760073e+01
4608 4.6060 -5.818819901577e-02 2.388560380207e+01
4609 4.6070 -5.861921271948e-02 2.390250000342e+01
4610 4.6080 -5.906023556669e-02 2.391939620476e+01
4611 4.6090 -5.951127256326e-02 2.393629240610e+01
4612 4.6100 -5.997232871757e-02 2.395318860745e+01
4613 4.6110 -6.044340904044e-02 2.397008480879e+01
4614 4.6120 -6.092451854526e-02 2.398698101014e+01
4615 4.6130 -6.141566224791e-02 2.400387721148e+01
4616 4.6140 -6.191684516675e-02 2.402077341283e+01
4617 4.6150 -6.242807232270e-02 2.403766961417e+01
4618 4.6160 -6.254547102731e-02 2.405496969323e+01
4619 4.6170 -6.261758007503e-02 2.407232511623e+01
4620 4.6180 -6.269974843758e-02 2.408968053922e+01
4621 4.6190 -6.279198114592e-02 2.410703596222e+01
4622 4.6200 -6.289428323352e-02 2.412439138522e+01
4623 4.6210 -6.300665973634e-02 2.414174680822e+01
4624 4.6220 -6.312911569289e-02 2.415910223122e+01
4625 4.6230 -6.326165614418e-02 2.417645765422e+01
4626 4.6240 -6.340428613375e-02 2.419381307722e+01
4627 4.6250 -6.355701070763e-02 2.421116850022e+01
4628 4.6260 -6.371983491446e-02 2.422852392322e+01
4629 4.6270 -6.389276380530e-02 2.424587934622e+01
4630 4.6280 -6.407580243381e-02 2.426323476922e+01
4631 4.6290 -6.426895585614e-02 2.428059019222e+01
4632 4.6300 -6.447222913097e-02 2.429794561522e+01
4633 4.6310 -6.468562731953e-02 2.431530103822e+01
4634 4.6320 -6.490915548558e-02 2.433265646122e+01
4635 4.6330 -6.514281869540e-02 2.435001188422e+01
4636 4.6340 -6.538662201779e-02 2.436736730721e+01
4637 4.6350 -6.551680665294e-02 2.438484649408e+01
4638 4.6360 -6.532423200025e-02 2.440265859050e+01
4639 4.6370 -6.514181268180e-02 2.442047068692e+01
4640 4.6380 -6.496955377656e-02 2.443828278333e+01
4641 4.6390 -6.480746036604e-02 2.445609487975e+01
4642 4.6400 -6.465553753429e-02 2.447390697617e+01
4643 4.6410 -6.451379036789e-02 2.449171907258e+01
4644 4.6420 -6.438222395596e-02 2.450953116900e+01
4645 4.6430 -6.426084339020e-02 2.452734326541e+01
4646 4.6440 -6.414965376483e-02 2.454515536183e+01
4647 4.6450 -6.404866017661e-02 2.456296745825e+01
4648 4.6460 -6.395786772486e-02 2.458077955466e+01
4649 4.6470 -6.387728151148e-02 2.459859165108e+01
4650 4.6480 -6.380690664086e-02 2.461640374750e+01
4651 4.6490 -6.374674821998e-02 2.463421584391e+01
4652 4.6500 -6.369681135837e-02 2.465202794033e+01
4653 4.6510 -6.365710116811e-02 2.466984003674e+01
4654 4.6520 -6.362762276386e-02 2.468765213316e+01
4655 4.6530 -6.360838126282e-02 2.470546422958e+01
4656 4.6540 -6.359938178472e-02 2.472327632599e+01
4657 4.6550 -6.360062945189e-02 2.474108842241e+01
4658 4.6560 -6.361212938924e-02 2.475890051883e+01
4659 4.6570 -6.363388672417e-02 2.477671261524e+01
4660 4.6580 -6.366590658671e-02 2.479452471166e+01
4661 4.6590 -6.370819410942e-02 2.481233680807e+01
4662 4.6600 -6.376075442746e-02 2.483014890449e+01
4663 4.6610 -6.382359267855e-02 2.484796100091e+01
4664 4.6620 -6.389671400291e-02 2.486577309732e+01
4665 4.6630 -6.398012354343e-02 2.488358519374e+01
4666 4.6640 -6.407382644553e-02 2.490139729016e+01
4667 4.6650 -6.417782785719e-02 2.491920938657e+01
4668 4.6660 -6.429213292899e-02 2.493702148299e+01
4669 4.6670 -6.441674681407e-02 2.495483357940e+01
4670 4.6680 -6.455167466815e-02 2.497264567582e+01
4671 4.6690 -6.469692164953e-02 2.499045777224e+01
4672 4.6700 -6.485249291909e-02 2.500826986865e+01
4673 4.6710 -6.501839364029e-02 2.502608196507e+01
4674 4.6720 -6.519462897917e-02 2.504389406148e+01
4675 4.6730 -6.530388188446e-02 2.506178348012e+01
4676 4.6740 -6.504906255304e-02 2.508004731595e+01
4677 4.6750 -6.480459335294e-02 2.509831115178e+01
4678 4.6760 -6.457047946054e-02 2.511657498761e+01
4679 4.6770 -6.434672605481e-02 2.513483882344e+01
4680 4.6780 -6.413333831733e-02 2.515310265927e+01
4681 4.6790 -6.393032143224e-02 2.517136649510e+01
4682 4.6800 -6.373768058629e-02 2.518963033093e+01
4683 4.6810 -6.355542096882e-02 2.520789416676e+01
4684 4.6820 -6.338354777177e-02 2.522615800259e+01
4685 4.6830 -6.322206618969e-02 2.524442183842e+01
4686 4.6840 -6.307098141969e-02 2.526268567425e+01
4687 4.6850 -6.293029866151e-02 2.528094951009e+01
4688 4.6860 -6.280002311748e-02 2.529921334592e+01
4689 4.6870 -6.268015999252e-02 2.531747718175e+01
4690 4.6880 -6.257071449418e-02 2.533574101758e+01
4691 4.6890 -6.247169183260e-02 2.535400485341e+01
4692 4.6900 -6.238309722052e-02 2.537226868924e+01
4693 4.6910 -6.230493587330e-02 2.539053252507e+01
4694 4.6920 -6.194418412887e-02 2.540908938978e+01
4695 4.6930 -6.143755533638e-02 2.542780257524e+01
4696 4.6940 -6.094137547045e-02 2.544651576070e+01
4697 4.6950 -6.045564975689e-02 2.546522894616e+01
4698 4.6960 -5.998038342411e-02 2.548394213162e+01
4699 4.6970 -5.951558170309e-02 2.550265531709e+01
4700 4.6980 -5.906124982753e-02 2.552136850255e+01
4701 4.6990 -5.861739303364e-02 2.554008168801e+01
4702 4.7000 -5.818401656031e-02 2.555879487347e+01
4703 4.7010 -5.776112564902e-02 2.557750805893e+01
4704 4.7020 -5.734872554392e-02 2.559622124440e+01
4705 4.7030 -5.694682149172e-02 2.561493442986e+01
4706 4.7040 -5.655541874179e-02 2.563364761532e+01
4707 4.7050 -5.617452254613e-02 2.565236080078e+01
4708 4.7060 -5.580413815931e-02 2.567107398624e+01
4709 4.7070 -5.544427083863e-02 2.568978717170e+01
4710 4.7080 -5.509492584391e-02 2.570850035717e+01
4711 4.7090 -5.475610843769e-02 2.572721354263e+01
4712 4.7100 -5.442782388509e-02 2.574592672809e+01
4713 4.7110 -5.411007745387e-02 2.576463991355e+01
4714 4.7120 -5.380287441445e-02 2.578335309901e+01
4715 4.7130 -5.350622003984e-02 2.580206628448e+01
4716 4.7140 -5.322011960574e-02 2.582077946994e+01
4717 4.7150 -5.294457839044e-02 2.583949265540e+01
4718 4.7160 -5.267960167491e-02 2.585820584086e+01
4719 4.7170 -5.242519474273e-02 2.587691902632e+01
4720 4.7180 -5.218136288016e-02 2.589563221179e+01
4721 4.7190 -5.194811137605e-02 2.591434539725e+01
4722 4.7200 -5.172544552193e-02 2.593305858271e+01
4723 4.7210 -5.151337061199e-02 2.595177176817e+01
4724 4.7220 -5.131189194303e-02 2.597048495363e+01
4725 4.7230 -5.112101481453e-02 2.598919813909e+01
4726 4.7240 -5.094074452860e-02 2.600791132456e+01
4727 4.7250 -5.077108639002e-02 2.602662451002e+01
4728 4.7260 -5.061204570618e-02 2.604533769548e+01
4729 4.7270 -5.046362778720e-02 2.606405088094e+01
4730 4.7280 -5.005359159912e-02 2.608303631275e+01
4731 4.7290 -4.948171991327e-02 2.610219421345e+01
4732 4.7300 -4.892048693844e-02 2.612135211415e+01
4733 4.7310 -4.836989799533e-02 2.614051001485e+01
4734 4.7320 -4.782995840730e-02 2.615966791555e+01
4735 4.7330 -4.730067350039e-02 2.617882581625e+01
4736 4.7340 -4.678204860330e-02 2.619798371695e+01
4737 4.7350 -4.627408904738e-02 2.621714161764e+01
4738 4.7360 -4.577680016666e-02 2.623629951834e+01
4739 4.7370 -4.529018729783e-02 2.625545741904e+01
4740 4.7380 -4.481425578025e-02 2.627461531974e+01
4741 4.7390 -4.434901095596e-02 2.629377322044e+01
4742 4.7400 -4.389445816965e-02 2.631293112114e+01
4743 4.7410 -4.345060276874e-02 2.633208902184e+01
4744 4.7420 -4.301745010322e-02 2.635124692254e+01
4745 4.7430 -4.259500552586e-02 2.637040482324e+01
4746 4.7440 -4.218327439204e-02 2.638956272394e+01
4747 4.7450 -4.178226205986e-02 2.640872062464e+01
4748 4.7460 -4.139197389007e-02 2.642787852534e+01
4749 4.7470 -4.101241524612e-02 2.644703642604e+01
4750 4.7480 -4.064359149413e-02 2.646619432673e+01
4751 4.7490 -4.028550800291e-02 2.648535222743e+01
4752 4.7500 -3.993817014397e-02 2.650451012813e+01
4753 4.7510 -3.960158329148e-02 2.652366802883e+01
4754 4.7520 -3.927575282229e-02 2.654282592953e+01
4755 4.7530 -3.896068411597e-02 2.656198383023e+01
4756 4.7540 -3.865638255479e-02 2.658114173093e+01
4757 4.7550 -3.836285352365e-02 2.660029963163e+01
4758 4.7560 -3.808010241022e-02 2.661945753233e+01
4759 4.7570 -3.780813460479e-02 2.663861543303e+01
4760 4.7580 -3.754695550041e-02 2.665777333373e+01
4761 4.7590 -3.729657049280e-02 2.667693123443e+01
4762 4.7600 -3.705698498036e-02 2.669608913512e+01
4763 4.7610 -3.682820436423e-02 2.671524703582e+01
4764 4.7620 -3.661023404820e-02 2.673440493652e+01
4765 4.7630 -3.640307943882e-02 2.675356283722e+01
4766 4.7640 -3.620674594530e-02 2.677272073792e+01
4767 4.7650 -3.602123897958e-02 2.679187863862e+01
4768 4.7660 -3.584656395629e-02 2.681103653932e+01
4769 4.7670 -3.568272629278e-02 2.683019444002e+01
4770 4.7680 -3.552973140911e-02 2.684935234072e+01
4771 4.7690 -3.538758472803e-02 2.686851024142e+01
4772 4.7700 -3.525629167503e-02 2.688766814212e+01
4773 4.7710 -3.513585767831e-02 2.690682604282e+01
4774 4.7720 -3.502628816876e-02 2.692598394352e+01
4775 4.7730 -3.492758857999e-02 2.694514184421e+01
4776 4.7740 -3.483976434837e-02 2.696429974491e+01
4777 4.7750 -3.476282091293e-02 2.698345764561e+01
4778 4.7760 -3.469676371547e-02 2.700261554631e+01
4779 4.7770 -3.464159820048e-02 2.702177344701e+01
4780 4.7780 -3.459732981517e-02 2.704093134771e+01
4781 4.7790 -3.456396400951e-02 2.706008924841e+01
4782 4.7800 -3.454150623616e-02 2.707924714911e+01
4783 4.7810 -3.452996195052e-02 2.709840504981e+01
4784 4.7820 -3.452933661071e-02 2.711756295051e+01
4785 4.7830 -3.453963567761e-02 2.713672085121e+01
4786 4.7840 -3.456086461480e-02 2.715587875191e+01
4787 4.7850 -3.459302888857e-02 2.717503665261e+01
4788 4.7860 -3.463613396801e-02 2.719419455330e+01
4789 4.7870 -3.469018532492e-02 2.721335245400e+01
4790 4.7880 -3.475518843378e-02 2.723251035470e+01
4791 4.7890 -3.483114877189e-02 2.725166825540e+01
4792 4.7900 -3.491807181925e-02 2.727082615610e+01
4793 4.7910 -3.501596305858e-02 2.728998405680e+01
4794 4.7920 -3.512482797539e-02 2.730914195750e+01
4795 4.7930 -3.524467205791e-02 2.732829985820e+01
4796 4.7940 -3.537550079710e-02 2.734745775890e+01
4797 4.7950 -3.551731968669e-02 2.736661565960e+01
4798 4.7960 -3.562447515738e-02 2.738581921936e+01
4799 4.7970 -3.557030036055e-02 2.740519511054e+01
4800 4.7980 -3.552713221180e-02 2.742457100172e+01
4801 4.7990 -3.549497621581e-02 2.744394689290e+01
4802 4.8000 -3.547383788007e-02 2.746332278408e+01
4803 4.8010 -3.546372271478e-02 2.748269867526e+01
4804 4.8020 -3.546463623293e-02 2.750207456643e+01
4805 4.8030 -3.547658395029e-02 2.752145045761e+01
4806 4.8040 -3.549957138532e-02 2.754082634879e+01
4807 4.8050 -3.553360405930e-02 2.756020223997e+01
4808 4.8060 -3.557868749623e-02 2.757957813115e+01
4809 4.8070 -3.563482722290e-02 2.759895402233e+01
4810 4.8080 -3.570202876885e-02 2.761832991351e+01
4811 4.8090 -3.578029766641e-02 2.763770580468e+01
4812 4.8100 -3.586963945065e-02 2.765708169586e+01
4813 4.8110 -3.597005965940e-02 2.767645758704e+01
4814 4.8120 -3.608156383327e-02 2.769583347822e+01
4815 4.8130 -3.620415751569e-02 2.771520936940e+01
4816 4.8140 -3.633784625278e-02 2.773458526058e+01
4817 4.8150 -3.648263559348e-02 2.775396115176e+01
4818 4.8160 -3.663853108950e-02 2.777333704293e+01
4819 4.8170 -3.680553829532e-02 2.779271293411e+01
4820 4.8180 -3.698366276821e-02 2.781208882529e+01
4821 4.8190 -3.717291006820e-02 2.783146471647e+01
4822 4.8200 -3.737328575814e-02 2.785084060765e+01
4823 4.8210 -3.758479540360e-02 2.787021649883e+01
4824 4.8220 -3.780744457295e-02 2.788959239001e+01
4825 4.8230 -3.804123883743e-02 2.790896828118e+01
4826 4.8240 -3.828618377095e-02 2.792834417236e+01
4827 4.8250 -3.854228495026e-02 2.794772006354e+01
4828 4.8260 -3.880954795491e-02 2.796709595472e+01
4829 4.8270 -3.908797836721e-02 2.798647184590e+01
4830 4.8280 -3.937758177228e-02 2.800584773708e+01
4831 4.8290 -3.957957452490e-02 2.802532241749e+01
4832 4.8300 -3.974758817894e-02 2.804484226117e+01
4833 4.8310 -3.992679159785e-02 2.806436210485e+01
4834 4.8320 -4.011719037798e-02 2.808388194853e+01
4835 4.8330 -4.031879011838e-02 2.810340179222e+01
4836 4.8340 -4.053159642095e-02 2.812292163590e+01
4837 4.8350 -4.075561489042e-02 2.814244147958e+01
4838 4.8360 -4.099085113428e-02 2.816196132326e+01
4839 4.8370 -4.123731076282e-02 2.818148116694e+01
4840 4.8380 -4.149499938916e-02 2.820100101062e+01
4841 4.8390 -4.176392262923e-02 2.822052085431e+01
4842 4.8400 -4.204408610175e-02 2.824004069799e+01
4843 4.8410 -4.233549542826e-02 2.825956054167e+01
4844 4.8420 -4.263815623311e-02 2.827908038535e+01
4845 4.8430 -4.295207414346e-02 2.829860022903e+01
4846 4.8440 -4.327725478927e-02 2.831812007271e+01
4847 4.8450 -4.326427121503e-02 2.833798934898e+01
4848 4.8460 -4.318214213860e-02 2.835793904476e+01
4849 4.8470 -4.311129270448e-02 2.837788874054e+01
4850 4.8480 -4.305172855393e-02 2.839783843631e+01
4851 4.8490 -4.300345533100e-02 2.841778813209e+01
4852 4.8500 -4.296647868257e-02 2.843773782786e+01
4853 4.8510 -4.294080425839e-02 2.845768752364e+01
4854 4.8520 -4.292643771098e-02 2.847763721942e+01
4855 4.8530 -4.286397271508e-02 2.849764632717e+01
4856 4.8540 -4.281097275619e-02 2.851765728908e+01
4857 4.8550 -4.276929764864e-02 2.853766825099e+01
4858 4.8560 -4.273895305633e-02 2.855767921290e+01
4859 4.8570 -4.271994464594e-02 2.857769017481e+01
4860 4.8580 -4.271227808696e-02 2.859770113672e+01
4861 4.8590 -4.271595905180e-02 2.861771209863e+01
4862 4.8600 -4.273099321563e-02 2.863772306054e+01
4863 4.8610 -4.275738625649e-02 2.865773402245e+01
4864 4.8620 -4.279514385525e-02 2.867774498436e+01
4865 4.8630 -4.284427169562e-02 2.869775594627e+01
4866 4.8640 -4.290477546417e-02 2.871776690818e+01
4867 4.8650 -4.297666085031e-02 2.873777787009e+01
4868 4.8660 -4.305993354627e-02 2.875778883200e+01
4869 4.8670 -4.315459924713e-02 2.877779979391e+01
4870 4.8680 -4.326066365087e-02 2.879781075582e+01
4871 4.8690 -4.337813245827e-02 2.881782171773e+01
4872 4.8700 -4.350701137295e-02 2.883783267964e+01
4873 4.8710 -4.364730610143e-02 2.885784364155e+01
4874 4.8720 -4.379902235305e-02 2.887785460346e+01
4875 4.8730 -4.396216584003e-02 2.889786556537e+01
4876 4.8740 -4.413674227742e-02 2.891787652728e+01
4877 4.8750 -4.432275738312e-02 2.893788748919e+01
4878 4.8760 -4.417831832665e-02 2.895824034966e+01
4879 4.8770 -4.396127996639e-02 2.897867725953e+01
4880 4.8780 -4.375569744537e-02 2.899911416941e+01
4881 4.8790 -4.356157649298e-02 2.901955107929e+01
4882 4.8800 -4.337892284145e-02 2.903998798917e+01
4883 4.8810 -4.320774222585e-02 2.906042489904e+01
4884 4.8820 -4.304804038419e-02 2.908086180892e+01
4885 4.8830 -4.289982305727e-02 2.910129871880e+01
4886 4.8840 -4.276309598883e-02 2.912173562868e+01
4887 4.8850 -4.263786492544e-02 2.914217253856e+01
4888 4.8860 -4.252413561652e-02 2.916260944843e+01
4889 4.8870 -4.242191381445e-02 2.918304635831e+01
4890 4.8880 -4.233120527440e-02 2.920348326819e+01
4891 4.8890 -4.225201575448e-02 2.922392017807e+01
4892 4.8900 -4.218435101566e-02 2.924435708795e+01
4893 4.8910 -4.212821682175e-02 2.926479399782e+01
4894 4.8920 -4.208361893952e-02 2.928523090770e+01
4895 4.8930 -4.205056313856e-02 2.930566781758e+01
4896 4.8940 -4.202905519136e-02 2.932610472746e+01
4897 4.8950 -4.201910087332e-02 2.934654163733e+01
4898 4.8960 -4.202070596273e-02 2.936697854721e+01
4899 4.8970 -4.203387624071e-02 2.938741545709e+01
4900 4.8980 -4.205861749136e-02 2.940785236697e+01
4901 4.8990 -4.209493550158e-02 2.942828927685e+01
4902 4.9000 -4.214283606128e-02 2.944872618672e+01
4903 4.9010 -4.220232496313e-02 2.946916309660e+01
4904 4.9020 -4.227340800278e-02 2.948960000648e+01
4905 4.9030 -4.235609097878e-02 2.951003691636e+01
4906 4.9040 -4.245037969256e-02 2.953047382624e+01
4907 4.9050 -4.255627994844e-02 2.955091073611e+01
4908 4.9060 -4.267379755367e-02 2.957134764599e+01
4909 4.9070 -4.280293831839e-02 2.959178455587e+01
4910 4.9080 -4.294370805566e-02 2.961222146575e+01
4911 4.9090 -4.309611258140e-02 2.963265837563e+01
4912 4.9100 -4.326015771449e-02 2.965309528550e+01
4913 4.9110 -4.343584927670e-02 2.967353219538e+01
4914 4.9120 -4.362319309274e-02 2.969396910526e+01
4915 4.9130 -4.382219499015e-02 2.971440601514e+01
4916 4.9140 -4.403286079952e-02 2.973484292501e+01
4917 4.9150 -4.425519635421e-02 2.975527983489e+01
4918 4.9160 -4.448920749060e-02 2.977571674477e+01
4919 4.9170 -4.473490004795e-02 2.979615365465e+01
4920 4.9180 -4.499227986844e-02 2.981659056453e+01
4921 4.9190 -4.526135279717e-02 2.983702747440e+01
4922 4.9200 -4.553410700018e-02 2.985747240196e+01
4923 4.9210 -4.540624135445e-02 2.987832965418e+01
4924 4.9220 -4.529008636982e-02 2.989918690640e+01
4925 4.9230 -4.518564790311e-02 2.992004415861e+01
4926 4.9240 -4.509293181406e-02 2.994090141083e+01
4927 4.9250 -4.501194396536e-02 2.996175866304e+01
4928 4.9260 -4.494269022257e-02 2.998261591526e+01
4929 4.9270 -4.488517645424e-02 3.000347316747e+01
4930 4.9280 -4.483940853182e-02 3.002433041969e+01
4931 4.9290 -4.480539232975e-02 3.004518767191e+01
4932 4.9300 -4.478313372535e-02 3.006604492412e+01
4933 4.9310 -4.477263859891e-02 3.008690217634e+01
4934 4.9320 -4.477391283365e-02 3.010775942855e+01
4935 4.9330 -4.478696231574e-02 3.012861668077e+01
4936 4.9340 -4.481179293429e-02 3.014947393299e+01
4937 4.9350 -4.462823233385e-02 3.017055136345e+01
4938 4.9360 -4.425810628802e-02 3.019182715228e+01
4939 4.9370 -4.389977906367e-02 3.021310294111e+01
4940 4.9380 -4.355325656165e-02 3.023437872995e+01
4941 4.9390 -4.321854468585e-02 3.025565451878e+01
4942 4.9400 -4.289564934305e-02 3.027693030761e+01
4943 4.9410 -4.258457644304e-02 3.029820609644e+01
4944 4.9420 -4.228533189849e-02 3.031948188527e+01
4945 4.9430 -4.199792162511e-02 3.034075767411e+01
4946 4.9440 -4.172235154149e-02 3.036203346294e+01
4947 4.9450 -4.145862756924e-02 3.038330925177e+01
4948 4.9460 -4.120675563291e-02 3.040458504060e+01
4949 4.9470 -4.096674166000e-02 3.042586082944e+01
4950 4.9480 -4.073859158101e-02 3.044713661827e+01
4951 4.9490 -4.052231132935e-02 3.046841240710e+01
4952 4.9500 -4.031790684146e-02 3.048968819593e+01
4953 4.9510 -4.012538405670e-02 3.051096398476e+01
4954 4.9520 -3.994474891743e-02 3.053223977360e+01
4955 4.9530 -3.977600736898e-02 3.055351556243e+01
4956 4.9540 -3.961916535961e-02 3.057479135126e+01
4957 4.9550 -3.947422884064e-02 3.059606714009e+01
4958 4.9560 -3.934120376627e-02 3.061734292893e+01
4959 4.9570 -3.922009609375e-02 3.063861871776e+01
4960 4.9580 -3.911091178329e-02 3.065989450659e+01
4961 4.9590 -3.901365679804e-02 3.068117029542e+01
4962 4.9600 -3.892833710420e-02 3.070244608426e+01
4963 4.9610 -3.885495867089e-02 3.072372187309e+01
4964 4.9620 -3.879352747029e-02 3.074499766192e+01
4965 4.9630 -3.874404947748e-02 3.076627345075e+01
4966 4.9640 -3.870653067059e-02 3.078754923958e+01
4967 4.9650 -3.868097703072e-02 3.080882502842e+01
4968 4.9660 -3.866739454195e-02 3.083010081725e+01
4969 4.9670 -3.866578919140e-02 3.085137660608e+01
4970 4.9680 -3.867616696907e-02 3.087265239491e+01
4971 4.9690 -3.869853386813e-02 3.089392818375e+01
4972 4.9700 -3.873289588459e-02 3.091520397258e+01
4973 4.9710 -3.877925901754e-02 3.093647976141e+01
4974 4.9720 -3.883762926904e-02 3.095775555024e+01
4975 4.9730 -3.890801264418e-02 3.097903133907e+01
4976 4.9740 -3.899041515104e-02 3.100030712791e+01
4977 4.9750 -3.908484280066e-02 3.102158291674e+01
4978 4.9760 -3.919130160717e-02 3.104285870557e+01
4979 4.9770 -3.930979758764e-02 3.106413449440e+01
4980 4.9780 -3.944033676219e-02 3.108541028324e+01
4981 4.9790 -3.958292515393e-02 3.110668607207e+01
4982 4.9800 -3.973756878896e-02 3.112796186090e+01
4983 4.9810 -3.990427369647e-02 3.114923764973e+01
4984 4.9820 -4.008304590857e-02 3.117051343856e+01
4985 4.9830 -4.027389146047e-02 3.119178922740e+01
4986 4.9840 -4.047681639032e-02 3.121306501623e+01
4987 4.9850 -4.069182673938e-02 3.123434080506e+01
4988 4.9860 -4.091892855185e-02 3.125561659389e+01
4989 4.9870 -4.115812787498e-02 3.127689238273e+01
4990 4.9880 -4.140943075908e-02 3.129816817156e+01
4991 4.9890 -4.167284325741e-02 3.131944396039e+01
4992 4.9900 -4.194837142634e-02 3.134071974922e+01
4993 4.9910 -4.223602132522e-02 3.136199553805e+01
4994 4.9920 -4.253579901644e-02 3.138327132689e+01
4995 4.9930 -4.284771056543e-02 3.140454711572e+01
4996 4.9940 -4.317176204065e-02 3.142582290455e+01
4997 4.9950 -4.350795951358e-02 3.144709869338e+01
4998 4.9960 -4.385630905874e-02 3.146837448222e+01
4999 4.9970 -4.421681675373e-02 3.148965027105e+01
5000 4.9980 -4.458948867913e-02 3.151092605988e+01
5001 4.9990 -4.497433091859e-02 3.153220184871e+01

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())