NSBH remnant printed-precision interval — 27 September 2026
The six-section v1 specification
was frozen as commit a0904b2 before native Torch/JAX comparison. It
uses Jiménez-Forteza et al. (2017),
Eqs. (7)–(28) and Tables 1–4, 7–10, for the BBH final mass/spin, and
Zappa et al. (2019), Supplementary
Eqs. (4)–(6) and Table 1, for the NSBH correction. Each printed coefficient
is interpreted as a closed conventional round-to-nearest last-digit interval;
the independent scalar reference propagates these intervals by exact rational
arithmetic. This bounds possible missing digits under that declared printing
convention; it does not recover those digits or use LAL source/binary output.
The frozen cases (q, chi_BH, Lambda) = (3,0,2500), (3,0.5,2500),
(5,0.5,1000), (5,0.75,100), (5,0.75,2500) use m_NS=1.4, chi_NS=0,
and lie in Zappa's reported calibration ranges. For each case, source-only
interval arithmetic proved both tidal factors strictly below one, so native
extrapolation guards cannot affect this comparison. The upper bounds on the
mass/spin factors, and the resulting final mass/spin interval widths, are:
| Case | Factor upper bounds | Final mass width (\(M_\odot\)) | Final spin width |
|---|---|---|---|
| (3, 0, 2500) | 0.986386 / 0.969853 | 0.141473 | 0.016499 |
| (3, 0.5, 2500) | 0.983935 / 0.991051 | 0.155104 | 0.024938 |
| (5, 0.5, 1000) | 0.998851 / 0.996706 | 0.092735 | 0.012886 |
| (5, 0.75, 100) | 0.998414 / 0.999317 | 0.016482 | 0.006170 |
| (5, 0.75, 2500) | 0.980784 / 0.984092 | 0.184287 | 0.022871 |
On len, Linux x86-64 CPU FP64, in
/home/xangma/tmp/diffgw-nsbh-remnant-rounding-20260927, the focused command
PYTHONPATH=src /home/xangma/.cache/diffgw-xp-pycbc-venv/bin/python -m pytest -q
tests/test_nsbh_remnant_rounding_math_reference.py passed 5/5 in 4.64 s.
The neighboring ./run-neighbors.sh command passed 42/42 in 23.59 s;
its neighbor.log and neighbor.exit=0 are in the same scratch directory.
That suite covers remnant, London QNM, explicit phase, branch amplitude fits,
and joining frequencies. The environment was Python 3.12.3, Torch
2.14.0+cpu, JAX 0.11.2, pytest 9.1.1, with PyCBC available. Neither
backend skipped or xfailed. The native literal audit confirms every BBH/Zappa
fit coefficient rounds to its matching paper entry and the two dependent
BBH coefficients satisfy the printed Eq. (13)/(26) interval constraints.
The same frozen \(2\times10^{-12}\) absolute FP64 endpoint allowance was used
for all output comparisons; no tolerance or case changed after evaluation.
The intervals are deliberately conservative, and the reported widths show their practical resolution. Passing is implementation consistency with the published fit at printed precision, not a tight match to an unpublished coefficient vector. The Zappa extrapolation/fallback policy, remnant calibration against NR data, coefficient provenance beyond printed digits, derivatives, FP32, and remnant-driven whole-waveform composition remain open.