Skip to content

NSBH London 220 QNM input — 27 September 2026

The v1 specification was frozen in commit fedcae7 before native comparison. Its five complex polynomial terms come from London and Fauchon-Jones, Eq. (22), with the frequency and quality-factor conversions given by Thompson et al., Appendix A Eqs. (16)–(19). The independent scalar reference evaluates only those printed coefficients; it imports no native NSBH helper or LAL implementation.

On len, Linux x86-64 CPU FP64, the combined command PYTHONPATH=src:tests OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 JAX_ENABLE_X64=1 /home/xangma/.cache/diffgw-xp-pycbc-venv/bin/python -m pytest -q tests/test_nsbh.py tests/test_clean_room_nsbh.py tests/test_nsbh_phase_mass_regression.py tests/test_nsbh_explicit_phase_math_reference.py tests/test_nsbh_branch_reference.py tests/test_nsbh_london_qnm_math_reference.py passed 92/92 in 23.02 s, without skips or expected failures. Working directory: /home/xangma/tmp/diffgw-nsbh-london-qnm-20260927; log: nsbh-london-combined.log. Environment: Python 3.12.3, Torch 2.14.0+cpu, JAX 0.11.2, mpmath 1.3.0, pytest 9.1.1, with PyCBC installed for the strict LAL binary neighbor tests.

The 18 supplied remnant states passed the frozen 70/90-digit scalar stability limit 1e-50; both native backends passed the relative 3e-12 frequency and quality-factor limits, positivity, and inverse-mass scaling. The first neighboring run in a Python environment without PyCBC had 22 strict binary cases fail because their required optimized_match was unavailable; all 22 passed unchanged in the PyCBC-capable environment above. No gate or tolerance was relaxed.

This certifies implementation of the published London 220 fit at supplied final mass and spin. It does not qualify the remnant provider, the distinct PhenomD phase QNM interpolation, amplitude assembly, or whole waveform. Zappa and Jiménez-Forteza remnant tables print fewer coefficient digits than the native fits, so a published-precision interval gate remains a separate prerequisite.