fe550e3d

By: ValentinHirschi <valentin.hirschi@gmail.com>

Add the native rank-four bubble family TensorIntegral::B1111

NativeTensorEvaluator gains B1111 = [B0, B1, B11, B111, B1111] (arity 4,
5 coefficients, 15 outputs) for reductions with numerator rank n+2, on
every NativeFloat type, with a binary64 specialization. It is OneLOop's
bub1111 with the corrected mass-swap reconstruction
B1111 = B0' + 4B1' + 6B11' + 4B111' + B1111': OneLOop 3.4 and 3.6 negate
this sum in all three swap branches, not only at zero momentum.

Binary64: at 53 bits rank four needs 9 and 17 series coefficients at the
0.01 and 0.2 radii of the 8- and 16-coefficient tables, so rank four keeps
the tables with its own radii 0.0085 and 0.17. Its length is chosen apart
only when RANK == 4, the per-rank arrays of the B11/B111 kernels keep their
lengths (width parameters of Binary64::bubble), and the rank-four kernel is
out of line: the B11 and B111 kernels compile to the same instructions as
before, and their outputs are bitwise unchanged on every route.

Tests: tests/native_tensor_b1111.rs checks every route (binary64 kernels,
generic binary64, DoubleFloat, Float) against the exact b0..b1111
expressions, direct Feynman-parameter integrals per sector, a dyadic p²
ladder 2^-4..2^-24, the swap identity in every branch and both mass
orders, and B0..B111 bitwise equal to B111. tensor_feynman.txt gains a
B1111 column (the 595 existing rows unchanged) and 133 rank-four rows.
NATIVE_BACKEND.md and STATUS.md document the OneLOop sign bug, the
small-p² loss of the exact b1111 in fixed precision, and the use of the
native family for fixed-precision carriers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
GitHub
configure