Skip to content

XP v223 reference closure

Pratten et al., Appendix C Eq. (79b) sets the initial Euler opening angle equal to the geometric angle between \(J\) and \(L_0\). The strict equation-level reference-rotation check in tests/test_clean_room_precession_equations.py retains that identity for the published 101/102 prescriptions.

The explicit waveform_v223(..., boundary="v223") diagnostic follows a public-LAL compatibility path. Its MSA opening angle uses the nonconserved-spin \(259/72\) coefficient printed in Blanchet, Buonanno and Faye, Eq. (6.9). Pratten's Appendix G Eq. (123g) instead prints \(427/72\) in a different conserved-spin orbital-momentum series. The \(259/75\) coefficient used for v223 source-frame geometry is a compatibility value inferred from the public implementation; it is not stated by either paper. These expressions must not be conflated as one published equation.

For the test binary \((m_1,m_2)=(40,20)\,M_\odot\), \(\boldsymbol\chi_1=(0.3,0.2,0.4)\), \(\boldsymbol\chi_2=(0,0,-0.2)\), \(f_\mathrm{ref}=40\) Hz, \(\iota=0.7\), and \(\phi_\mathrm{ref}=0.3\), public LAL XP/XAS has a reference-frequency complex strain ratio differing from unity by \(1.4757043\times10^{-6}\) in plus and \(1.9991717\times10^{-6}\) in cross. The explicit v223 Torch helper reproduces the public ratio to about \(3\times10^{-15}\). At the reference frequency, its XAS carrier with the same v223 MSA remnant override used by the clean XP composition agrees with the ordinary XAS carrier and public LAL XAS to within \(2\times10^{-12}\); remnant choice does not explain the ratio. tests/test_xp_aligned_boundary_clean.py compares the two complex ratios directly, with absolute tolerance \(2\times10^{-12}\), while the independent equation-level rotation check remains strict. This distinguishes the published frame identity from the v223 compatibility behavior without silently broadening the former's tolerance.

Physical zero-nutation continuation (2026-09-24)

The public Torch XP v223 route now selects a continuous opening angle when at least one spin has zero transverse components. For \(\mathbf S=(m_1/M)^2\boldsymbol\chi_1+(m_2/M)^2\boldsymbol\chi_2\), \(S_\parallel=\mathbf S\cdot\hat{\mathbf L}\), and \(S_\perp=|\mathbf S-S_\parallel\hat{\mathbf L}|\), it evaluates \(\cos\beta=(L_\beta+S_\parallel)/ \sqrt{(L_\beta+S_\parallel)^2+S_\perp^2}\). This is Pratten et al., Eq. (17) with the native nonconserved-spin 3PN \(L_\beta\); its strict aligned limit is \(\beta=0\) if \(L_\beta+S_\parallel>0\), or \(\pi\) if the sum is negative. At vanishing total \(J\), the geometric opening angle is undefined. The v223 auxiliary-root separation is retained for its compatibility diagnostic but is not inserted into this physical transverse spin.

The independent scalar reference specializes the Chatziioannou et al. MSA invariants, Eqs. (41), (45), and (171) to the constant-spin, one-spin-aligned branch. With \(L_0=\eta/v_\mathrm{ref}\), it obtains \(S_\mathrm{av}=|\mathbf S|^2\) and \(c_1=\eta S_\parallel\), then evaluates \(\beta=\operatorname{atan2}(S_\perp,L_\beta+S_\parallel)\) without small-angle cancellation. The caller supplies \(L_\beta\), so the reference does not silently equate Newtonian and 3PN orbital angular momentum. The nonpublic JAX kernel implements these invariants separately; its frequency-grid convenience adapter explicitly uses Newtonian \(L=\eta/v\). The scalar tests and JAX tests check exact and tiny transverse spins, reversed \(J\), zero-\(J\) handling, JIT, batching, and selected derivatives. They establish this opening-angle component independently of either waveform frontend; they do not establish physical validation.

The Torch XP adapter uses boundary="physical" for its supported v223/convention 0, 1, or 6, final_spin_mod=3 clean route. It passes the Appendix C observer azimuth as phic-phi0; convention 6 applies its output phase after projection. Valid unequal-mass generic two-spin inputs at nonzero phi0 now use that same clean chart. Opposed-\(J\) rows retain the existing guard. The physical limit is a scoped XP behavior, not a claim of complete precession-domain or LAL parity.

The public JAX XP adapter selects the constant-spin MSA limit when either spin has exactly zero transverse components, for v223, conventions 0/1/6, and final_spin_mod=3. Its intrinsic kernel uses the constant-spin reduction of Chatziioannou et al., Eqs. (41), (45), (65) and Appendices D/F for secular angles and the MSA remnant prescription. The opening uses the unsplit Pratten Eq. (17) spin vector above. The projection combines the source geometry from Pratten Appendix C, the quadrupole rotation from Eqs. (8)–(13), and the declared v223/Table-IV chart choices. Public phic-phi0 supplies the source azimuth, and convention 6 rotates the completed strain by \(e^{2i\,\mathrm{phic}}\). Valid unequal-mass generic two-spin rows use the distinct-root MSA route at either observer azimuth; opposed-\(J\) rows retain inherited JAX behavior. Zero-frequency bins are evaluated at a safe positive frequency and then masked to zero.

The JAX public-route tests compare selected complete complex polarizations with the Torch physical route, including exact and tiny transverse spin, mass exchange, equal mass, nonzero phi0, conventions 0/1/6, zero bins, batching, JIT, and a selected gradient. The intrinsic tests separately compare secular angles and remnant with Torch and the physical opening with the scalar reference. These checks verify the scoped JAX implementation against its declared equations and Torch composition; they do not qualify generic two-spin dispatch or establish physical accuracy.

The same endpoint must also satisfy the minimal-rotation relation \(d\gamma=-\cos\beta\,d\alpha\) in Pratten et al., Eq. (7). At \(\beta=0\), \(\alpha+\gamma\) is constant. The auxiliary-root v223 angles instead accumulate a nonzero aligned \(\alpha+\gamma\) drift. The public physical route removes the aligned same-series drift, anchored at the angle reference frequency, and makes its final spin tend to the XAS aligned fit. The scalar reference specifies the exact Eq. (7) endpoint, while the Torch test checks the production angles against it. The XAS carrier preserves an omitted f_ref as None; the angle kernel still uses its 20 Hz default.

To continue this correction into small one-spin transverse values, its weight is \(\Delta/(\Delta+T)\), where \(\Delta=10^{-9}\) is the existing v223 auxiliary \(S^2\) root gap and \(T=\sum_i(m_i/M)^4(\chi_{ix}^2+\chi_{iy}^2)\). This is a numerical regularization of the auxiliary-root artifact, not an independent published waveform equation. It approaches one at alignment and zero as the physical transverse spin resolves the root gap. In the \((36,22)M_\odot\), \((\chi_{1z},\chi_{2z})=(0.35,-0.25)\) test, exact XP/XAS complex-strain maximum relative differences are below \(5\times10^{-15}\) for omitted, 20 Hz, and 40 Hz f_ref. The one-spin \(\chi_{1x}=10^{-8}\) and \(10^{-10}\) relative L2 differences from exact alignment are about \(2.1\times10^{-9}\) and \(2.7\times10^{-11}\), respectively. A finite one-spin \(\chi_{1x}=0.3\) retains a \(1.13\times10^{-8}\) L2 difference from the pinned LAL diagnostic.

In the aligned convention-6 test, the explicit v223 helper retains its strict same-option LAL gate, while the public physical route differs from the pinned v223 LAL output by about \(0.117826\) relative complex-polarization L2 for that fixture. This is the intentional consequence of enforcing the paper's aligned minimal-rotation identity; the legacy binary oracle has a nonzero aligned angle drift. The older reference-frequency XP/XAS ratio above remains evidence for the explicit binary-compatibility helper, not a paper-derived prediction for the physical boundary.

This endpoint correction covers zero-nutation rows with at least one exactly aligned spin. It does not establish a generic two-spin near-aligned limit. Chatziioannou et al., Eqs. (21)--(25) and Appendix B derive the cubic in \(S^2\), distinguish the two physical turning roots from the third algebraic root, and order the roots in the elliptic solution. Their Appendix E explains that a PN expansion can become ill-behaved near spin-orbit alignment even when the underlying precession frequency is finite, and suggests a small-misalignment expansion as a possible improvement. Thus a generic small-spin fix requires more than forcing the aligned waveform when the cubic roots nearly coincide.

The \((36,22)M_\odot\), \((\chi_{1z},\chi_{2z})=(0.35,-0.25)\) fixture is also an up-down system. Gerosa et al. give its physical instability band as \(r_{\mathrm{ud}\pm}/M=(\sqrt{\chi_1}\pm\sqrt{q\chi_2})^4/(1-q)^2\), with \(q=m_2/m_1\). The upper edge is \(r/M=6.16079\), or approximately \(72.865\) Hz using the Newtonian relation \(r/M=(\pi M f_{22})^{-2/3}\). This estimate is a physical context, not an XP numerical validity cutoff. On len, the generic two-spin \((\chi_{1x},\chi_{2x})=(10^{-10},-5\times10^{-11})\) waveform differs from the exact-aligned waveform by about 0.0245 relative L2 over 25--55 Hz, entirely before that edge. The pre-band discrepancy shows a phase/chart conditioning problem independently of the physical instability; shrinking the transverse spins to \(10^{-11}\) does not remove it. Even for both spins aligned with the orbit, a generic two-spin row has a nonvanishing small-spin waveform difference over 25--60 Hz, so this is not solely an up-down effect. As a narrower stable control, with both aligned spin components positive the two-spin waveform at its 40 Hz reference point approaches its aligned value: the relative difference is \(2.36\times10^{-11}\) at transverse scale \(10^{-10}\) and ten times smaller at \(10^{-11}\). Anchoring the phase at one frequency does not establish broadband continuity.

Across 25--300 Hz the up-down difference rises to about 0.13. An independent 90-digit evaluation of the published cubic for this fixture finds two roots near \(S^2=0.00977535\) separated by about \(6.89\times10^{-21}\) at \(\chi_{1x}=10^{-10}\), \(f_{22}=40\) Hz; they are the upper pair there. At 300 Hz the near-coincident pair is the lower pair and the third root is approximately 0.0282781. This ordering change is inside the predicted up-down instability region; physical growth of a perturbation and numerical root/angle-chart effects cannot be separated by an XP/XAS comparison alone. The two strict expected-failure cases in test_xp_two_spin_near_aligned_continuity_pending record both frequency regimes. They are not evidence of a generic continuity theorem or a sourced root-branch repair.

Executable generic-boundary diagnosis (2026-09-25)

The independent xp_msa_generic_boundary.py now evaluates the Appendix-B cubic with a private arbitrary-precision context. It returns the raw depressed-cubic inverse-cosine argument, all three roots, the unclipped Eq. (23) phase fraction, elliptic parameter, branch-signed initial phase, and polynomial residuals. It imports neither Torch nor JAX and does not insert an auxiliary separation. For a coplanar state, Eq. (24)'s vanishing triple product makes the state an exact turning point; the scalar uses that identity only to evaluate the endpoint elliptic integral and still reports the raw quotient. This distinction prevents a working-precision overshoot from being mistaken for a physical clamp.

For the up-down fixture at 40 Hz, the scalar gives the following derived conditioning laws as the common transverse scale \(x\) tends to zero:

\(x\) \(S_+^2-S_-^2\) \(1+a_{\mathrm{acos}}\)
\(10^{-4}\) \(6.89448368434\times10^{-9}\) \(3.29691982458\times10^{-13}\)
\(10^{-6}\) \(6.89448597569\times10^{-13}\) \(3.29692523779\times10^{-21}\)
\(10^{-8}\) \(6.89448597591\times10^{-17}\) \(3.29692523833\times10^{-29}\)
\(10^{-10}\) \(6.89448597591\times10^{-21}\) \(3.29692523833\times10^{-37}\)

Thus the physical split is approximately \(0.689448597591491x^2\), while the cubic endpoint distance is approximately \(3296.92523832641x^4\). This is a fixture-specific derivation, not a new MSA equation. It explains why the endpoint argument becomes unresolvable in float64 before the turning-root split vanishes. The paired Torch and JAX diagnostics expose the raw argument and separately label the clipped compatibility roots. Their tests require parity where float64 resolves the cubic and require the unresolved \(10^{-10}\) discrepancy to remain visible. They do not alter waveform dispatch.

The same scalar evaluates Pratten Appendix C Eqs. (67)--(85) with the orbital angular momentum supplied by the caller. It deliberately reports \(\phi_J\) as undefined when \(J_x=J_y=0\). For the tiny generic perturbation, the chart instead has the finite directional limit \(\alpha_0\to\pi/2+\phi_\mathrm{ref}\), \(\phi_J\to0\), while the spin-2 polarization basis remains continuous. A fallback such as \(\phi_J=\pi/2-\phi_\mathrm{ref}\) at exact alignment is therefore a chart compatibility choice, not an equation supplied by Appendix C. The generic Torch/JAX projection tests now include source phase \(-0.1\), corresponding to the candidate phic-phi0 coordinate for phic=0.3, phi0=0.4. That cross-frontend result validates the diagnostic source coordinate; it does not by itself validate replacing the public generic nonzero-phi0 route. The subsequent full frame-map and public-binary comparison below closes that specific azimuth gap.

The published near-alignment literature does not close this gap by supplying a limiting form of the generic MSA solution. Klein, Cornish and Yunes (2013) construct a separate waveform by expanding every angular-momentum component in a misalignment parameter \(\epsilon\) (their Eqs. (32), (43)--(45)) and retaining the transverse solution through \(O(\epsilon)\) as two harmonic precession modes. That construction is a different perturbative model: it does not derive a replacement for the Chatziioannou \(S^2\) turning roots, elliptic initial phase, or the Pratten Appendix-C source chart. Importing it only at the v223 boundary would therefore define a new hybrid waveform and matching prescription, not implement a published continuation of the v223 equations.

The newer \(\delta\chi\) formulations resolve a different singular limit. Klein (2021), Eqs. (11), (37)--(39) reparameterizes the conservative solution so the turning roots remain regular at equal mass, but its inertial-frame azimuth still contains \(1/\sin^2\theta_L\) and is undefined at exact alignment. Gerosa et al. (2023), Eqs. (29)--(34) likewise identifies the two smaller \(\delta\chi\) roots as the physical turning points and the largest as spurious, giving a robust root-solving strategy. It also states that the relative spin azimuth is ill-defined when either spin is aligned and that a formal Taylor expansion of the zero-amplitude resonance limit remains future work. These results support a separately implemented precession solver; they do not provide the missing scalar v223 root/phase/chart continuation.

The papers do not specify a float64 small-misalignment expansion that preserves the generic MSA branch through the root reordering. Pratten's minimal-rotation Eq. (7) fixes the exact aligned endpoint, while Chatziioannou Appendix E identifies the near-aligned PN expansion as ill-conditioned and suggests a dedicated expansion. Substituting Eq. (51), clipping the cubic argument, or forcing the aligned chart is therefore not a sourced generic continuation.

The boundary qualification adopts the narrower behavior that Pratten et al. state for failed MSA initialization: use the established NNLO prescription. Production now applies the existing MSA root-validity result at the reference frequency before selecting the distinct-root clean kernel. Invalid coalescing-root rows use the inherited NNLO angle route. Generic equal-mass rows use that same angle fallback. The final-spin option remains independent: explicit mode 3 raises when its nonaligned MSA averaged-remnant root is invalid, while explicit mode 0 supplies the continuous NNLO remnant. This introduces neither a new numerical threshold nor an oracle-fitted coefficient and does not claim an MSA continuation. A later frame-map derivation routes valid unequal-mass generic nonzero-phi0 rows through the clean chart.

Generic nonzero-azimuth frame map (2026-09-26)

Pratten et al., Appendix C Eqs. (67)--(68), (76)--(85), Appendix B Eq. (63), Appendix E Eqs. (110)--(113), and Appendix F Table IV specify the source observer, J frame, Euler/polarization geometry, quadrupole twist-up, and convention phases. We derive, rather than quote, the mapping from diffGW's additional observer azimuth to the public binary: rotate both in-plane spins by Rz(-phi0), use binary phiRef=phic, then multiply both completed quadrupole polarizations by exp(-2i phi0) for conventions 0/1/6. The mpmath scalar Appendix-C chart verifies the rotation; Torch and JAX complete polarizations verify covariance, and the installed public LAL binary verifies the mapped full waveform. No LAL implementation or calibration coefficient enters production.

For the declared 35/25-Msun, two-spin, phi0=0.4, v223/mode-3 fixture on 20--512 Hz at 0.25 Hz, direct unshifted plus/cross complex relative L2 against LALSuite 7.26.15 is at most 1.145e-13 / 1.125e-13 across conventions 0/1/6; flat mismatch is at most 1e-15. The unchanged strict gates pass. This closes the scoped generic-azimuth binary comparison; it does not repair the equal-mass MSA-remnant or near-aligned v223 binary gaps.

For the up-down fixture above, the corrected Torch/JAX waveform residuals are below \(3.21\times10^{-14}\) relative L2 across both tested bands, while the tiny-spin waveform is below \(4.35\times10^{-11}\) from exact alignment. The former expected-failure continuity cases are therefore strict passing tests at the unchanged \(10^{-6}\) threshold. These are internal paper-route and cross-frontend results, not external release qualification: the installed LAL binary follows a different boundary behavior and fails the strict full-complex waveform gate, as recorded by scripts/qualify_xp_xphm_boundaries.py.

The executable gates are in test_xp_v223_generic_boundary_math_reference.py. They were run on host len under Python 3.12.3 with NumPy 2.5.3, mpmath 1.3.0, SciPy 1.18.1, Torch 2.14.0+cpu, JAX/JAXLIB 0.11.2, pytest 9.1.1, LALSuite 7.26.15 (LAL 7.7.1, LALSimulation 6.2.1). The LAL packages were used only as pinned black-box waveform oracles in existing tests; no LAL source was consulted for this derivation.