Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
247 commits
Select commit Hold shift + click to select a range
c51d2d6
RIFT pipeline: util_RIFT_pseudo_pipe.py hyperpipeline support
May 9, 2026
8f4fa28
Updating
oshaughnessy-junior May 17, 2026
e8c4233
docs
oshaughnessy-junior May 18, 2026
7d35f62
refactoring mega-file into subfiles, restoring older content
oshaughnessy-junior May 19, 2026
947f784
for Patricia: exposing digits
oshaughn May 28, 2026
dedc213
Update util_TestSpokesIO.py: fix digits call to opt.digits
patricia-mcmillin42 May 29, 2026
8ae026f
calmarg: in-loop calibration marginalization (Option B) in ILE GPU li…
oshaughn May 29, 2026
36a9fea
calmarg: add backtest harness (methods registry + Option C stub + phy…
oshaughn May 29, 2026
da93a03
calmarg: Option C fused CUDA kernel for in-loop cal marginalization (…
oshaughn May 29, 2026
cb14960
calmarg: extend backtest harness to multiple detectors
oshaughn May 29, 2026
3f75698
calmarg: Option C stage 2 -- fused distmarg kernel (separate kernel +…
oshaughn May 29, 2026
407abdc
calmarg: wire ILE driver to fused kernel behind --calibration-fused-k…
oshaughn May 29, 2026
ed9a211
calmarg: fix scalar invDist in fused path; backtest against real dist…
oshaughn May 29, 2026
7896c52
calmarg: document end-to-end driver test + invDist fix in design doc
oshaughn May 29, 2026
8a35b3e
calmarg: pipe sugar + demo/rift/calmarg (3-IFO in-loop calibration ma…
oshaughn May 29, 2026
c93ad76
calmarg: guard fused kernels vs out-of-range offsets; demo defaults t…
oshaughn May 29, 2026
54636dd
calmarg: guard shared Q_inner_product kernel vs out-of-range time off…
oshaughn May 29, 2026
7290a97
calmarg: confine the window to its realization block (fix block-bleed…
oshaughn May 30, 2026
5537551
calmarg: per-realization importance weights (Phase 0 for adaptive cal…
oshaughn May 30, 2026
e266fc0
calmarg demo: fix compare_lnL column (lnL is [-4], not neff [-1]); ad…
oshaughn May 30, 2026
f780c40
calmarg demo: analyze the injection as the template (signal present)
oshaughn May 30, 2026
166744f
calmarg demo: document extrinsic-sampler convergence caveat for singl…
oshaughn May 30, 2026
5aabdea
calmarg: CPU/numpy backend for the fused path (no CUDA needed)
oshaughn May 30, 2026
9b35911
calmarg: non-distmarg + CPU coverage for the fused path (review matrix)
oshaughn May 30, 2026
1bedebd
calmarg: FIX time alignment -- calmarg rholms had the wrong epoch (si…
oshaughn May 30, 2026
e34f261
calmarg: regression test for precompute time alignment (catches the e…
oshaughn May 30, 2026
a2d20eb
calmarg: export cal-marginalized lnL(t) timeseries for time resampling
oshaughn May 30, 2026
999faba
calmarg: phase marginalization for the fused kernels (+ driver wiring…
oshaughn May 30, 2026
e13f09f
calmarg: adaptive cal sampling Phase 1 (tempered Gaussian proposal in…
oshaughn May 30, 2026
7a1ae11
calmarg: timing-scan tool + adaptive-driver plan
oshaughn May 30, 2026
121b625
calmarg: fix importance-weight normalization (unbiased log(n_cal)) + …
oshaughn May 30, 2026
4f8f24c
calmarg pilot/seed substrate: ILE flags + node-space realizations + f…
oshaughn May 30, 2026
74ed87d
calmarg adaptive driver: DAG wiring for the parallel cal pilot (Optio…
oshaughn May 30, 2026
0b74e00
calmarg DAG: fix write_calpilot_sub module + add local-condor DAG tes…
oshaughn May 31, 2026
b390011
Fix stdout pollution corrupting composites (precession warning -> std…
oshaughn May 31, 2026
a5d8939
calmarg pilot: relax first CIP stage sigma-cut for the prior-cal cold…
oshaughn May 31, 2026
5ece22d
demo/calmarg: parameterize DAG target (PILOT/FUSED) + vanilla fused-c…
oshaughn May 31, 2026
ec2226d
calmarg pilot backstop: shrink fitted proposal toward prior (fixes st…
oshaughn May 31, 2026
785e545
calmarg: frame zero-cal burn-in of the extrinsic sampler (design)
oshaughn May 31, 2026
4296c55
demo/calmarg: fix wide-ILE settings that crippled n_eff (single-event…
oshaughn May 31, 2026
e333ff9
demo/calmarg: correct misleading tuning comments (record accurate facts)
oshaughn May 31, 2026
cf16b03
calmarg: zero-cal burn-in of the extrinsic sampler (--calibration-bur…
oshaughn May 31, 2026
b75ae0c
calmarg burn-in: breadcrumb AV reset limitation + future seedable/fle…
oshaughn May 31, 2026
d0497a8
demo/calmarg: tune-condor target (single condor job, unbuffered) for …
oshaughn May 31, 2026
702569f
Use portable RIFT float dtype in likelihood tools
oshaughnessy-junior May 31, 2026
f4272a8
calmarg: note n_eff is conservative vs true ESS (softens pilot-starva…
oshaughn May 31, 2026
d595fa4
Merge rift_O4d_junior_distance_RiftFloat: portable RiftFloat dtype (M…
oshaughn May 31, 2026
f154fab
Merge pull request #138 from patricia-mcmillin42/rift_O4d_spokes_digits
oshaughn Jun 1, 2026
8fa9a8d
demo/calmarg: pp-build/pp-validate -- top-level pseudo_pipe thread-th…
oshaughn Jun 1, 2026
26f8d83
demo/calmarg: pp-run -- RUNNABLE top-level calmarg pipeline on CI dat…
oshaughn Jun 1, 2026
e4b04b2
demo/calmarg: auto-layer OSG/container flags on pp-run when SINGULARI…
oshaughn Jun 1, 2026
7906cbe
demo/calmarg: OSG cache-check fix + CIT accounting-env warning
oshaughn Jun 1, 2026
3c2a85c
demo/calmarg: +4GB disk request in container/OSG mode (.sif transfer …
oshaughn Jun 1, 2026
9666546
demo/calmarg: fix ILE disk stuck at 4M -- ini was overriding the CLI …
oshaughn Jun 1, 2026
385223f
calmarg OSG: fix PSD + cal-envelope file transfer (global paths -> ba…
oshaughn Jun 1, 2026
475bb10
demo/calmarg OSG: frames_dir must be a full copy, not a symlink
oshaughn Jun 1, 2026
dae8ede
calmarg pilot: strip the 'X' placeholder from args_ile.txt (was passe…
oshaughn Jun 1, 2026
2c2894b
demo/calmarg: pp-run-pilot -- runnable cal-PILOT pipeline via pseudo_…
oshaughn Jun 1, 2026
e2af1b5
calmarg pilot OSG: CALPILOT job runs in-container with file transfer …
oshaughn Jun 1, 2026
b501e82
calmarg pilot OSG: wide-ILE seed transfer + clean CALPILOT transfer l…
oshaughn Jun 1, 2026
190fca5
demo/calmarg: pp-run-pilot uses its own rundir (rundir_pp_pilot), not…
oshaughn Jun 1, 2026
a65a07b
demo/calmarg: pp-run-pilot validation -- find util_CalPilotStage.py i…
oshaughn Jun 1, 2026
d0f104d
extrinsic handoff: breadcrumb extrinsic slot (GMM) + fit/seed module …
oshaughn Jun 2, 2026
93a4302
calmarg/extrinsic: ILE save+seed hooks + design doc (GMM proof-of-con…
oshaughn Jun 2, 2026
0f2385b
calmarg/extrinsic: wire the GMM extrinsic handoff through the pipeline
oshaughn Jun 2, 2026
98bb98c
calmarg/extrinsic: fix two GPU-only seed bugs + add real-GPU smoke ta…
oshaughn Jun 2, 2026
8aaba0c
util_ConstructEOSPosterior: decouple fit basis from MC sampling basis
oshaughnessy-junior Jun 2, 2026
d1995aa
demo/hyperpipe: README tour of the four yaml configs
oshaughnessy-junior Jun 2, 2026
77f5c56
calmarg/extrinsic: document the GMM-convergence blocker found on real…
oshaughn Jun 2, 2026
566ed81
calmarg/extrinsic: freeze seeded groups by default (--extrinsic-propo…
oshaughn Jun 2, 2026
3e49f06
calmarg/extrinsic: fix cross-sampler AV->GMM seed numerics (untempere…
oshaughn Jun 2, 2026
cb63611
lalsimutils: skip schema columns absent from the sim_inspiral table i…
oshaughn Jun 2, 2026
c73d6ad
demo/calmarg: expose distance marginalization as an OPTION (PP_DMARG)…
oshaughn Jun 2, 2026
480260c
calmarg: export recovered cal posterior in final fairdraw (+ fix GMM-…
oshaughn Jun 2, 2026
1a1a29b
calmarg: fix OSG iteration-0 breadcrumb EOFError (empty placeholder) …
oshaughn Jun 2, 2026
868b8cd
calmarg: write a VALID 'prior' breadcrumb placeholder (belt-and-suspe…
oshaughn Jun 2, 2026
36ea75f
demo/calmarg: README -- document the full target ladder + advanced ca…
oshaughn Jun 2, 2026
5643386
plot_posterior_corner: additive coordinate-plugin hook
oshaughnessy-junior Jun 2, 2026
344a3ee
EOSManager: modernize RePrimAnd interface to pyreprimand 1.7 API
oshaughnessy-junior Jun 2, 2026
277c0ba
Merge rift_O4d_junior_eospost_coords: EOSPosterior coord-decoupling +…
oshaughnessy-junior Jun 2, 2026
d4be689
Merge branch 'rift_O4d_junior_calmarg_in_loop' of https://github.com/…
oshaughnessy-junior Jun 2, 2026
5087cf2
Merge remote-tracking branch 'origin/rift_O4d_junior_calmarg_in_loop_…
oshaughnessy-junior Jun 2, 2026
b63c800
EOSManager: call star_acc_simple with keyword args (keyword-only in p…
oshaughnessy-junior Jun 2, 2026
6eea64a
puff: coordinate-plugin hook for util_HyperparameterPuffball + Tracer
oshaughnessy-junior Jun 2, 2026
6778de0
Merge branch 'rift_O4d_junior_calmarg_in_loop' of https://github.com/…
oshaughnessy-junior Jun 2, 2026
c439ac9
jax_gp: scalable, AD-compatible likelihood interpolators (Phase 1 + S…
oshaughn Jun 2, 2026
480036b
jax_gp: differentiable export + CIP wiring (Phase 3)
oshaughn Jun 2, 2026
d5336c5
jax_gp: ARD lengthscales + k-means inducing init (Phase 2 tuning)
oshaughn Jun 2, 2026
c23327f
jax_gp: ILE .net loader + real GW170817 validation (datasets.py)
oshaughn Jun 2, 2026
baf7edf
jax_gp: scaling-study runner (incremental JSONL)
oshaughn Jun 2, 2026
1ba18f7
jax_gp: README updates (ARD, scaling study, real-ILE loader)
oshaughn Jun 2, 2026
d01eb93
jax_gp: fit-coordinate helpers + good GW170817 coordinates (datasets.py)
oshaughn Jun 3, 2026
72b49be
jax_gp: README - add Coordinates section (mu1/mu2/LambdaTilde guidance)
oshaughn Jun 3, 2026
0d15fc1
jax_gp: heteroscedastic (per-point MC error) noise + RF baseline
oshaughn Jun 3, 2026
2895694
jax_gp: add DESIGN.md (rationale + AD roadmap)
oshaughn Jun 3, 2026
9b5a283
jax_gp: downselect to RFF as default; SVGP/exact = backstop+validation
oshaughn Jun 3, 2026
f56ac62
jax_gp: AD applications -- differentiable sampler + packaged GW170817…
oshaughn Jun 3, 2026
274c454
jax_gp: record completed scaling sweep + applications in DESIGN/README
oshaughn Jun 3, 2026
4daf959
jax_gp: pure-JAX differentiable coordinate transforms (legacy path un…
oshaughn Jun 3, 2026
f43e7f0
jax_gp: jax_cip -- clean pure-JAX posterior path; sample-in-fit-coord…
oshaughn Jun 3, 2026
5688817
jax_gp: DESIGN.md -- clean-JAX-path architecture decision, sampling l…
oshaughn Jun 3, 2026
58707b6
jax_cip: legacy-compatible CLI for pipeline-level hot-swap
oshaughn Jun 3, 2026
b94ec39
jax_gp: README -- document jax_cip legacy-compatible CLI hot-swap
oshaughn Jun 3, 2026
7a3be35
jax_cip: flow-as-sampling-model (flowMC NF + importance weights), def…
oshaughn Jun 3, 2026
9a2f08a
jax_gp: DESIGN -- flow-as-sampling-model architecture + GW170817 results
oshaughn Jun 3, 2026
746f702
jax_cip: honour CLI prior ranges (--mc-range/--chi-max/--lambda-*); t…
oshaughn Jun 3, 2026
29f7efa
jax_cip: tree-ring downselection + smooth surrogate (SVGP default) + …
oshaughn Jun 3, 2026
82873c8
jax_cip: Condor benchmark fleet (10x CIP RF+AV) + pooled JS comparison
oshaughn Jun 3, 2026
b2a45f6
EOSManager: add EOSSequenceNMB reader for NuclearMatter-Backend NSSeq…
oshaughnessy-junior Jun 3, 2026
4e9f72b
CIP: auto-detect NSSequence vs EOSSequenceLandry via EOSSequenceFromF…
oshaughnessy-junior Jun 3, 2026
06a6a25
EOSManager: EOSSequencePCA reader for compressed pca_hc/1 files; EOSS…
oshaughnessy-junior Jun 3, 2026
9c89402
CIP: fixed single-EOS-realization mode for sequence files (--using-eo…
oshaughnessy-junior Jun 3, 2026
799370c
jax_gp: constrain GP lengthscale to the peak width (fix catastrophic …
oshaughn Jun 3, 2026
96cab33
jax_gp: quadgp -- quadratic/Fisher core + GP residual (PE-grade sharp…
oshaughn Jun 3, 2026
3c67b10
jax_cip: gaussian-IS sampler for sharp surrogates + quadgp wiring
oshaughn Jun 3, 2026
bb8ec4d
jax_cip: mixture-IS sampler (Gauss core + flow wings) -- infra + hone…
oshaughn Jun 3, 2026
63a7418
jax_cip: Morisaki-frame IS proposal + selectable quadgp residual (exa…
oshaughn Jun 3, 2026
f9b90e1
jax_gp: HANDOFF.md -- clean resume breadcrumb
oshaughn Jun 3, 2026
57c5690
jax_gp/quadgp: implement differentiable export (nested residual model)
oshaughn Jun 3, 2026
337965a
cepp_basic: separate puff barrier from fit chain
oshaughnessy-junior Jun 3, 2026
b6f908b
cepp_basic: thread the cal/extrinsic seed barriers into the puffball …
oshaughn Jun 3, 2026
2288b54
jax_gp: mu-frame-preconditioned NUTS + export/validate demo
oshaughn Jun 4, 2026
82cea25
jax_gp: GP-vs-standard-RIFT validation ladder (analysis harness)
oshaughn Jun 4, 2026
44a26cf
jax_ile: AD-compatible JAX reimplementation of the ILE extrinsic like…
oshaughn Jun 4, 2026
cb92b8d
jax_ile: extend spherical harmonics to l=8, validate against lal
oshaughn Jun 4, 2026
dc68f85
jax_ile driver: full ILE argument compatibility + batch processing
oshaughn Jun 4, 2026
1c03f8a
jax_ile: vectorize distance marginalization (fast reverse-mode / NUTS)
oshaughn Jun 4, 2026
69cbf07
jax_ile: network-frame sky coordinates (fold the time-delay ring)
oshaughn Jun 4, 2026
c2022a8
jax_ile: export network-coordinate helpers from package __init__
oshaughn Jun 4, 2026
603e9fc
jax_ile: test that network coordinates fold the likelihood's sky ring
oshaughn Jun 4, 2026
d42fcb1
jax_ile: multimodal samplers (multi-start NUTS + flowMC) + driver modes
oshaughn Jun 4, 2026
9c35aec
jax_ile: flow re-use across events, optional network-coord sampling, …
oshaughn Jun 4, 2026
231f837
jax_ile: robust importance evidence + proper sky-area; benchmark find…
oshaughn Jun 4, 2026
b8eb95a
cepp_basic: final extrinsic stage uses the efficient AV sampler even …
oshaughn Jun 4, 2026
03387f3
demo/calmarg: explode CIP across parallel workers with a light per-wo…
oshaughn Jun 4, 2026
0e164e7
demo/calmarg: pack 50 intrinsic points per ILE job (jobs are ~1-3 min)
oshaughn Jun 4, 2026
5a6d035
jax_ile: real-data demo/figure tool (lnL-equality + PSD-scaled SNR st…
oshaughn Jun 4, 2026
af1ac19
Revert "cepp_basic: final extrinsic stage uses the efficient AV sampl…
oshaughn Jun 4, 2026
da585d1
demo/calmarg: AV for the final extrinsic via post-build sed on ILE_ex…
oshaughn Jun 4, 2026
df300fa
jax_gp: GP<->RF head-to-head test + figures + paper/docs (BNS example)
oshaughn Jun 4, 2026
2ea9125
demo/calmarg: add --condor-local-nonworker when OSG is active (CIT ex…
oshaughn Jun 4, 2026
14c1d1a
paper: drop the PNG figures from the RIFT repo (live in the paper rep…
oshaughn Jun 4, 2026
c8ccf5f
jax_ile: SNR demo -- fresh flow per SNR (no reuse), tempering, pooled…
oshaughn Jun 4, 2026
3f0587d
jax_ile: Fisher-preconditioned high-SNR samplers (fisher_is_sample, f…
oshaughn Jun 4, 2026
54e3a8e
jax_ile demo: marginal-Fisher sky (prior-regularized) returns nan whe…
oshaughn Jun 4, 2026
fb3e792
cepp_basic: CALPILOT job forgot request_disk
Jun 5, 2026
337c6a0
Merge branch 'rift_O4d_junior_calmarg_in_loop' of https://github.com/…
Jun 5, 2026
7304512
dag_utils: fix write_calpilot_sub singularity and oauth handling
oshaughnessy-junior Jun 5, 2026
d2264be
calpilot: fix initialdir to working_directory, not iteration_N_cip
oshaughnessy-junior Jun 5, 2026
3fea0cd
calpilot: fix calpilot_pre.sh transfer path after initialdir change
oshaughnessy-junior Jun 5, 2026
acd8f25
jax_ile: phi_ref grid-sum marginalisation (any l_max, no QAS assumption)
oshaughnessy-junior Jun 5, 2026
205a064
jax_ile: fix ConcretizationTypeError in phi_ref grid-sum loops
oshaughnessy-junior Jun 5, 2026
675ab13
jax_ile: replace phi loop with lax.scan — O(body) not O(nphi*body) me…
oshaughnessy-junior Jun 5, 2026
41fe274
jax_ile: progress reporting for snr_marg (compile banner + tqdm pilot…
oshaughnessy-junior Jun 5, 2026
a167d26
jax_ile snr_marg: per-run n_eff report + incremental dat writes + dep…
oshaughnessy-junior Jun 5, 2026
b9db3ba
jax_ile driver: add --mode flowmc-phimarg + --n-phi
oshaughnessy-junior Jun 5, 2026
d89a46e
jax_ile: Fisher-whitened multi-start NUTS on the 4-D phimarg posterio…
oshaughnessy-junior Jun 5, 2026
6038fac
jax_ile: lal-free regression test for fisher_nuts_sample_phimarg
oshaughnessy-junior Jun 5, 2026
8e0596b
jax_ile: injection-level smoke test for nuts-phimarg (needs lal; run …
oshaughnessy-junior Jun 5, 2026
94fd9cc
calmarg: cal MC error budget in reported sigma + adaptive cal draw count
oshaughnessy-junior Jun 5, 2026
f28ad8d
GMM integrator: ESS self-tuned tempering + log-domain covariance robu…
oshaughnessy-junior Jun 5, 2026
1a0d606
GMM integrator: finite floor for -inf lnL in refit weights
oshaughnessy-junior Jun 5, 2026
d18a9e5
ILE batchmode: wire use_lnL for AV sampler under --internal-use-lnL
oshaughnessy-junior Jun 5, 2026
8084077
Merge branch 'rift_O4d_junior_calmarg_in_loop' into rift_O4d_junior_g…
oshaughnessy-junior Jun 5, 2026
fe66de6
GMM integrator: rank-elite bootstrap for adaptation + per-chunk diagn…
oshaughnessy-junior Jun 5, 2026
1f3bbd9
ILE batchmode: GMM proposal-structure options for localized single peaks
oshaughnessy-junior Jun 5, 2026
f47d6bc
Merge branch 'cal_in_loop' into rift_O4d_junior_jax_likelihood
oshaughnessy-junior Jun 5, 2026
f50a270
CEP coordinate plugin: easy case, fiducial-coordinate output, extra-c…
oshaughnessy-junior Jun 5, 2026
3a2630b
CEP: document that non-uniform priors / transform Jacobian are the us…
oshaughnessy-junior Jun 5, 2026
6bf330a
Merge branch 'rift_O4d' into rift_O4d_junior_calmarg_in_loop
oshaughnessy-junior Jun 6, 2026
678fca8
Merge pull request #1 from oshaughn/rift_O4d_spokes_digits
oshaughnessy-junior Jun 6, 2026
fccbf04
Merge pull request #3 from oshaughnessy-junior/rift_O4d_junior_hyperp…
oshaughnessy-junior Jun 6, 2026
45e63a5
Merge pull request #4 from oshaughnessy-junior/rift_O4d_junior_interp…
oshaughnessy-junior Jun 6, 2026
4f76bbf
Merge pull request #5 from oshaughnessy-junior/rift_O4d_junior_calmar…
oshaughnessy-junior Jun 6, 2026
cf5e804
spokes: fully thread digit precision
oshaughnessy-junior Jun 6, 2026
ef5f74b
jax_ile: adaptive tempering (--adapt-adapt) + thermodynamic-integrati…
oshaughnessy-junior Jun 6, 2026
21d6ffd
jax_ile: document known ~1% high-SNR evidence bias (flow under-reache…
oshaughnessy-junior Jun 6, 2026
6ac35e7
jax_ile: AD MAP-polish diagnostic — refutes peak-underreach; ~1% offs…
oshaughnessy-junior Jun 6, 2026
26dbdb5
jax_ile core: adaptive Gauss-Hermite distance marginalization (env-ga…
oshaughnessy-junior Jun 6, 2026
18faaaa
jax_ile core: gradient-safe GH distance marg (fix nan/nan after a few…
oshaughnessy-junior Jun 6, 2026
32ee047
jax_ile core: fix broken docstring + document GH nan-gradient status/…
oshaughnessy-junior Jun 6, 2026
2e4bedf
RIFT hyperpipeline: stage LISA sky columns
oshaughnessy-junior Jun 8, 2026
f0edac1
RIFT LISA: import response likelihood modules
oshaughnessy-junior Jun 8, 2026
db82868
RIFT LISA: add import-safety smoke coverage
oshaughnessy-junior Jun 8, 2026
995486d
Merge branch 'rift_O4d_junior_ralph' of https://github.com/oshaughnes…
oshaughnessy-junior Jun 8, 2026
cebe6a0
RIFT LISA: add standalone ILE fork scaffold
oshaughnessy-junior Jun 8, 2026
43c7168
RIFT LISA: wire ILE fork through compat helpers
oshaughnessy-junior Jun 8, 2026
821df29
RIFT LISA: add synthetic operational likelihood test
oshaughnessy-junior Jun 8, 2026
ea1b7de
RIFT LISA: add standalone CEPP helper contract
oshaughnessy-junior Jun 8, 2026
aaba781
jax_ile: adaptive distance quadrature (SNR-hint + precompute), gradie…
oshaughnessy-junior Jun 8, 2026
50a82ff
jax_ile: anchor adaptive distance grid on precompute K/R (not guess_snr)
oshaughnessy-junior Jun 8, 2026
5313f94
jax_ile: robustify adaptive distance grid to mis-located peak (multip…
oshaughnessy-junior Jun 8, 2026
7fd4166
jax_ile: cap adaptive distance grid at ~432 pts to fit the 11GB 2080 Ti
oshaughnessy-junior Jun 8, 2026
7319b0c
jax_ile: gradient-refine distance-peak estimate -> accurate d_peak, n…
oshaughnessy-junior Jun 8, 2026
00a748e
jax_ile: document static-grid limit (distance-incl degeneracy) + per-…
oshaughnessy-junior Jun 8, 2026
f77c032
jax_ile core: add psi (polarization) marginalization kernel -> 3-D (r…
oshaughnessy-junior Jun 8, 2026
5c69d5b
jax_ile wrapper: JAXDistPhiPsiMargLikelihood (3-D ra,dec,incl) over t…
oshaughnessy-junior Jun 8, 2026
a8c1863
jax_ile samplers: add 3-D (ra,dec,incl) prior/eval helpers for psi-ma…
oshaughnessy-junior Jun 8, 2026
2d888a0
jax_ile samplers: make flowmc_sample_phimarg dimension-agnostic (4-D …
oshaughnessy-junior Jun 8, 2026
b428e78
jax_ile ILE: wire --mode flowmc-phipsimarg (3-D phi+psi+distance marg…
oshaughnessy-junior Jun 8, 2026
7380b60
jax_ile core: gradient-checkpoint the (phi,psi)-marg scan (fix 28GB OOM)
oshaughnessy-junior Jun 8, 2026
68ec1ef
jax_ile ILE: drop --n-psi default 16->8 (lean spin-2 grid; sustainabl…
oshaughnessy-junior Jun 8, 2026
a70ec0c
jax_ile: fix evidence block for 3-D path + add d+psi marg kernel
oshaughnessy-junior Jun 8, 2026
afb81f6
WIP breadcrumb: flowmc-dpsimarg (d+psi) mode wired end-to-end (produc…
oshaughnessy-junior Jun 9, 2026
94804c8
jax_ile core: gradient-stable per-sample distance quadrature (fix evi…
oshaughnessy-junior Jun 9, 2026
f786784
jax_gp: export_at_scale -- ship + validate differentiable lnL artifac…
claude Jun 9, 2026
b3fbbfe
export_at_scale: apples-to-apples RIFT priors in validation + flowMC env
claude Jun 9, 2026
eeef0cb
export_at_scale: expose surrogate-smoothing knobs + document the q fi…
claude Jun 9, 2026
1bb684a
export_at_scale: fix quadgp residual kwargs + add mass-prior diagnost…
claude Jun 10, 2026
df7c84f
docs: fully-diagnosed q case study (smooth-GP-vs-RF, not a tunable de…
claude Jun 10, 2026
d35b2e1
export_at_scale: fit in eta (Fisher-quadratic var) -> fixes the q mar…
claude Jun 10, 2026
45aa3b4
export_at_scale: JS on EVERY intrinsic parameter + dgrid detection
claude Jun 10, 2026
7ba4674
docs + dgrid: Sphinx API ref for jax_gp, use-case table, distance-exp…
claude Jun 10, 2026
23d0f66
jax_ile: Fisher-preconditioned flow init for high-SNR (--fisher-preco…
oshaughnessy-junior Jun 10, 2026
36560d3
jax_ile: GH-aware eval chunk so the per-sample path fits small-VRAM GPUs
oshaughnessy-junior Jun 10, 2026
7a9c9b1
export_at_scale: fit aligned spin in (chi_eff,chiMinus) -> fixes low-…
claude Jun 10, 2026
f9f5974
export_at_scale: --spin-coord auto (never regress below cartesian)
claude Jun 10, 2026
94796a6
export_at_scale: condor sub without getenv (CIT rejects SUBMIT_ALLOW_…
claude Jun 10, 2026
5043f94
Merge rift_O4d_junior into calmarg branch
oshaughnessy-junior Jun 10, 2026
f28f2f1
Merge Ralph LISA work into calmarg branch
oshaughnessy-junior Jun 11, 2026
382f223
Merge pull request #6 from oshaughnessy-junior/claude/export-scale
oshaughnessy-junior Jun 11, 2026
760c345
Merge pull request #2 from oshaughnessy-junior/rift_O4d_junior_jax_li…
oshaughnessy-junior Jun 11, 2026
c6527a4
dag_utils: RIFT_REQUIRE_NONWORKER hook for local (non-worker) jobs
oshaughn Jun 11, 2026
115eaf5
Merge branch 'rift_O4d_junior_calmarg_in_loop' of https://github.com/…
oshaughn Jun 11, 2026
0f21c03
container family: OSG-safe per-machine image via container universe (…
oshaughn Jun 11, 2026
3e38385
Merge pull request #8 from oshaughnessy-junior/rift_O4d_osg_container…
oshaughnessy-junior Jun 11, 2026
cbd6206
container family: extend CALPILOT to per-machine image (legacy + cont…
oshaughn Jun 11, 2026
c9cc9cb
Merge pull request #9 from oshaughnessy-junior/rift_O4d_osg_container…
oshaughnessy-junior Jun 11, 2026
7bbe584
Merge branch 'rift_O4d_junior_calmarg_in_loop' of https://github.com/…
oshaughn Jun 11, 2026
fc0bb71
container family: enable osdf scitokens credential for manifest images
oshaughn Jun 11, 2026
3e18793
container family: enable osdf scitokens credential for manifest images
oshaughn Jun 11, 2026
021c99f
calmarg demo: default request_disk=16G + request_memory_ILE=8192 for …
oshaughn Jun 11, 2026
a6c55a9
container universe: collapse to a single container for non-GPU jobs (…
oshaughn Jun 11, 2026
4997922
container_manifest: undefined-safe capability selector (legacy path n…
oshaughn Jun 11, 2026
f4bc0f0
Merge pull request #10 from oshaughnessy-junior/rift_O4d_osg_containe…
oshaughnessy-junior Jun 11, 2026
e77dd94
Merge pull request #11 from oshaughnessy-junior/rift_O4d_osg_containe…
oshaughnessy-junior Jun 11, 2026
55373ad
calmarg demo: raise ILE wall 60->120 min for the fused-calmarg jobs
oshaughn Jun 11, 2026
3092d04
Merge pull request #7 from oshaughnessy-junior/ralph-lisa-into-calmarg
oshaughnessy-junior Jun 12, 2026
6a8922b
ci: skip optional dependency paths in base checks
oshaughnessy-junior Jun 12, 2026
b8d0fb4
Merge remote-tracking branch 'main_repo/rift_O4d' into rift_O4d_junio…
oshaughnessy-junior Jun 12, 2026
0fa697e
test: seed ensemble integration smoke check
oshaughnessy-junior Jun 12, 2026
6eeb195
calmarg demo: raise ILE request_memory 8192->16384 (extrinsic sampler…
oshaughn Jun 12, 2026
3cf9db7
hyperpipeline_io.sniff: don't crash on gzipped/XML grids
oshaughn Jun 12, 2026
aa82945
container family: exclude undefined-capability slots (CIT-local holds…
oshaughn Jun 12, 2026
5c594eb
dag_utils_generic: default getenv '*' not 'True' (CIT SUBMIT_ALLOW_GE…
oshaughn Jun 12, 2026
f0f526f
Merge pull request #12 from oshaughnessy-junior/rift_O4d_citlocal_gpu…
oshaughnessy-junior Jun 12, 2026
91e78c5
distance slices: --distance-slice-all-fresh (no reweight core) + per-…
oshaughn Jun 12, 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
4 changes: 4 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,10 @@ import_check:
stage: system tests
script:
- python .travis/test-all-mod.py
- python -m pytest -q MonteCarloMarginalizeCode/Code/test/test_lisa_response_import.py
- python -m pytest -q MonteCarloMarginalizeCode/Code/test/test_lisa_lalsimutils_compat.py
- python -m pytest -q MonteCarloMarginalizeCode/Code/test/test_lisa_operational_synthetic.py
- python -m pytest -q MonteCarloMarginalizeCode/Code/test/test_lisa_helper_contract.py

sim_manager_check:
stage: unit tests
Expand Down
14 changes: 14 additions & 0 deletions .travis/test-all-bin.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ set -e

# loop over all bin/ scripts
for EXE in MonteCarloMarginalizeCode/Code/bin/*; do
if [[ ! -f ${EXE} ]]; then
echo " Not file : " ${EXE}
continue
fi
# skip scripts with explicit bilby dependence
if [[ ${EXE} == *'calibration_reweighting.py' ]]; then
continue
Expand Down Expand Up @@ -70,6 +74,16 @@ for EXE in MonteCarloMarginalizeCode/Code/bin/*; do
echo "Hyperpipe " ${EXE}
continue
fi
# skip optional JAX driver; base CI does not install the jax extras
if [[ ${EXE} == *"integrate_likelihood_extrinsic_jax" ]]; then
echo "JAX optional " ${EXE}
continue
fi
# skip optional HTCondor2 driver; base CI does not install htcondor2
if [[ ${EXE} == *"cepp_basic_htcondor" ]]; then
echo "HTCondor2 optional " ${EXE}
continue
fi
# skip tests that require condor environment
if [[ ${EXE} == *"check_CIP_complete_work.py" ]]; then
continue
Expand Down
14 changes: 14 additions & 0 deletions .travis/test-all-mod.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,20 @@
r"\ANo module named 'cupy'\Z",
r"\ANo module named asimov\Z",
r"\ANo module named 'asimov'\Z",
r"\ANo module named jax\Z",
r"\ANo module named 'jax'\Z",
r"\ANo module named optax\Z",
r"\ANo module named 'optax'\Z",
r"\ANo module named equinox\Z",
r"\ANo module named 'equinox'\Z",
r"\ANo module named tinygp\Z",
r"\ANo module named 'tinygp'\Z",
r"\ANo module named numpyro\Z",
r"\ANo module named 'numpyro'\Z",
r"\ANo module named flowMC\Z",
r"\ANo module named 'flowMC'\Z",
r"\ANo module named htcondor2\Z",
r"\ANo module named 'htcondor2'\Z",
])))


Expand Down
23 changes: 23 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
0.0.18.0
------------
development tree is rift_O4d.
- (rc0) O4d base refresh, from rift_O4c to rift_O4d: Python/numpy CI modernization (py3.10-py3.13,
numpy 2.x checks), Asimov/RIFT smoke tests, docs deployment, pluggable workflow backends and
simulation-manager prototypes, distance-grid/distance-slice likelihood export, container-family and pixi/SWIG
canaries, hyperpipeline ASCII workflow support, parsimonious-placement preview, EFPE and standalone NR-frame
utilities, plot_RIFT diagnostics, and GPU/CuPy portability fixes.

** (rc0)
- parsimonious-placement (preview): new RIFT.misc.tracer_placement engine (SMC+MALA, birth-death,
Expand Down Expand Up @@ -37,6 +42,24 @@ development tree is rift_O4d.
- ascii data format; waveforms (epfe); container auto-selection framework (first draft); cepp_alternate now feature-parity;
mcsamplerEnsemble full GPU path
- multiple demos
- (rc1 pending) In-loop calibration marginalization: move calibration draws into ILE, add loop and fused
GPU kernels (including distance-marginalized and phase-marginalized paths), export cal/time diagnostics,
account for calibration Monte-Carlo error in reported uncertainty, add adaptive/pilot calibration proposal
scaffolding, and include a runnable calmarg demo with OSG/container transfer fixes.
- (rc1 pending) Extrinsic proposal handoff and sampler robustness: save and consolidate extrinsic GMM
breadcrumbs across iterations, seed later ILE jobs from those proposals, add GMM proposal/adaptation
controls and diagnostics, improve log-domain covariance/ESS handling, and thread the cal/extrinsic seed
barriers through CEPP/puffball workflows.
- (rc1 pending) Differentiable JAX likelihood/export work: optional jax_gp interpolators, differentiable
export artifacts, quad-GP and RF/GP validation tooling, jax_cip experiments, and a JAX ILE driver with
AD-compatible extrinsic likelihood, distance/phase marginalization, network coordinates, and gradient-aware
samplers. These remain optional extras and are skipped by base CI when JAX is not installed.
- (rc1 pending) LISA support: add a LISA compatibility layer, response import path, standalone helper
contract, LISA ILE scaffold, and synthetic operational/import tests.
- (rc1 pending) EOS/coordinate and workflow updates: add NMB/PCA/tabular EOS sequence dispatch and
single-EOS-index evidence support, coordinate-plugin hooks for posterior plotting and puffing, Morisaki-frame
and aligned-spin coordinate helpers for GP/JAX studies, container-universe/OSDF scitokens support, and
per-machine container image selection.

0.0.17.9
------------
Expand Down
2 changes: 2 additions & 0 deletions MonteCarloMarginalizeCode/Code/RIFT/LISA/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
"""LISA-specific response and analysis helpers for RIFT."""

283 changes: 283 additions & 0 deletions MonteCarloMarginalizeCode/Code/RIFT/LISA/lalsimutils_compat.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,283 @@
"""Compatibility helpers for the standalone LISA ILE fork.

These routines are adapted from Aasim Z. Jan's LISA-RIFT
``lisa_rift_paper`` branch. Keep LISA-only shims here while the normal
``RIFT.lalsimutils`` and ILE driver continue to evolve independently.
"""

import os
import sys

import h5py
import lal
import lalsimulation as lalsim
import numpy as np

import RIFT.lalsimutils as lalsimutils


def _filter_modes(hlms, modes):
if modes is None:
return hlms

requested_modes = {tuple(map(int, mode)) for mode in modes}
return {mode: hlm for mode, hlm in hlms.items() if mode in requested_modes}


def hlmoff_for_LISA(
P,
Lmax=4,
modes=None,
fd_standoff_factor=0.964,
fd_alignment_postevent_time=None,
path_to_NR_hdf5=None,
**kwargs
):
"""Generate frequency-domain modes with the sizing expected by LISA ILE."""
assert Lmax >= 2
assert (not np.isnan(P.m1)) and (not np.isnan(P.m2)), "Masses are NaN."

extra_waveform_args = {}
if "extra_waveform_args" in kwargs:
extra_waveform_args.update(kwargs["extra_waveform_args"])
extra_params = P.to_lal_dict_extended(extra_args_dict=extra_waveform_args)

fNyq = 0.5 / P.deltaT
TDlen = int(1.0 / (P.deltaT * P.deltaF))
if fd_alignment_postevent_time:
if fd_alignment_postevent_time >= TDlen * P.deltaT / 2:
print(
" Warning: fd alignment postevent time requested incompatible with short duration ",
file=sys.stderr,
)

if path_to_NR_hdf5 is not None:
hlms_struct = lalsimutils.hlmoft_from_NRhdf5(
path_to_NR_hdf5,
P,
Lmax,
only_mode=modes,
taper_percent=10,
beta=8,
verbose=True,
)
return {mode: lalsimutils.DataFourier(hlms_struct[mode]) for mode in hlms_struct}

fd_mode_approximants = {
lalsimutils.lalIMRPhenomHM,
lalsimutils.lalIMRPhenomXPHM,
lalsimutils.lalIMRPhenomXHM,
}
if P.approx in fd_mode_approximants:
hlms_struct = lalsim.SimInspiralChooseFDModes(
P.m1,
P.m2,
P.s1x,
P.s1y,
P.s1z,
P.s2x,
P.s2y,
P.s2z,
P.deltaF,
P.fmin * fd_standoff_factor,
fNyq,
P.fref,
P.phiref,
P.dist,
P.incl,
extra_params,
P.approx,
)
hlmsdict = lalsimutils.SphHarmFrequencySeries_to_dict(hlms_struct, Lmax)
hlmsdict = _filter_modes(hlmsdict, modes)
return {
mode: lal.ResizeCOMPLEX16FrequencySeries(hlm, 0, TDlen)
for mode, hlm in hlmsdict.items()
}

if P.approx in {lalsimutils.lalNRHybSur3dq8, lalsimutils.lalIMRPhenomD}:
hlms_struct = lalsimutils.hlmoff(P, Lmax=Lmax)
hlmsdict = lalsimutils.SphHarmFrequencySeries_to_dict(hlms_struct, Lmax)
hlmsdict = _filter_modes(hlmsdict, modes)
for mode, hlm in list(hlmsdict.items()):
if not (1 / hlm.deltaF == P.deltaT * TDlen):
print(
"WARNING: RESIZING IN FD DOMAIN "
f"(1/deltaF = {1 / hlm.deltaF}, deltaT*TDlen = {P.deltaT * TDlen}), "
"THIS SHOULD NOT BE HAPPENING."
)
hlmsdict[mode] = lal.ResizeCOMPLEX16FrequencySeries(hlm, 0, TDlen)
return hlmsdict

raise ValueError(f"Unsupported LISA FD mode approximant: {P.approx}")


def _cache_path_for_channel(fname, channel):
cache_data = np.loadtxt(fname, dtype=str)
if cache_data.ndim == 1:
cache_data = cache_data.reshape(1, len(cache_data))

channel_prefix = channel[0]
for row in cache_data:
if row[0] == channel_prefix:
raw_path = row[-1]
if "localhost" in raw_path:
raw_path = raw_path.split("localhost", 1)[1]
elif raw_path.startswith("file://"):
raw_path = raw_path[len("file://"):]
return os.path.expanduser(raw_path)

raise ValueError(f"Could not find channel {channel!r} in cache {fname!r}")


def frame_h5_to_hoff(fname, channel, start=None, stop=None, verbose=True):
"""Read LISA frequency-domain HDF5 data from a cache entry."""
if verbose:
print(" ++ Loading from cache ", fname, channel)

path_to_h5 = _cache_path_for_channel(fname, channel)
if verbose:
print(f"Reading h5 file {path_to_h5}")

with h5py.File(path_to_h5, "r") as data:
hoff = lal.CreateCOMPLEX16FrequencySeries(
"hoff",
data.attrs["epoch"],
data.attrs["f0"],
data.attrs["deltaF"],
lalsimutils.lsu_HertzUnit,
int(data.attrs["length"]),
)
hoff.data.data = data["data"][()]

return hoff


def frame_h5_to_hoft(fname, channel, start=None, stop=None, verbose=True):
"""Read LISA time-domain HDF5 data from a cache entry."""
if verbose:
print(" ++ Loading from cache ", fname, channel)

path_to_h5 = _cache_path_for_channel(fname, channel)
if verbose:
print(f"Reading h5 file {path_to_h5}")

with h5py.File(path_to_h5, "r") as data:
hoft = lal.CreateREAL8TimeSeries(
"hoft",
data.attrs["epoch"],
data.attrs["f0"],
data.attrs["deltaT"],
lal.DimensionlessUnit,
int(data.attrs["length"]),
)
hoft.data.data = data["data"][()]

return hoft


def frame_data_to_non_herm_hoff(
fname,
channel,
start=None,
stop=None,
TDlen=0,
window_shape=0.0,
verbose=True,
deltaT=None,
h5_frame=False,
):
"""Read frame/HDF5 time-domain data and FFT to two-sided frequency data."""
if not h5_frame:
return lalsimutils.frame_data_to_non_herm_hoff(
fname,
channel,
start=start,
stop=stop,
TDlen=TDlen,
window_shape=window_shape,
verbose=verbose,
deltaT=deltaT,
)

ht = frame_h5_to_hoft(fname, channel, start, stop, verbose)

tmplen = ht.data.length
if TDlen == -1:
TDlen = tmplen
elif TDlen == 0:
TDlen = lalsimutils.nextPow2(tmplen)
else:
assert TDlen >= tmplen

ht = lal.ResizeREAL8TimeSeries(ht, 0, TDlen)
hoftC = lal.CreateCOMPLEX16TimeSeries(
"h(t)", ht.epoch, ht.f0, ht.deltaT, ht.sampleUnits, TDlen
)
hoftC.data.data = ht.data.data + 0j
fwdplan = lal.CreateForwardCOMPLEX16FFTPlan(TDlen, 0)
hf = lal.CreateCOMPLEX16FrequencySeries(
"Template h(f)",
ht.epoch,
ht.f0,
1.0 / ht.deltaT / TDlen,
lalsimutils.lsu_HertzUnit,
TDlen,
)
lal.COMPLEX16TimeFreqFFT(hf, hoftC, fwdplan)
if verbose:
print(
" ++ Loaded data h(f) of length n= ",
hf.data.length,
" (= ",
len(hf.data.data) * ht.deltaT,
"s) at sampling rate ",
1.0 / ht.deltaT,
)
return hf


def print_params_lisa(self, show_system_frame=False):
"""LISA-flavored parameter printer used by the standalone ILE fork."""
print("This ChooseWaveformParams has the following parameter values:")
print(f"m1 = {self.m1 / lalsimutils.lsu_MSUN / 1e3:0.3f} x 1e3 (Msun)")
print(f"m2 = {self.m2 / lalsimutils.lsu_MSUN / 1e3:0.3f} x 1e3 (Msun)")
print("s1x =", self.s1x)
print("s1y =", self.s1y)
print("s1z =", self.s1z)
print("s2x =", self.s2x)
print("s2y =", self.s2y)
print("s2z =", self.s2z)
if show_system_frame:
self.print_params(show_system_frame=show_system_frame)
print("lambda1 =", self.lambda1)
print("lambda2 =", self.lambda2)
print("inclination =", self.incl)
print("distance =", self.dist / 1.0e9 / lalsimutils.lsu_PC, "(Gpc)")
print("reference orbital phase =", self.phiref)
print("polarization angle =", self.psi)
print("eccentricity = ", self.eccentricity)
print("reference time = ", float(self.tref), "(s)")
print("detector is: LISA")
print("ecliptic latitude (beta):", self.theta, "(radians)")
print("ecliptic longitude (lambda):", self.phi, "(radians)")
print("starting frequency is =", self.fmin, "(Hz)")
print("reference frequency is =", self.fref, "(Hz)")
print("Max frequency is =", self.fmax, "(Hz)")
print("time step =", self.deltaT, "(s) <==>", 1.0 / self.deltaT, "(Hz) sample rate")
print("freq. bin size is =", self.deltaF, "(Hz)")


def install_choose_waveform_print_params_lisa():
"""Install the LISA printer on ChooseWaveformParams for the LISA fork."""
lalsimutils.ChooseWaveformParams.print_params_lisa = print_params_lisa


__all__ = [
"frame_data_to_non_herm_hoff",
"frame_h5_to_hoff",
"frame_h5_to_hoft",
"hlmoff_for_LISA",
"install_choose_waveform_print_params_lisa",
"print_params_lisa",
]
Loading
Loading