DiffGW and related waveform packages
This page is a dated coverage map for DiffGW, LALSimulation, Ripple, PhenomXPy and GWFAST. It records named models and execution boundaries documented by each project; a shared name does not establish identical physics, conventions, parameter domains or validation. See differences from LAL for model-specific numerical and convention differences, validation for evidence, and performance for measured benchmark workloads.
Waveform coverage
Checked 22 September 2026; see sources and versions. The table covers DiffGW's catalog and selected alternatives, not every model in other packages. Entries identify named models or explicitly grouped variants. LAL denotes LALSimulation.
Legend
- ✓ (native): the package documents an implementation of the named model.
- ✓ + asset (native with an external asset): evaluation requires separately acquired model or calibration data.
- E (external wrapper): the package calls another library's implementation.
- - (not listed): the checked documentation does not name the variant; this does not establish that it is unsupported.
- ? (unverified): the documentation is insufficient to assign a status.
- W? (wrapper unverified): GWFAST documents a generic LAL interface, but support for this model and its options is unconfirmed.
These statuses describe documented availability, not accuracy or calibration. Notes below each group explain model-specific qualifications. For DiffGW's frontend scope and validation evidence, see the model catalogue.
Post-Newtonian
| Model or variant | DiffGW | LAL | Ripple | Phenom |
GWFAST |
|---|---|---|---|---|---|
TaylorF2 1 |
✓ | ✓ | ✓ | - | ✓ |
TaylorF2_HM 2 |
✓ | - | - | - | - |
TaylorF2_Eccentric 3 |
✓ | ✓ | - | - | ✓ |
- 1. Ripple: Native (tidal-capable). GWFAST: Native (
TaylorF2_RestrictedPN). - 2. DiffGW: Native (eight modes).
- 3. LALSimulation: Native (
TaylorF2Ecc). GWFAST: Native (eccentric option).
Aligned-spin IMR
| Model or variant | DiffGW | LAL | Ripple | Phenom |
GWFAST |
|---|---|---|---|---|---|
IMRPhenomD |
✓ | ✓ | ✓ | - | ✓ |
IMRPhenomHM |
✓ | ✓ | ✓ | - | ✓ |
IMRPhenomXAS |
✓ | ✓ | ✓ | - | - |
IMRPhenomXHM |
✓ | ✓ | ✓ | - | W? |
Tidal models
| Model or variant | DiffGW | LAL | Ripple | Phenom |
GWFAST |
|---|---|---|---|---|---|
IMRPhenomD_NRTidal |
✓ | ✓ | - | - | - |
IMRPhenomD_NRTidalv2 |
✓ | ✓ | ✓ | - | ✓ |
IMRPhenomNSBH |
✓ | ✓ | - | - | ✓ |
IMRPhenomXAS_NRTidalv2 |
- | ✓ | - | - | W? |
IMRPhenomXAS_NRTidalv3, IMRPhenomXP_NRTidalv3 |
- | ✓ | ✓ | - | W? |
Precessing IMR
| Model or variant | DiffGW | LAL | Ripple | Phenom |
GWFAST |
|---|---|---|---|---|---|
IMRPhenomP |
✓ | ✓ | - | - | W? |
IMRPhenomPv2 |
✓ | ✓ | ✓ | - | W? |
IMRPhenomXP, IMRPhenomXPHM |
✓ | ✓ | ✓ | - | W? |
| XPHM MSA, SpinTaylor and PNR options 4 | ✓ | ? | ? | - | W? |
- 4. DiffGW: Native (documented options). LALSimulation: Unverified (options not enumerated here). Ripple: Unverified (options not enumerated here).
Time-domain IMR
| Model or variant | DiffGW | LAL | Ripple | Phenom |
GWFAST |
|---|---|---|---|---|---|
IMRPhenomT, IMRPhenomTHM, IMRPhenomTP, IMRPhenomTPHM |
✓ | ✓ | - | ✓ | W? |
Effective-one-body
| Model or variant | DiffGW | LAL | Ripple | Phenom |
GWFAST |
|---|---|---|---|---|---|
SEOBNR_ROM, SEOBNRv4_ROM 5 |
✓ + asset | ✓ | - | - | W? |
SEOBNRv4HM, SEOBNRv4P, SEOBNRv4PHM |
- | ✓ | - | - | W? |
SEOBNRv4_ROM_NRTidalv2, SEOBNRv4_ROM_NRTidalv2_NSBH, SEOBNRv4T_surrogate |
- | ✓ | - | - | W? |
SEOBNRv5_ROM, SEOBNRv5HM_ROM, SEOBNRv5_ROM_NRTidalv3 |
- | ✓ | - | - | W? |
TEOBResumS |
- | ✓ | - | - | W? |
TEOBResumSPA |
- | - | - | - | E |
- 5. LALSimulation: Native (
SEOBNRv4_ROM).
NR surrogate
| Model or variant | DiffGW | LAL | Ripple | Phenom |
GWFAST |
|---|---|---|---|---|---|
NRSur4d2s, NRSur7dq4 |
- | ✓ | - | - | W? |
Ringdown and bursts
| Model or variant | DiffGW | LAL | Ripple | Phenom |
GWFAST |
|---|---|---|---|---|---|
KerrRingdown |
✓ | ? | - | - | - |
SineGaussian 6 |
✓ | ✓ | ✓ | - | - |
MemoryWaveform |
✓ | - | - | - | - |
- 6. LALSimulation: Native (burst routines). Ripple: Native (time domain).
Continuous waves
| Model or variant | DiffGW | LAL | Ripple | Phenom |
GWFAST |
|---|---|---|---|---|---|
ContinuousWave 7 |
✓ | ? | - | - | - |
ExactPulsarSignal, PulsarSignal, BinaryPulsarSignal 8 |
- | ? | ✓ | - | - |
- 7. Ripple: Not listed under this name.
- 8. DiffGW: Not listed under these names.
Specialized
| Model or variant | DiffGW | LAL | Ripple | Phenom |
GWFAST |
|---|---|---|---|---|---|
EMRIKludge, ParameterizedPostEinstein, HybridMECO |
✓ | ? | - | - | - |
The LAL column is based on the LALSimInspiral approximant API and LALSimulation module index. The Ripple column uses the project's current waveform catalogue. PhenomXPy's official repository documents the four T-family entries in its README. GWFAST's waveform documentation identifies its native Python models and its separate LAL and TEOBResumS wrappers.
Native does not mean the implementation is independent of published
calibration data. External identifies a runtime wrapper; it
also does not imply numerical equivalence. For all columns, omitted options,
modes, domains and derivative orders remain unverified.
TEOBResumSPA is a separately named frequency-domain
variant, not a claim of identical behavior to TEOBResumS.
Execution capabilities
Model coverage and execution capabilities are separate questions. The following summary records the interfaces documented on the same date; it does not infer support for every model in a package's catalogue.
| Package | Native execution interfaces | Batching and compilation | Differentiation and external boundaries |
|---|---|---|---|
| DiffGW | Native PyTorch (torchwave) and JAX (jaxwave) frontends under diffgw; frequency- and time-domain models are listed in the catalogue. |
Waveforms expose batch-shaped tensor evaluation. Supported paths document torch.compile and jax.jit; measured CPU/CUDA scope is in performance. |
Automatic differentiation is model- and path-specific. Native evaluation does not call LAL; ROMs and explicitly documented data assets remain external. See validation. |
| LALSimulation | LAL's documented high-level routines generate time- or frequency-domain waveforms for named approximants. | The checked API documents scalar waveform-generation entry points and sequence/grid variants; this page makes no blanket claim about tensor batching or autodiff. | No general native PyTorch/JAX autodiff interface is documented in the checked LAL pages. |
| Ripple | Differentiable JAX waveform functions; the current catalogue lists frequency-domain CBC models, time-domain bursts and continuous waves. | JAX execution supports compilation and accelerator use; see the project documentation. | Support depends on the model and transformed path. The current catalogue does not list the T family. |
| PhenomXPy | Python T, THM, TP and TPHM implementations, with time-domain and Fourier-transformed polarizations. | The README documents Numba CPU acceleration and CuPy GPU execution, parallelized over time samples. T/THM CPU timings compare it with DiffGW. | The README does not document a native PyTorch/JAX autodiff interface. |
| GWFAST | Vectorised Python waveform models plus detector/Fisher analysis; native model list is in the waveform documentation. | Native models are documented as vectorised; the package uses JAX for automatic differentiation. | LAL and TEOBResumS are explicit wrappers; the documentation states that derivatives through wrapped models use numerical differentiation. |
For DiffGW's actual model options, derivative order, device limits and unresolved cases, use the model catalogue, usage guidance and validation evidence. For LAL-reference differences, use the canonical differences-from-LAL page.
Related analysis and waveform projects
Jim provides JAX Bayesian inference using Ripple. Bilby and PyCBC provide analysis frameworks that integrate waveform providers. WF4Py supplies standalone Python waveform models associated with GWFAST. pySEOBNR, TEOBResumS and GWSurrogate are related model and data projects with their own calibration domains and assets.
Sources and versions
Coverage was checked on 22 September 2026. The DiffGW column describes this checkout; timing receipts separately pin their own source revision. The LAL approximant list is pinned to LALSuite 7.26 / LALSimulation 6.2.1; its module index is rolling documentation. Ripple's stable catalogue, PhenomXPy's main-branch README and GWFAST's latest documentation are moving targets. The GWFAST page identifies itself as 1.1.2. These are documentation observations, not fresh execution tests of every entry. Recheck sources when updating this table.
Published timing results are in Performance.
For detailed reference differences and reproduction commands, see Differences from LAL. The validation overview explains what each kind of evidence establishes.