TaylorF2 eccentric 3PN phase qualification (2026-09-27)
Claim and source
The executable claim is restricted to Moore, Favata, Arun and Mishra,
arXiv:1605.00304v2, Eq. (6.26):
the dominant-harmonic SPA eccentric phase at order (e_0^2), through relative
3PN. The separate native phase-origin convention subtracts that paper term
at an explicitly supplied positive f_ref; (e_0) remains defined at
f0_ecc. The component specification
records the equations, inputs and exclusions.
src/diffgw_reference/taylorf2_eccentric.py transcribes Eq. (6.26) as SymPy
rationals, π, Euler's constant and logarithms, then evaluates it using
mpmath at 80 decimal digits. It imports no Torch, JAX or LAL coefficients.
The only shared frontend value is the solar-mass-to-seconds unit conversion.
The paper polynomial includes mixed (v,v_0) powers and both 3PN logarithms;
the reference-frequency subtraction is a project convention, not a term of
Eq. (6.26).
Execution
Base commit: ab1faa158304b13c1651eb66ab3b26507f3b16c3.
Host: len (Linux x86_64); working directory:
/home/xangma/repos/diffgw-worktrees/eccentric-phase-reference.
Python 3.12.8; Torch 2.8.0+cu128, JAX 0.11.2, SymPy 1.13.3,
mpmath 1.3.0, NumPy 2.2.6 and pytest 8.3.4. JAX was forced to CPU
with 64-bit arithmetic; both backend test fixtures pass float64 inputs.
PYTHONPATH=src:tests JAX_ENABLE_X64=1 JAX_PLATFORMS=cpu \
/home/xangma/repos/diffgw-worktrees/kerr-angular-qualification/.venv/bin/python \
-m pytest -q tests/test_taylorf2_eccentric_math_reference.py \
tests/test_eccentric.py tests/parity/test_eccentric_parity.py \
--reference-device=cpu
Result: 162 passed in 22.37 s. The 44 new reference cases exercise
Torch and JAX separately over all six truncation orders, three mass and
eccentricity configurations, each PN increment, (e_0^2) scaling and zero,
and both complex polarizations at three distinct f0_ecc/f_ref relations.
No phase or time alignment is fitted. The existing eccentric behavior and
cross-frontend parity cases remain in the focused command as regressions.
The full CI math-reference invocation includes this new module through the
test_*math_reference*.py inventory in tests/conftest.py; with
--require-math-reference it rejects a skipped, expected-failure, missing,
or deselected reference case.
Boundary
This is sampled coefficient and gauge evidence, not independent full-model waveform verification or a physical accuracy claim. The circular carrier, spin-eccentric coupling, oscillatory eccentric terms, cutoffs, GPU/FP32 arithmetic, and optional amplitude multiplier remain outside this gate.