Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
537 commits
Select commit Hold shift + click to select a range
758762c
adjust fring and fdamp calculation
narolaharsh Jan 24, 2026
9a148c5
further refactoring
narolaharsh Jan 24, 2026
6daf0a6
further refactoring
narolaharsh Jan 24, 2026
c08b912
further refactoring
narolaharsh Jan 24, 2026
e00de74
reafactor amplitude
narolaharsh Jan 24, 2026
be4eb11
checkpoint
narolaharsh Jan 24, 2026
8221f2d
refactor phase
narolaharsh Jan 24, 2026
aa55c28
Move functions outside the class
narolaharsh Jan 24, 2026
8000cf0
remove redunduncy
narolaharsh Jan 24, 2026
1aeaba4
jit decorator
narolaharsh Jan 24, 2026
36dbc8a
remove kwargs
narolaharsh Jan 24, 2026
68613b5
reference frequency adjust
narolaharsh Jan 24, 2026
65f18b5
adjust fcutPar
narolaharsh Jan 24, 2026
5ce2fa1
Make hphc a function
narolaharsh Jan 24, 2026
9674739
XPHM checkpoint
narolaharsh Jan 24, 2026
b81eb02
jitting hphc function
narolaharsh Jan 24, 2026
7a5f950
Jitted co-precessing waveforms hlm
narolaharsh Jan 24, 2026
bcc013a
Update testing script
Jan 24, 2026
ac62d0a
deps: bump pymdown-extensions from 10.20 to 10.20.1
dependabot[bot] Jan 26, 2026
f0b504b
Merge pull request #76 from GW-JAX-Team/dependabot/pip/ripple-dev/pym…
thomasckng Jan 26, 2026
6794ff0
deps: bump mkdocstrings[python] from 1.0.1 to 1.0.2
dependabot[bot] Jan 26, 2026
9afe2d1
Merge pull request #77 from GW-JAX-Team/dependabot/pip/ripple-dev/mkd…
thomasckng Jan 26, 2026
f17f96b
jit twist up function
narolaharsh Jan 27, 2026
9cdfac0
Explicit argument to the phiz_MSA and move functions to initialise_MS…
narolaharsh Jan 27, 2026
b4b29fa
move function to initialise_MSA*py script
narolaharsh Jan 27, 2026
60a9a91
pass explicit args instead of pPrec
narolaharsh Jan 27, 2026
dcecc4b
IMRPhenomX_JNorm_MSA adjustments
narolaharsh Jan 27, 2026
02958f5
psi_dot_MSA adjustments
narolaharsh Jan 27, 2026
588826f
psi_MSA adjustments
narolaharsh Jan 27, 2026
e6b4bbf
constants_c and constants_d adjustments
narolaharsh Jan 27, 2026
8736a6f
constants_c and constants_d adjustments
narolaharsh Jan 27, 2026
0b71d88
IMRPhenomX_Return_Spin_Evolution_Coefficients_MSA adjustments
narolaharsh Jan 27, 2026
99e59ba
remove unused variables
narolaharsh Jan 27, 2026
84bd039
IMRPhenomX_Return_Roots_MSA adjustments
narolaharsh Jan 27, 2026
f5a7f72
update IMRPhenomX_Get_PN_tau, beta and sigma
narolaharsh Jan 27, 2026
36752c0
update IMRPhenomX_Get_PN_tau, beta and sigma
narolaharsh Jan 27, 2026
fcf2468
Comment out dead code
narolaharsh Jan 27, 2026
eb6607e
compute_psi0 updated
narolaharsh Jan 27, 2026
a25afb1
compute_psi0 updated
narolaharsh Jan 27, 2026
f74d321
Adapting IMRPhenomX_Return_phi_zeta_costhetaL_MSA
narolaharsh Jan 27, 2026
63c33a7
avoid overwriting array
narolaharsh Jan 27, 2026
d8ba3ba
update constants_L calculation
narolaharsh Jan 27, 2026
1cdeecf
S1L and S2l adjustments
narolaharsh Jan 27, 2026
c617efd
remove dead code
narolaharsh Jan 27, 2026
57a26ae
remove dead code
narolaharsh Jan 27, 2026
315227c
remove pPrec.qq
narolaharsh Jan 27, 2026
f14b4f0
cleaning up
narolaharsh Jan 27, 2026
2156985
cleaning up
narolaharsh Jan 27, 2026
306b5c3
Pass arguments explicitly
narolaharsh Jan 27, 2026
6ee6e49
partially removing setattr
narolaharsh Jan 27, 2026
90d5aaa
partially removing setattr
narolaharsh Jan 27, 2026
06dacea
partially removing setattr
narolaharsh Jan 27, 2026
e134b2f
partially removing setattr
narolaharsh Jan 27, 2026
c275128
partially removing setattr
narolaharsh Jan 27, 2026
cae5be5
partially removing setattr
narolaharsh Jan 27, 2026
49c5729
partially removing setattr
narolaharsh Jan 27, 2026
19a1732
adjust g0
narolaharsh Jan 27, 2026
ae8edf2
adjust g2
narolaharsh Jan 27, 2026
a89342f
adjust all g
narolaharsh Jan 27, 2026
223df70
adjust all psi0 psi1 psi2
narolaharsh Jan 27, 2026
8875bd9
adjust all psi0 psi1 psi2
narolaharsh Jan 27, 2026
e05dc16
remov deadcode
narolaharsh Jan 27, 2026
9b28f3e
update flag_222_223_twoPN_non_spinning_orbitan_angular_momentum
narolaharsh Jan 27, 2026
b9ab848
update flag_222_223_twoPN_non_spinning_orbitan_angular_momentum
narolaharsh Jan 27, 2026
db412e7
adjust offset
narolaharsh Jan 27, 2026
b41ad67
reduce dependency on pPrec
narolaharsh Jan 28, 2026
6fb6748
remove post_init spherical harmonics computation
narolaharsh Jan 28, 2026
f3f7bcf
remove post_init spherical harmonics computation
narolaharsh Jan 28, 2026
e90cd81
remove convention 5-7 function
narolaharsh Jan 28, 2026
634e196
remove wrapper function
narolaharsh Jan 28, 2026
09c8b4d
Move vanlges inside pPrec
narolaharsh Jan 28, 2026
46964d2
Move vanlges inside pPrec
narolaharsh Jan 28, 2026
220f636
Move vanlges inside pPrec
narolaharsh Jan 28, 2026
7027017
Remove commented out code
narolaharsh Jan 28, 2026
b7861d0
add functions for thetaJN and kappa
narolaharsh Jan 28, 2026
5840903
reduce dependency on pPrec
narolaharsh Jan 28, 2026
8f6592b
reduce dependency on pPrec
narolaharsh Jan 28, 2026
e99bcd0
reduce dependency on pPrec 2
narolaharsh Jan 28, 2026
4e40f7c
Remove eta powers
narolaharsh Jan 28, 2026
9c4082d
adjust constants_L
narolaharsh Jan 28, 2026
c9fa04b
SAv update
narolaharsh Jan 28, 2026
2d16cf2
mass ratio update
narolaharsh Jan 28, 2026
f060318
adjust psi
narolaharsh Jan 28, 2026
76b119b
complete
narolaharsh Jan 28, 2026
00de9e9
minor changes
narolaharsh Jan 28, 2026
80b8853
removing self from IMRPhenomX_Initialize_MSA_System
narolaharsh Jan 28, 2026
799a2c2
remove setattr from IMRPhenomX_Initialize_MSA_System
narolaharsh Jan 28, 2026
9d4e168
Add params to IMRPhenomX_Initialize_MSA_System
narolaharsh Jan 28, 2026
e5def23
Add spins to IMRPhenomX_Initialize_MSA_System
narolaharsh Jan 28, 2026
b79b373
Adjust reference frequency
narolaharsh Jan 28, 2026
08cd626
refactor some code
narolaharsh Jan 28, 2026
d516261
replace the spin norm computation with a function
narolaharsh Jan 28, 2026
1a2c0e7
remove pPrec dependency from IMRPhenomX_Initialize_MSA_System
narolaharsh Jan 28, 2026
8b7c4cd
Add jit decorator to IMRPhenomX_Initialize_MSA_System utils
narolaharsh Jan 28, 2026
d8f1dc6
force all output to float
narolaharsh Jan 28, 2026
036d363
remove empty fields
narolaharsh Jan 28, 2026
980cf62
cleaning up init=False fields
narolaharsh Jan 28, 2026
1d516c5
broken code
narolaharsh Jan 28, 2026
7c921a1
borken code checkpoint
narolaharsh Jan 28, 2026
ec5ac44
XPHM implementation without classes
narolaharsh Jan 28, 2026
6953e3c
remove pPrec dependency
narolaharsh Jan 28, 2026
6018cb2
get rid of pWF for precession
narolaharsh Jan 28, 2026
5d9a4f7
Stable XPHM
narolaharsh Jan 28, 2026
0773126
move twist up outside the class
narolaharsh Jan 28, 2026
4e3d8ea
Pure python function implementation of IMRPhenomXPHM
narolaharsh Jan 28, 2026
928c719
Script to time XPHM
Jan 28, 2026
56f5f1e
testing speed-up
Jan 28, 2026
6c567a2
Test gpu timing script
Jan 28, 2026
17f9a0d
Timing script
Jan 28, 2026
c52f14b
Update xphm unit test
narolaharsh Jan 28, 2026
0572b2d
Reasonable looking HM phase and amplitude
robkamcha Feb 3, 2026
38c2f2c
Working IMRPhenomHM implementation
robkamcha Feb 5, 2026
7ba757b
Merge pull request #80 from GW-JAX-Team/XP-HM_close_to_LAL-rc
narolaharsh Feb 6, 2026
0afda1d
deps: bump mkdocstrings from 1.0.1 to 1.0.2 and pymdown-extensions fr…
thomasckng Feb 6, 2026
7c6fd04
ci: add Renovate config
thomasckng Feb 9, 2026
c0b0304
deps: bump mkdocstrings[python] from 1.0.2 to 1.0.3
dependabot[bot] Feb 9, 2026
c2a2dd4
Merge pull request #82 from GW-JAX-Team/dependabot/pip/ripple-dev/mkd…
thomasckng Feb 10, 2026
433e3d5
deps: bump mkdocstrings from 1.0.2 to 1.0.3
thomasckng Feb 10, 2026
4556c4a
fix: update package rules for Python dev dependencies
thomasckng Feb 10, 2026
07b98c3
fix: add pre-commit manager to Renovate package rules
thomasckng Feb 10, 2026
f569cb4
Merge pull request #84 from GW-JAX-Team/ripple-dev
thomasckng Feb 11, 2026
8d81ff9
deps: update uv.lock
thomasckng Feb 11, 2026
0774181
Merge pull request #86 from GW-JAX-Team/ripple-dev
thomasckng Feb 11, 2026
26272a6
chore(config): migrate config .github/renovate.json
renovate[bot] Feb 11, 2026
6309bfc
Merge pull request #91 from GW-JAX-Team/renovate/migrate-config
thomasckng Feb 12, 2026
54b70b8
chore(config): update range strategy to widen and disable python pack…
thomasckng Feb 12, 2026
df29cc3
chore(config): update base branch pattern to ripple-dev
thomasckng Feb 12, 2026
75c2c28
chore(pre-commit): update uv-lock hook args for upgrade
thomasckng Feb 12, 2026
873df9e
Rewrite tests dir
thomasckng Feb 16, 2026
b41c551
chore: update pre-commit hook versions for uv, ruff, and pyright
thomasckng Feb 24, 2026
a8eb179
Formatting
thomasckng Feb 24, 2026
86dddf0
Update uv.lock
thomasckng Feb 24, 2026
9d51d0d
fix: add maintainers section to pyproject.toml
thomasckng Feb 24, 2026
22b167e
chore: update uv-pre-commit hook version to 0.10.6
thomasckng Feb 25, 2026
3126af2
Update uv.lock
thomasckng Feb 25, 2026
5a8afe6
Merge branch 'ripple-dev' into update-tests
thomasckng Feb 25, 2026
f963adf
Update uv.lock
thomasckng Feb 25, 2026
f6f52cf
refactor: move conversion functions to a new conversions.py module an…
thomasckng Feb 25, 2026
d158842
refactor: remove FD_waveform.py as part of codebase cleanup
thomasckng Feb 25, 2026
a6bd658
Remove unused noise module
thomasckng Feb 25, 2026
b98c071
Remove unused test files
thomasckng Feb 25, 2026
d3c71b4
Add ET PSD for tests
thomasckng Feb 25, 2026
417c5e2
refactor: remove PSD loading functions and update related fixtures
thomasckng Feb 25, 2026
67493f0
feat: update test dependencies and add .gitignore for cross-validatio…
thomasckng Feb 25, 2026
327ae86
Formatting & update uv.lock
thomasckng Feb 25, 2026
7dd8851
refactor: update waveform parameter handling and improve precessing s…
thomasckng Feb 25, 2026
853bf97
feat: add cross-validation results summary to waveform mismatch tests
thomasckng Feb 25, 2026
667d70e
feat: add CLI option for number of random samples in cross-validation…
thomasckng Feb 25, 2026
f5e2fb4
feat: enhance cross-validation tests with per-waveform mismatch thres…
thomasckng Feb 25, 2026
229e132
feat: enhance waveform processing with complex noise-weighted inner p…
thomasckng Feb 25, 2026
8164836
fix: ensure boolean evaluation for x64_enabled and test pass status i…
thomasckng Feb 25, 2026
e5e7014
feat: update benchmark output path to include results directory
thomasckng Feb 25, 2026
5db5973
feat: update waveform functions to return both polarizations (hp, hc)…
thomasckng Feb 25, 2026
1e2c583
refactor: move conversion functions to a new conversions.py module an…
thomasckng Feb 25, 2026
b9144e3
refactor: remove FD_waveform.py as part of codebase cleanup
thomasckng Feb 25, 2026
7ff8e6f
Remove unused noise module
thomasckng Feb 25, 2026
905655c
Formatting & update uv.lock
thomasckng Feb 25, 2026
3c0c9de
Merge branch 'ripple-dev' into update-tests
thomasckng Feb 25, 2026
83ab9cd
chore: update ruff-pre-commit version to v0.15.3
thomasckng Feb 26, 2026
8641d90
chore: update ruff-pre-commit version to v0.15.4
thomasckng Feb 27, 2026
d452422
Udpate uv.lock
thomasckng Feb 27, 2026
1617233
chore: update uv-pre-commit version to 0.10.7
thomasckng Feb 27, 2026
963ee1d
feat: add conversion utilities to __all__ in __init__.py
thomasckng Feb 27, 2026
8a72dba
Revert last commit
thomasckng Feb 27, 2026
24927df
Remove all legacy tests and add __init__.py
thomasckng Feb 27, 2026
1caeeb6
Update uv.lock
thomasckng Feb 28, 2026
af3e129
Merge remote-tracking branch 'upstream/ripple-dev' into update-tests
thomasckng Mar 2, 2026
316d4bd
Update uv.lock
thomasckng Mar 2, 2026
fb53497
Merge branch 'ripple-dev' into update-tests
thomasckng Mar 2, 2026
507c03d
Add placeholder files for unit tests
thomasckng Mar 2, 2026
f64b4b5
Merge pull request #92 from GW-JAX-Team/update-tests
thomasckng Mar 2, 2026
ae6d70d
Refactor print statements in benchmark_waveform_ripple
thomasckng Mar 2, 2026
4380951
Enhance benchmark_waveform_ripple output handling and update mismatch…
thomasckng Mar 2, 2026
10ad6a8
Refactor CI configuration and update optional dependencies in pyproje…
thomasckng Mar 2, 2026
55b7af9
Update uv.lock
thomasckng Mar 2, 2026
bf7e560
Fix Python version specification in CI dependency installation step
thomasckng Mar 2, 2026
816af49
Update default output JSON file path in benchmark_runtime.py
thomasckng Mar 2, 2026
6162f96
Merge pull request #93 from GW-JAX-Team/ripple-dev
thomasckng Mar 2, 2026
46c47db
Update JAX
thomasckng Mar 2, 2026
443a014
Merge pull request #94 from GW-JAX-Team/ripple-dev
thomasckng Mar 2, 2026
0f807b8
Add concurrency configuration to CI workflow
thomasckng Mar 2, 2026
37b616f
Update uv-pre-commit version to 0.10.8
thomasckng Mar 4, 2026
ca0f707
Add CI autoupdate branch configuration to pre-commit config
thomasckng Mar 4, 2026
551418d
Refactor README and __init__.py for consistency and clarity
thomasckng Mar 4, 2026
bbacaa1
XPHM sanity checked passed
narolaharsh Mar 2, 2026
590fca1
Checkpoint for match calaulation
narolaharsh Mar 6, 2026
5f5d38d
Fix tabs and space
narolaharsh Mar 6, 2026
4fe25d4
Remove spaces
narolaharsh Mar 6, 2026
fbbe52f
Remove redundant functions
narolaharsh Mar 6, 2026
4fed919
Remove redundant functions
narolaharsh Mar 6, 2026
ae59598
Add jit decorator
narolaharsh Mar 6, 2026
35cac10
Remove dead code
narolaharsh Mar 6, 2026
c479f7f
Add documentation for twistup function
narolaharsh Mar 6, 2026
c9eaa5f
Add documentation for twistup 22 function
narolaharsh Mar 6, 2026
c17ba4c
Minor edits
narolaharsh Mar 6, 2026
20c1c23
Update unit test script
narolaharsh Mar 6, 2026
4f33746
Clean up unit test
narolaharsh Mar 6, 2026
17b6d53
Update pre commit
narolaharsh Mar 6, 2026
87e3755
Clean the testing script
narolaharsh Mar 6, 2026
6f80e04
Address warnings in the test script
narolaharsh Mar 6, 2026
51454e7
Remove redundant function
narolaharsh Mar 6, 2026
3fc13c7
Update gpu timing scirpt
narolaharsh Mar 6, 2026
76603a6
Unit test for signle wf working; gpu timing and mismatch broken
narolaharsh Mar 6, 2026
93f9adf
bug fix for gpu timing script
narolaharsh Mar 6, 2026
468cfaf
Add debug mode
narolaharsh Mar 6, 2026
ec7669f
Debug ill spins
narolaharsh Mar 6, 2026
3e4e7cc
To do commits
narolaharsh Mar 6, 2026
4a03129
Identify ill injection parameters
narolaharsh Mar 6, 2026
5f4f199
debug checkpoint
narolaharsh Mar 7, 2026
594c6a8
Debug work-in-prog
narolaharsh Mar 7, 2026
9c036c3
Bug identified for xphm
narolaharsh Mar 7, 2026
b1fe31c
Added the cutoff frequency
narolaharsh Mar 7, 2026
6434279
Potential bug-fix implemented
narolaharsh Mar 7, 2026
868bfd3
Spin bug addressed
narolaharsh Mar 7, 2026
87f5e28
Update description
narolaharsh Mar 7, 2026
e4cbcee
Merge branch 'main' into full-XPHM-dev-branch
narolaharsh Mar 7, 2026
003ad3a
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 7, 2026
58763c7
Remove deadcode
narolaharsh Mar 7, 2026
20f543d
Merge branch 'full-XPHM-dev-branch' of github.com:GW-JAX-Team/ripple …
narolaharsh Mar 7, 2026
6ec792c
Adjust batch mismatch computation
narolaharsh Mar 8, 2026
2cf48fa
Clean up code not needed for XPHM-MSA implementation
narolaharsh Mar 8, 2026
b5d7d0e
Address pre-commint issue
narolaharsh Mar 9, 2026
b19985f
Catch errors for the try statement
narolaharsh Mar 9, 2026
17a8ab4
Update src/ripplegw/waveforms/LALSimIMRPhenomX_precession.py
narolaharsh Mar 9, 2026
d484345
Remove syntex error
narolaharsh Mar 9, 2026
bbfd1a1
Resolve code-rabbit conversation
narolaharsh Mar 9, 2026
e0897d4
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 9, 2026
278bbad
Fix pipeline
narolaharsh Mar 9, 2026
1d456a6
Remove code-rabbit suggestions
narolaharsh Mar 9, 2026
845be99
Move config to test file
narolaharsh Mar 9, 2026
2c3863c
Address bot comments
narolaharsh Mar 9, 2026
1343142
Address bot comment on the thetaJ_Sf
narolaharsh Mar 9, 2026
2e69a5e
Merge branch 'ripple-dev' into full-XPHM-dev-branch
thomasckng Mar 9, 2026
6593841
Optimising gpu timing
Mar 9, 2026
b1a46f5
Remove typing.py and update import in IMRPhenomXPHM.py to use jaxtypi…
thomasckng Mar 9, 2026
8771b02
Optimising generate_xphm and dowstream functions
Mar 9, 2026
b733930
Merge branch 'full-XPHM-dev-branch' of github.com:GW-JAX-Team/ripple …
Mar 9, 2026
c62f8bd
Check pre-commit
narolaharsh Mar 9, 2026
8ca4eae
Refactor constants import to use consistent naming and update related…
thomasckng Mar 9, 2026
2ba053a
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 9, 2026
5111a10
Remove jax.lax.switch and hardcode five modes
Mar 9, 2026
f409de0
Merge branch 'full-XPHM-dev-branch' of github.com:GW-JAX-Team/ripple …
Mar 9, 2026
324d297
Update gpu timing script
Mar 9, 2026
a2afaae
Update uv.lock
thomasckng Mar 9, 2026
a96c141
Remove JIT decorators from various functions across multiple files
thomasckng Mar 9, 2026
a38ae97
Replace pytree_dataclass with jax.tree_util.register_dataclass in LAL…
thomasckng Mar 9, 2026
1d46a94
Add support for IMRPhenomXPHM waveform in tests and utilities
thomasckng Mar 9, 2026
0a8b7a1
Update parameter bounds and mismatch thresholds in cross-validation t…
thomasckng Mar 9, 2026
7511ab8
Merge pull request #95 from GW-JAX-Team/full-XPHM-dev-branch
thomasckng Mar 9, 2026
bd8cfed
Updating the timing script functionalities
ThibeauWouters Mar 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
docs/** linguist-vendored
notebooks/** linguist-vendored
notebooks/** linguist-vendored
tests/** linguist-vendored
66 changes: 66 additions & 0 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: CI

on:
pull_request:
branches: [main, ripple-dev]
push:
branches: [main, ripple-dev]
release:
types: [published]

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v6
- uses: astral-sh/setup-uv@v7
with:
enable-cache: true
- name: Set up Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}
- name: Install dependencies
run: uv sync --python ${{ matrix.python-version }} --group test
- name: Run tests
run: uv run pytest --cov=ripplegw --cov-report=term-missing tests/unit tests/integration --ignore=tests/cross_validation --ignore=tests/benchmarks
- name: Upload coverage to Coveralls
if: matrix.python-version == '3.12'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
run: uv run coveralls

pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: astral-sh/setup-uv@v7
with:
enable-cache: true
- name: Install dependencies
run: uv sync --python 3.12 --group test
- name: Run pre-commit
run: uv run pre-commit run --all-files

publish:
needs: [test, pre-commit]
runs-on: ubuntu-latest
if: github.event_name == 'release'
environment:
name: pypi
url: https://pypi.org/project/ripplegw/
steps:
- uses: actions/checkout@v6
- uses: astral-sh/setup-uv@v7
- name: Build package
run: uv build
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}
39 changes: 0 additions & 39 deletions .github/workflows/python-publish.yml

This file was deleted.

36 changes: 29 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,32 @@
# Python
__pycache__/
*.py[cod]

*.egg-info/

# Testing / coverage
.pytest_cache/
.coverage
.coverage.*
htmlcov/

# Virtual environments
.venv/
venv/

# IDE / Editor
.vscode/
*.swp

# OS
.DS_Store
.ipynb_checkpoints/

# Python environment
.python-version
*__pycache__
*.egg-info
docs/build/*
figures/*.pdf
.vscode/*

build/*
# Documentation
docs/_build/
/site

# Jupyter
.ipynb_checkpoints/
26 changes: 26 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
ci:
autoupdate_branch: ripple-dev

repos:
- repo: https://github.com/astral-sh/uv-pre-commit
rev: 0.10.8
hooks:
- id: uv-lock
args: ["--upgrade"]

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.15.4
hooks:
- id: ruff-check
args: ["--fix"]
files: src/
- id: ruff-format
files: src/

# Temporarily disabled - re-enable once type errors are fixed
# - repo: https://github.com/RobertCraigie/pyright-python
# rev: v1.1.408
# hooks:
# - id: pyright
# files: src/
# additional_dependencies: [jax, jaxtyping, pytest, typing_extensions, numpy]
3 changes: 2 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
MIT License

Copyright (c) [2022] [Adam Coogan, Thomas Edwards]
Copyright (c) 2022 Adam Coogan, Thomas Edwards
Copyright (c) 2025 GW-JAX-Team

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
138 changes: 83 additions & 55 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,100 +1,128 @@
# Ripple :ocean:
# Ripple 🌊

A small `jax` package for differentiable and fast gravitational wave data analysis.
**A small `jax` package for differentiable and fast gravitational wave data analysis**

# Getting Started
[![doc](https://badgen.net/badge/Read/the%20doc/blue)](https://ripplegw.readthedocs.io/) [![license](https://badgen.net/badge/License/MIT/blue)](https://github.com/GW-JAX-Team/ripple/blob/main/LICENSE) [![coverage](https://badgen.net/coveralls/c/github/GW-JAX-Team/ripple/main)](https://coveralls.io/github/GW-JAX-Team/ripple?branch=main) [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/GW-JAX-Team/ripple/main.svg)](https://results.pre-commit.ci/latest/github/GW-JAX-Team/ripple/main)

Note that Thibeau Wouters and Kaze Wong will soon become the main developers of ripple so please contact them if you have comments/questions.
ripple is a JAX-based package for differentiable and hardware-accelerated gravitational wave data analysis.It is maintained by the GW-JAX-Team organization and was originally developed by Thomas Edwards and Adam Coogan, with significant contributions from Kaze Wong and the community.

## Documentation
See the accompanying paper, [Edwards et al. (2024)](https://journals.aps.org/prd/abstract/10.1103/PhysRevD.110.064028), for more details. For questions or comments, please open an issue on the [GitHub repository](https://github.com/GW-JAX-Team/ripple).

You can find the full documentation at [Read the Docs](https://ripplegw.readthedocs.io/).
## Installation

### Installation
The simplest way to install ripple is through pip:

Both waveforms have been tested extensively and match `lalsuite` implementations to machine precision across all the parameter space.
```bash
pip install ripplegw
```

Ripple can be installed using
This will install the latest stable release and its dependencies.
ripple is built on [JAX](https://github.com/google/jax).
By default, this installs the CPU version of JAX from [PyPI](https://pypi.org).
If you have a GPU and want to leverage hardware acceleration, install the CUDA-enabled version:

```
pip3 install ripplegw
```bash
pip install ripplegw[cuda]
```

Note that by default we do not include enable float64 in `jax`` since we want allow users to use float32 to improve performance.
If you require float64, please include the following code at the start of the script:
If you want to install the latest version of ripple, you can clone this repo and install it locally:

```bash
git clone https://github.com/GW-JAX-Team/ripple.git
cd ripple
pip install -e .
```

**Note:** By default, ripple uses float32 precision for improved performance. If you require float64 precision, add the following at the start of your script:

```python
from jax import config
config.update("jax_enable_x64", True)
```

See https://jax.readthedocs.io/en/latest/notebooks/Common_Gotchas_in_JAX.html for other common `jax` gotchas.
See [JAX - The Sharp Bits](https://docs.jax.dev/en/latest/notebooks/Common_Gotchas_in_JAX.html#jax-the-sharp-bits) for other common `jax` gotchas.

## Supported Waveforms

### Supported waveforms
All waveforms have been extensively tested and match `lalsuite` implementations to machine precision across the full parameter space.

- IMRPhenomXAS (aligned spin)
- IMRPhenomD (aligned spin)
- IMRPhenomPv2 (Still finalizing sampling checks)
- TaylorF2 with tidal effects
- IMRPhenomD_NRTidalv2, verified for the low spin regime (chi1, chi2 < 0.05), further testing is required for higher spins
- **IMRPhenomXAS** (aligned spin)
- **IMRPhenomD** (aligned spin)
- **IMRPhenomPv2** (finalizing sampling validation)
- **TaylorF2** with tidal effects
- **IMRPhenomD_NRTidalv2** (verified for low spin: $\chi_1$ and $\chi_2$ < 0.05; higher spins require further testing)
- **IMRPhenomXAS_NRTidalv3**

### Generating a waveform and its derivative
## Usage

Generating a waveform is incredibly easy. Below is an example of calling the PhenomXAS waveform model
to get the h_+ and h_x polarizations of the waveform model
### Generating a Waveform

We start with some basic imports:
Generating waveforms with ripple is straightforward. Below is an example using the IMRPhenomXAS model to compute the $h_+$ and $h_\times$ polarizations.

Start with the basic imports:

```python
import jax.numpy as jnp

from ripple.waveforms import IMRPhenomXAS
from ripple import ms_to_Mc_eta
from ripplegw import IMRPhenomXAS
from ripplegw.conversions import ms_to_Mc_eta
```

And now we can just set the parameters and call the waveform!

```python
# Get a frequency domain waveform
# source parameters

m1_msun = 20.0 # In solar masses
m2_msun = 19.0
chi1 = 0.5 # Dimensionless spin
chi2 = -0.5
tc = 0.0 # Time of coalescence in seconds
phic = 0.0 # Time of coalescence
dist_mpc = 440 # Distance to source in Mpc
inclination = 0.0 # Inclination Angle

# The PhenomD waveform model is parameterized with the chirp mass and symmetric mass ratio
# Define source parameters
m1_msun = 20.0 # Primary mass (solar masses)
m2_msun = 19.0 # Secondary mass (solar masses)
chi1 = 0.5 # Primary dimensionless spin
chi2 = -0.5 # Secondary dimensionless spin
tc = 0.0 # Time of coalescence (seconds)
phic = 0.0 # Phase at coalescence (radians)
dist_mpc = 440 # Luminosity distance (Mpc)
inclination = 0.0 # Inclination angle (radians)

# Convert to chirp mass and symmetric mass ratio
Mc, eta = ms_to_Mc_eta(jnp.array([m1_msun, m2_msun]))

# These are the parametrs that go into the waveform generator
# Note that JAX does not give index errors, so if you pass in the
# the wrong array it will behave strangely
# Construct parameter array
# Note: JAX does not raise index errors, so ensure the array is correctly ordered
theta_ripple = jnp.array([Mc, eta, chi1, chi2, dist_mpc, tc, phic, inclination])

# Now we need to generate the frequency grid
f_l = 24
f_u = 512
del_f = 0.01
# Generate frequency grid
f_l = 24 # Lower frequency bound (Hz)
f_u = 512 # Upper frequency bound (Hz)
del_f = 0.01 # Frequency resolution (Hz)
fs = jnp.arange(f_l, f_u, del_f)
f_ref = f_l
f_ref = f_l # Reference frequency

# And finally lets generate the waveform!
# Generate the waveform
hp_ripple, hc_ripple = IMRPhenomXAS.gen_IMRPhenomXAS_hphc(fs, theta_ripple, f_ref)

# Note that we have not internally jitted the functions since this would
# introduce an annoying overhead each time the user evaluated the function with a different length frequency array
# We therefore recommend that the user jit the function themselves to accelerate evaluations. For example:
# For better performance, we recommend JIT-compiling the waveform function.
# This avoids recompilation overhead when the frequency array length changes:

import jax

@jax.jit
def waveform(theta):
return IMRPhenomXAS.gen_IMRPhenomXAS_hphc(fs, theta)
return IMRPhenomXAS.gen_IMRPhenomXAS_hphc(fs, theta, f_ref)
```



## Attribution

If you use ripple in your research, please cite the accompanying paper:

```bibtex
@article{Edwards:2023sak,
author = "Edwards, Thomas D. P. and Wong, Kaze W. K. and Lam, Kelvin K. H. and Coogan, Adam and Foreman-Mackey, Daniel and Isi, Maximiliano and Zimmerman, Aaron",
title = "{Differentiable and hardware-accelerated waveforms for gravitational wave data analysis}",
eprint = "2302.05329",
archivePrefix = "arXiv",
primaryClass = "astro-ph.IM",
doi = "10.1103/PhysRevD.110.064028",
journal = "Phys. Rev. D",
volume = "110",
number = "6",
pages = "064028",
year = "2024"
}
```
Binary file removed dist/ripplegw-0.0.2-py3.9.egg
Binary file not shown.
Binary file removed dist/ripplegw-0.0.4-py3.10.egg
Binary file not shown.
Binary file removed dist/ripplegw-0.0.4-py3.11.egg
Binary file not shown.
14 changes: 7 additions & 7 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ equinox>=0.10.6
optax>=0.1.5
evosax>=0.1.4
tqdm
mkdocs==1.4.3 # Main documentation generator.
mkdocs-material==9.1.18 # Theme
pymdown-extensions==10.1 # Markdown extensions e.g. to handle LaTeX.
mkdocstrings[python]==0.22.0 # Autogenerate documentation from docstrings.
mkdocs-jupyter==0.24.2 # Turn Jupyter Lab notebooks into webpages.
mkdocs-gen-files==0.5.0
mkdocs-literate-nav==0.6.0
mkdocs==1.6.1 # Main documentation generator.
mkdocs-material==9.7.1 # Theme
pymdown-extensions==10.20.1 # Markdown extensions e.g. to handle LaTeX.
mkdocstrings[python]==1.0.3 # Autogenerate documentation from docstrings.
mkdocs-jupyter==0.25.1 # Turn Jupyter Lab notebooks into webpages.
mkdocs-gen-files==0.6.0
mkdocs-literate-nav==0.6.2
Loading
Loading