NRTidalv2 Pv2 tidal-mode normalization receipt — 27 September 2026
Result: The published Eq. (24) finite-size amplitude, converted from
face-on plus strain to the supplied positive-frequency (2,-2) mode and
projected at supplied angles, passed the independent scalar gate in Torch
and JAX CPU FP64. This is a conditional component result, not qualification
of a complete precessing BNS waveform.
The frozen specification
derives the factor 2/sqrt(5/(4 pi)) from the zero-angle positive-mode
projection in Pratten et al. (2020), Eqs. (11)–(13).
The signed Eq. (24) term follows Dietrich et al. (2019), Eqs. (22)–(25),
whose Eq. (22) substitutes luminosity for the effective distance of
Hotokezaka et al. (2016), Eqs. (15), (17), (24).
That cited definition includes inclination and detector response in effective
distance and therefore fixes the inherited coefficient as face-on plus
strain. The 80-digit scalar mode conversion and projection reference has
no native Torch/JAX or LAL import.
Three spinning, positive-Lambda systems, two angle sets, three live
frequencies, and an exactly zero post-taper bin are fixed in the maintained
test. Both complex polarizations and the supplied mode must match to
1e-10 pointwise relative to the nonzero tidal-amplitude/taper scale. The
zero-angle inclination law is a separate closed-form check. No alignment,
fitting, output rescaling, or LAL code was used.
Execution: host len, cwd
/home/xangma/tmp/diffgw-nrtidalv2-pv2-mode-20260927, Linux CPU FP64,
Python 3.12.3, Torch 2.14.0+cpu, JAX 0.11.2, mpmath 1.3.0, SymPy 1.14.0,
pytest 9.1.1. Read-only environment, process, and directory diagnostics
preceded copying this isolated checkout into owned scratch. The root
integration job observed on len was left alone. No package update was
needed. The validation command was:
PYTHONPATH=src:tests JAX_ENABLE_X64=1 OMP_NUM_THREADS=1 \
/home/xangma/repos/diffgw-worktrees/xas-whole-waveform-gate/.venv/bin/python -m pytest -q \
tests/test_nrtidalv2_pv2_tidal_mode_normalization.py \
tests/test_nrtidalv2_pv2_projection_math_reference.py \
tests/test_nrtidalv2_pv2_aligned_additive_terms_math_reference.py
Result: 15 passed in 14.03 s. The regression command in the same
environment ran tests/test_phenompv2_waveform_clean.py and
tests/test_phenompv2_sourceframe_clean.py: 24 passed, 1 skipped in
3.88 s. After a test-loop cleanup and documentation update, a final
combined run of all five test modules returned 39 passed, 1 skipped in
13.88 s. The skip is the existing optional LAL/PyCBC test. All background
SSH jobs completed; PIDs 343874, 360215, and 417858 no longer exist.
Their logs are pytest.log, pytest-pv2-regression.log, and
pytest-final.log in the scratch cwd.
The test was renamed on integration to
tests/test_nrtidalv2_pv2_tidal_mode_normalization_math_reference.py
so strict mathematical-reference CI collects it. The historical len
command above retains the filename used for that run.
The remaining gate is native Pv2 BNS assembly: a source-correct aligned
BBH carrier with the finite-size phase and amplitude inserted before
precession, plus the BNS angle and reference-frequency convention. This
receipt tests supplied angles and an additive tidal mode, not that whole
waveform. The Love–Q/Fig. 7 and printed merger-frequency/binary conflicts
remain open. Historical binary_compatible D behavior is unchanged.