Skip to content

NRTidalv2 premerger complex-composition holdout — 27 September 2026

Frozen gate before binary evaluation

This checks the default binary_compatible IMRPhenomD_NRTidalv2 composition against the pinned public LALSuite 7.26.15 binary, plus the published nonspinning tidal phase against the independent scalar reference. It does not claim that the default tidal-amplitude normalization is paper-derived. The phase specification and amplitude/taper specification state that distinction and document the separate failed gates.

The untouched systems (m1,m2;Lambda1,Lambda2) in solar masses are (1.25,1.25;900,900), (1.48,1.22;600,250), and its body-exchanged copy. They are absent from the earlier NRTidalv2 component cases and the strict oracle holdout inventory. Frequencies are 30:10:1200 Hz; the test requires the published merger fit to place the entire grid before taper onset. The polarization and reference settings match the existing scalar/binary gates: h+, distance 100 Mpc, inclination 0.4 rad, reference frequency 30 Hz, zero orbital phase and time. CPU FP64 only.

The unaligned complex quotient is h+_BNS/h+_BBH, with each frontend's own IMRPhenomD carrier and the corresponding public-binary carrier. No phase or time shift, amplitude rescaling, or fit is allowed. The frozen limits are relative complex L2 at most 1e-6, maximum pointwise phase residual at most 1e-5 rad, and maximum absolute quotient-modulus residual at most 5e-5. The pinned binary and both native unit quotients must also agree with the independent Dietrich et al. (2019), Eqs. (17)–(21) scalar phase within 1e-5 rad. The complex ratio combines the tidal phase and default amplitude in one check instead of multiplying separate pass/fail summaries.

The test is tests/test_nrtidalv2_composed_holdout_lal_binary.py, selected by the pinned-binary CI job. It requires DIFFGW_REQUIRE_LAL_BINARY=1, JAX FP64, and the pinned LALSuite distribution; missing dependencies fail under that strict setting.

Result

PASS: 3/3 strict cases, no skips, xfails, or deselections. The thresholds and systems above were recorded before the first binary run. Each case checks both Torch and JAX against the public binary and the scalar phase reference.

System Printed-fit merger Hz Worst complex relative L2 Worst phase residual rad Worst quotient-modulus residual
Equal high tide 1819.55874 1.04399722e-7 3.40393584e-7 6.27390887e-8
Unequal mixed tide 1766.11592 8.20676659e-8 2.55607708e-7 4.48940485e-8
Exchanged mixed tide 1766.11592 8.20676659e-8 2.55607708e-7 4.48940485e-8

The largest pinned-binary versus independent paper-phase residual was 3.40393575e-7 rad; the largest native versus paper-phase residual was 2.1318057e-14 rad. The entire test grid is below all three printed-fit merger frequencies. This establishes named-binary agreement of the default nonspinning premerger complex tidal quotient on these holdouts, not a paper-grounded whole-model claim, a physical/NR validation, or agreement within the nonzero-tide taper. The unresolved amplitude-normalization provenance and previously failed high-frequency taper limits in the amplitude receipt remain unchanged.

The run used host len, cwd /home/xangma/tmp/diffgw-nrtidalv2-composed-20260927, Linux CPU FP64, Python 3.12.3, Torch 2.14.0+cpu, JAX 0.11.2, SymPy 1.14.0, NumPy 2.5.3, and pinned LALSuite 7.26.15. No LAL implementation source was inspected. The loaded public lalsimulation extension SHA-256 was e816879d23e652e8b3928496d6fd261de0832b5c3781c50e33a458042495b42e. The exact command was:

DIFFGW_REQUIRE_LAL_BINARY=1 JAX_ENABLE_X64=1 OMP_NUM_THREADS=1 \
PYTHONPATH=src:tests:/home/xangma/diffgw-pr45-318b37f7/.oracle-deps \
/home/xangma/.cache/diffgw-taylorf2-hm-venv/bin/python -m pytest -q -s \
  tests/test_nrtidalv2_composed_holdout_lal_binary.py

Output is in composed_holdout.log under that cwd. The command ran in the foreground and completed in 9.06 s; no remote process remains or stop command is needed. CI now selects this test in the pinned-binary job.

A follow-up strict focused run of the five existing phase/amplitude reference and public-binary modules together with this new module returned 84 passed, 18 strict xfailed in 31.78 s, with no skips. The 18 expected failures are the previously documented paper-D versus binary and nonzero-tide taper disagreements; none belongs to this new holdout. Its output is composed_focus.log in the same remote cwd.