Your free trial has ended.
Try the live demo or log in .
By: ValentinHirschi <valentin.hirschi@gmail.com>
Make real-mass four-mass D0 independent of the propagator labelling Four real masses take OneLOop's boxf4 (Denner-Nierste-Scharf) chart outside the contour box's timelike configurations. It depended on the labelling: in a sweep of 400 random real four-mass boxes (masses 1, 100, 6464.16, 8315.178393760001, 29929; integer invariants up to 2.5e5, 15% of them equal to a mass) in all 24 relabellings, scored against OneLOop 3.6's complex-mass route in quadruple precision extrapolated to vanishing widths, OneLOop 3.6 itself was wrong in 118 of the 6040 relabellings that took boxf4, and the expressions at 128 bits in 156 (54 boxes). The contour box was right in all. boxf4 is term by term eq. (3.61) of Denner and Dittmaier (arXiv:1005.2076), with OneLOop's r24 as their r20. That representation holds only when r24 is real and positive (its channel at or below the pseudo-threshold), which OneLOop does not arrange, and exactly real: OneLOop's p -> p (1 + i eps) gives r24 an imaginary part that moves x r12 / r24 across the cut of a negative r12 (the failures with both channels below their pseudo-thresholds). It also forms x r13 as a principal value and adds eta(x, r13) Log R, where OneLOop's phase-tracked three-factor products x r13 r_ij differ by multiples of (2 pi i)^2 (the failures with r13 negative or on the unit circle). Correcting only the root lips, or only relabelling, left most failures. box_four_masses_chart (expression; hand-written binary64 kernel four_masses_chart) is that representation: the first invariant at or below its pseudo-threshold (k >= 2: the channels, then the external lines) takes the p23 slot, p23 is static, x r13 is principal with its first-order lip, and eta and the side of a real Log R come from first-order p (1 + i eps) velocities. Every decision is exact: D = b^2 - 4ac is real (a multiple of the modified Cayley determinant), so with a real r13 the roots are real exactly when D >= 0, and with r13 on the unit circle (complex, or -1 or 1 at a threshold) R is real when D < 0 as well; at a threshold r13 moves along (r0 - i) sqrt(eps), off the unit circle, which decides that side. Boxes without such an invariant (every invariant above its pseudo-threshold and all four Kallen functions negative: no real momenta; OneLOop returns its error value even with widths) keep OneLOop's chart; complex masses are unchanged. In a model, eq. (3.61) and this chart were right in every relabelling of the sweeps below, and agreed with the expressions. Those last boxes were still labelling-dependent at 128 to 256 bits, in a few relabellings, on the native and expression routes: the continued dilogarithm's unit-circle test (sheet_exact::dilog_body, near_difference) signed 1 - x conj(x) itself, and Float evaluation can leave it a rounding- level imaginary part, which a sign test reports as negative; small arguments were then inverted, a 4 pi^2 jump on windings beyond -1, 0, 1. Both tests now sign the real part (C0 and D0 regenerated; binary64 and the hand-written kernels formed real norms already). Sweeps (OneLOop references as above; native with the hand-written kernels and 128-bit generated code, generated binary64, interpreted expressions at binary64 and 128 bits, SymJIT): three sweeps of 400 random boxes (one fresh) and the 144 real four-mass boxes of the recorded NinjaRS streams, each in all 24 relabellings: no wrong value (1e-9 at 128 bits, 1e-8 in binary64) and no labelling-dependent box at 128 bits (spread 1e-12) or in binary64, against 54/58/55 labelling-dependent boxes on main. A sweep with invariants at exact thresholds, pseudo-thresholds, on-shell values and zero: 12 labelling- dependent boxes at 128 bits instead of 34 (36 in binary64 instead of 49), none new; the rest are singular points, a vanishing invariant (contour and channel-exchange routes), or the contour box at 128 bits. tests/oracle_sweep.py (D0 seeds 1-4, C0 seeds 1-2, 300 points, native, generated and expression routes): C0 unchanged; D0 unchanged but for one box (2 rows of seed 4) with a channel at its threshold and a vanishing external invariant between equal masses, where OneLOop 3.6 gives 2.176 - 61.51 i in the 2 relabellings the sweep takes and 2.176 + 11.166 i in the other 22, as does its width limit and now every relabelling (row 17 of the test). Instructions per call on the recorded NinjaRS streams (in-process counters): D0 +0.10% over all 288 calls, at most +0.75% per stream (syn-gghhh-gHgHH-n5-r5); C0 +0.17%, at most +0.44% (its generated code takes one more real part). Tests: tests/d0_four_mass_orderings.rs checks 17 boxes (each mechanism, two thresholds, and three boxes above all pseudo-thresholds) in all 24 relabellings on every binary64 route, DoubleFloat, and native code and interpreted expressions at 128 bits (images agree to 1e-30). Native code regenerated (C0, D0); C0 and D0 SymJIT assets rebuilt. The suite passes (227 tests including rust_batch_codegen, 7 ignored). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>