Getting started
Install
Python 3.12 or later is required. Until the first PyPI release is published, install from the canonical repository:
pip install git+https://github.com/jaxglitches/jaxglitches.git
Once a release is available:
pip install jaxglitches
For an editable development installation:
git clone https://github.com/jaxglitches/jaxglitches.git
cd jaxglitches
uv sync --locked
Build a waveform
import jax.numpy as jnp
import jaxglitches as jg
freq = jg.freq_grid(t_obs=1800.0, dt=0.5)
params = jnp.array([400.0, 1.2e-13, 0.79])
response = jg.clean_signal_f(params, freq, tdi=2, basis="XYZ")
print(response.shape) # (1801, 3)
The parameter vector contains onset time in seconds, velocity kick in m/s, and decay time in seconds. Columns above are X, Y, Z; the default basis is AET. See conventions before comparing against data or noise models.
Run the example notebook for time-domain plots and JAX derivatives.
Optional dependencies
| Extra | Purpose |
|---|---|
notebook |
Plotting, notebook execution, and Jexplore sampling |
joint |
Galactic-binary responses through jaxgb |
wdm |
Wavelet transforms through wdm-transform |
simulation |
lisainstrument and pytdi validation tools |
gpu |
JAX CUDA 12 support on Linux x86_64 |
gpu-cuda13 |
JAX CUDA 13 support on Linux x86_64 |
For the joint glitch/binary notebooks:
uv sync --locked --extra notebook --extra joint --extra wdm
GPU extras require a compatible NVIDIA driver. Verify the available devices
with python -c "import jax; print(jax.devices())" after installation.