Skip to content

IMRPhenomXAS complex-polarization binary gate — 27 September 2026

Result: The maintained FP64 Torch/JAX comparison passes 6/6 cases on len, with no skips or alignment. Across the three frozen systems, both complex polarizations agree with the pinned public LALSimulation binary on every nonzero binary sample at relative complex \(L_2 < 1.89\times10^{-13}\), below the predeclared \(10^{-10}\) gate. This qualifies the sampled, assembled carrier on the public waveform's support; it does not certify calibration provenance, the native caller's upper-frequency masking, parameter-space coverage, or physical accuracy against NR/hybrids.

The IMRPhenomXAS paper, Sec. V, Eqs. (64)–(65) states that the public LAL implementation uses an arbitrary upper cutoff at \(Mf=0.3\). The native carrier intentionally continues to evaluate above that limit. The test requests 20–512 Hz at \(\Delta f=0.125\) Hz and compares every sample with \(Mf<0.3\), without amplitude rescaling, phase or time adjustment, or sample selection based on residuals. It also asserts that the public binary is exactly zero at all requested bins beyond the published limit and nonzero at every bin inside it. For the 120 \(M_\odot\) negative-spin holdout, this boundary is 507.5636 Hz: the final compared bin is 507.5 Hz and the first zero binary bin is 507.625 Hz. If one compares the native uncut tail against those wrapper zeros, the raw full-grid relative complex \(L_2\) is \(9.49\times10^{-9}\) (local diagnostic), entirely from those 35 bins; this is a wrapper-contract difference, not a discrepancy in the nonzero carrier.

The frozen cases come from the oracle catalog and holdout builder:

Case \(m_1,m_2\) (\(M_\odot\)) \(\chi_1,\chi_2\) \(f_{\rm ref}\) (Hz) Inclination \(\phi_c\) Distance (Mpc) Last compared bin (Hz)
Catalog 35, 30 0.2, -0.3 20 0.6 0.4 500 511.875
Unequal positive 45, 20 0.35, 0.6 35 0.9 0.71 680 511.875
Unequal negative 90, 30 -0.4, -0.6 27 1.2 0.71 680 507.5
Backend Catalog \(h_+,h_\times\) Unequal positive \(h_+,h_\times\) Unequal negative \(h_+,h_\times\)
Torch 5.2594571e-14, 5.25902966e-14 3.87238823e-14, 3.87206571e-14 1.87198555e-13, 1.87215954e-13
JAX 4.52875487e-14, 4.52837366e-14 4.1805268e-14, 4.18020341e-14 1.88433315e-13, 1.88455793e-13

Only the public SimInspiralChooseFDWaveformSequence binary API was called. No LAL implementation source was inspected or translated, and no coefficient or threshold was fitted to the binary. The fixed physical mass conversion uses the independently audited SI/IAU constants.

On len, in ~/repos/diffgw-worktrees/xas-whole-waveform-gate, run:

JAX_ENABLE_X64=1 JAX_PLATFORMS=cpu DIFFGW_REQUIRE_LAL_BINARY=1 \
  .venv/bin/python -m pytest -q -s tests/test_imrphenomxas_lal_binary.py

The fresh Python 3.12.3 virtual environment used NumPy 2.5.3, SciPy 1.18.1, SymPy 1.14.0, Torch 2.14.0+cpu, JAX/JAXLIB 0.11.2, pytest 9.1.1, and the CI-pinned LALSuite 7.26.15. The test is also included in the pinned-binary CI job with missing oracle/backend dependencies treated as failures there. The focused run of this binary test together with tests/test_imrphenomxas_waveform_math_reference.py passed 99/99 on len.