Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
f715f4f
ILE: make the extrinsic zoom-box limits work with the cosine samplers
oshaughnessy-junior Aug 3, 2026
0a3b867
lalsimutils: zero unpaired -fNyq bin whenever resize truncates, not o…
oshaughn Aug 7, 2026
90e669a
probe: confirm flagged opt-in rows at fresh seeds before they fail th…
oshaughnessy-junior Aug 7, 2026
e3e6aaa
_rvs audit: derive importance weights, never read the ambiguous log_w…
oshaughnessy-junior Aug 8, 2026
0863d2f
Merge pull request #55 from oshaughnessy-junior/rift_O4d_rvs_cache_audit
oshaughnessy-junior Aug 8, 2026
a9e3992
Harden probe confirmation validation
oshaughn Aug 8, 2026
73ca881
lalsimutils: centralize FD-grid convention choice in evaluate_fvals(l…
oshaughn Aug 8, 2026
8cfe584
Merge pull request #54 from oshaughnessy-junior/rift_O4d_probe_confirm
oshaughnessy-junior Aug 8, 2026
bce0862
CIP: fair posterior export via systematic resampling; unique capped f…
oshaughnessy-junior Aug 8, 2026
ba2b38d
Merge origin/rift_O4d development into rift_O4d
oshaughn Aug 8, 2026
7ecb118
convergence test: restore DRAW order; the recompute workaround never …
oshaughnessy-junior Aug 8, 2026
5e802f3
cip_pipeline: normalize weights in the input dtype before the float64…
oshaughnessy-junior Aug 8, 2026
cef0446
convergence test: document the ordering trap instead of working aroun…
oshaughnessy-junior Aug 8, 2026
b8865fc
cip_pipeline: compute the unique-draw bound exactly from the scaled sum
oshaughnessy-junior Aug 8, 2026
1a36444
test docstring: record that NEITHER repair works, matching what the t…
oshaughnessy-junior Aug 8, 2026
4633f83
test/cip_pipeline: guard the longdouble exact-bound case behind the f…
oshaughnessy-junior Aug 8, 2026
19c8f06
Merge pull request #56 from oshaughnessy-junior/rift_O4d_cip_fairdraw…
oshaughnessy-junior Aug 9, 2026
4178dc2
gate: give the mis-budgeted GMM cell its own budget; record the adapt…
oshaughnessy-junior Aug 9, 2026
003e5ae
Fix container canaries after setuptools 84
oshaughn Aug 9, 2026
36ea694
Merge pull request #60 from oshaughnessy-junior/codex/fix-container-c…
oshaughnessy-junior Aug 9, 2026
3e3991b
BUG: G-group CIP master sub used the standard CIP exe, not --cip-exe-G
oshaughnessy-junior Aug 10, 2026
e73aaa0
Merge pull request #57 from oshaughnessy-junior/rift_O4d_weights_sort…
oshaughnessy-junior Aug 10, 2026
af6fcf5
Preserve flat-mode no-op master over the G-group exe
oshaughnessy-junior Aug 10, 2026
3c08f5f
Merge pull request #61 from oshaughnessy-junior/rift_O4d_fix_gauss_ma…
oshaughnessy-junior Aug 10, 2026
607adf8
gate: apply the per-cell budget on both entry points; exclude the fai…
oshaughnessy-junior Aug 10, 2026
d3dd2a2
AV: fix the high-SNR empty-live-volume crash, and report the collapse
oshaughnessy-junior Aug 10, 2026
6a82836
AV: address PR #63 review, and close the L0 warm-pass gap
oshaughnessy-junior Aug 10, 2026
b2cb0e6
gate: make both pinning tests actually able to fail
oshaughnessy-junior Aug 10, 2026
f6bfc5d
AV: make the collapse machine-readable, and judge warm seeds by rank
oshaughnessy-junior Aug 10, 2026
cf72943
Merge pull request #59 from oshaughnessy-junior/rift_O4d_gate_budget
oshaughnessy-junior Aug 10, 2026
7e6f2ed
ILE zoom box: GPU-safe truncated samplers, CI coverage, numpy 2 trapz
oshaughnessy-junior Aug 10, 2026
ba25e37
AV: aggregate replica collapse status; fix two sidecar/rank edge cases
oshaughnessy-junior Aug 10, 2026
98e5dff
Merge pull request #58 from oshaughnessy-junior/rift_O4d_limit_cosine…
oshaughnessy-junior Aug 10, 2026
002352b
ILE: apply the collapse-rejection gate to the POOLED verdict too
oshaughnessy-junior Aug 11, 2026
b4ddb3a
Merge pull request #63: AV high-SNR empty-live-volume crash
oshaughnessy-junior Aug 11, 2026
2471c94
distance slices: inherit the ILE chunk size instead of a private hard…
oshaughnessy-junior Aug 10, 2026
2bb6f3e
Merge pull request #64 from oshaughnessy-junior/rift-distance-slice-c…
oshaughnessy-junior Aug 11, 2026
89abbd7
distance slices: keep the pinned-d integrand on its native backend (d…
oshaughnessy-junior Aug 11, 2026
3e99f37
Merge pull request #67: distance-slice integrand stays on its native …
oshaughnessy-junior Aug 11, 2026
f7f0288
ln_weights_from_rvs: do not take log() of lnL under --internal-use-lnL
oshaughnessy-junior Aug 10, 2026
8054b76
lnL convention: key off the stored representation, and fix replica po…
oshaughnessy-junior Aug 10, 2026
9887838
Merge pull request #62 from oshaughnessy-junior/rift_O4d_fix_dgrid_ex…
oshaughnessy-junior Aug 11, 2026
dbd9a4b
bench_weight_clip: persist per-seed rows and provenance instead of on…
oshaughnessy-junior Aug 11, 2026
f40c8e4
gate: measure the quick-preset shape floor; it is a GMM defect, not a…
oshaughnessy-junior Aug 11, 2026
7405be0
bench_weight_clip: sweep targets hard enough to test the clip, one ru…
oshaughnessy-junior Aug 11, 2026
0ef4252
shape gate: refuse to measure a RIFT that is not the checkout under test
oshaughnessy-junior Aug 11, 2026
53a553c
gate: the retained quick row is a reproducer, not a detector
oshaughnessy-junior Aug 11, 2026
5b32bf7
Merge pull request #71 from oshaughnessy-junior/claude/shape-recovery…
oshaughnessy-junior Aug 11, 2026
2c954fb
gate: make the item 7 reproducer runnable, and renumber around the gu…
oshaughnessy-junior Aug 11, 2026
192bfc7
bench_weight_clip: address review -- refuse contaminated JSON, record…
oshaughnessy-junior Aug 11, 2026
0958cf6
Merge pull request #68: weight-clip benchmark measures targets where …
oshaughnessy-junior Aug 11, 2026
e72c5a7
Merge rift_O4d: keep item 6 (provenance guard) and item 7 (GMM shape …
oshaughnessy-junior Aug 11, 2026
59c516a
gate: state what the budget sweep measured, not more
oshaughnessy-junior Aug 11, 2026
11a5bc7
gate: the guard comment kept the absolute the follow-up had already d…
oshaughnessy-junior Aug 11, 2026
9f4f01f
Merge pull request #70 from oshaughnessy-junior/rift_O4d_gate_quick_f…
oshaughnessy-junior Aug 11, 2026
3ccc138
portfolio: build the fair-draw weights on the sampler's own backend
oshaughnessy-junior Aug 11, 2026
ec5aac4
calmarg fused self-term fix: per-realization rho_sq_c = <C_c h|C_c h>
oshaughnessy-junior Aug 11, 2026
38dbfc0
Merge pull request #76 from oshaughnessy-junior/rift_O4d_portfolio_fa…
oshaughn Aug 12, 2026
ac6eb17
calmarg self-term: address review (API compat, n_cal==1, docs)
oshaughnessy-junior Aug 12, 2026
e670614
calmarg: add --calibration-global-norm to fall back to the cheaper <h…
oshaughnessy-junior Aug 12, 2026
91595a9
util_RandomizeOverlapOrder: interleave across worker files, not just …
oshaughnessy-junior Aug 12, 2026
3f1f7cf
L0 rescue: judge the warm seed by RANK, and puff it to the measured p…
oshaughnessy-junior Aug 11, 2026
9d3ce5e
AV/L0 rescue: seed from the points the pass RETAINED, not the fair-dr…
oshaughnessy-junior Aug 11, 2026
d69f1e7
test: regression suite for the L0 rescue warm seed
oshaughnessy-junior Aug 11, 2026
8af2957
AV/portfolio: build the warm-seed reserve in the PORTFOLIO too (revie…
oshaughnessy-junior Aug 12, 2026
f7b303c
Merge pull request #82 from oshaughnessy-junior/rift_O4d_interleave_w…
oshaughn Aug 12, 2026
64fd0ea
warm-seed reserve: stratify by finite-ness before bounding, on a priv…
oshaughnessy-junior Aug 12, 2026
0ea53aa
calmarg self-term: address review (cache collision, burn-in shape, bu…
oshaughnessy-junior Aug 12, 2026
a91cc59
ci: add calibration-marginalization regression gates (CPU + CUDA)
oshaughnessy-junior Aug 12, 2026
f51eae7
Merge remote-tracking branch 'junior/rift_O4d' into calmarg-fused-sel…
oshaughnessy-junior Aug 12, 2026
113a783
Merge pull request #78 from oshaughnessy-junior/claude/l0-rescue-seed…
oshaughn Aug 12, 2026
ad426d9
Merge pull request #77 from oshaughnessy-junior/calmarg-fused-selfter…
oshaughnessy-junior Aug 12, 2026
7ca5c8d
warm-seed reserve: record the exact pre-cap weight total, and put the…
oshaughnessy-junior Aug 12, 2026
2b47727
transverse study: land js_lame + tail-guard puff on the merged fair-e…
oshaughnessy-junior Aug 11, 2026
16e8ebd
js_lame: key the thresholds to the noise floor at the achieved distin…
oshaughnessy-junior Aug 11, 2026
a3f09a8
helper: escape the percent sign in the --internal-test-convergence-me…
oshaughnessy-junior Aug 12, 2026
bc21083
Merge pull request #84 from oshaughnessy-junior/claude/l0-rescue-exac…
oshaughnessy-junior Aug 12, 2026
53a4072
Address independent review of js_lame convergence safeguards
Aug 12, 2026
4cde559
Guard transverse-tail convergence bundle for spin model compatibility
Aug 12, 2026
95853d2
Preserve bounded KDE bandwidth in convergence checks
Aug 12, 2026
9f5b182
Make automatic convergence thresholds deterministic
Aug 12, 2026
dbece27
Address independent review of js_lame convergence safeguards
Aug 12, 2026
a9059af
Merge pull request #69 from oshaughnessy-junior/rift_O4d_transverse_i…
oshaughn Aug 12, 2026
0ae3f48
CHANGES: record 0.0.18.0 development since rc1
oshaughnessy-junior Aug 13, 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
71 changes: 71 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,34 @@ jobs:
- name: Run simulation_manager smoke test
run: bash .travis/test-simulation-manager.sh

integrator-gate-accounting-check:
needs: install
runs-on: ubuntu-latest
# The shape-recovery gate and its opt-in flag probe are far too expensive for CI and stay out
# of it. The ACCOUNTING that decides whether one of their rows BLOCKS a merge is neither: it is
# pure logic, runs in seconds (no sampler is ever built -- the gate seams are stubbed), and a
# bug in it silently CLEARS a real regression. That is not hypothetical: a noisy row failed a
# PR, and the confirmation added to absorb it could be configured to re-test nothing, and its
# two arms shared a monkey-patched sampler factory so the "default" arm ran with the flag on.
# So this part runs on every pipeline.
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
cache-dependency-path: requirements.txt
- name: Enable symlink
run: sudo ln -sf $(which python3) /usr/bin/python
- name: Install dependencies
run: |
python -m pip install --upgrade pip --break-system-packages
python -m pip install -r requirements.txt --break-system-packages
python -m pip install coverage pytest --break-system-packages
python -m pip install --editable . --break-system-packages
- name: Run probe confirm-on-fail accounting tests
run: python -m pytest -q MonteCarloMarginalizeCode/Code/test/expensive_before_merging/integrators/test_probe_confirm.py

lisa-check:
needs: install
runs-on: ubuntu-latest
Expand All @@ -192,6 +220,27 @@ jobs:
- name: Run LISA smoke and contract tests
run: bash .travis/test-lisa.sh

calmarg-check:
needs: install
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
cache-dependency-path: requirements.txt
- name: Enable symlink
run: sudo ln -sf $(which python3) /usr/bin/python
- name: Install dependencies
run: |
python -m pip install --upgrade pip --break-system-packages
python -m pip install -r requirements.txt --break-system-packages
python -m pip install coverage pytest --break-system-packages
python -m pip install --editable . --break-system-packages
- name: Run calibration-marginalization regression gate
run: bash .travis/test-calmarg.sh

integration-check:
needs: install
runs-on: ubuntu-latest
Expand Down Expand Up @@ -287,6 +336,24 @@ jobs:
- name: Show resolved versions
run: |
python -c "import sys, numpy, scipy; print('python', sys.version); print('numpy', numpy.__version__); print('scipy', scipy.__version__)"
- name: Run sampler unit/regression tests
# Also run by .travis/test-integrate.sh (integration-check, py3.10). Repeated here
# because this job is the only one matrixed over BOTH numpy lanes, and these tests
# are the kind that break on numpy API removals (e.g. np.trapz -> np.trapezoid).
run: python -m pytest -q MonteCarloMarginalizeCode/Code/test/test_limit_cosine_samplers.py
- name: Run adaptive-volume collapse / evidence-accounting regressions
# These were unguarded. The AV live-volume-collapse family, the L0 rescue's warm
# seed, and the portfolio fair-draw backend each shipped a regression suite that NO
# CI job invoked, so a required check could stay green while any of them broke --
# including suites from already-merged PRs. They are exactly the kind that regress
# silently: an evidence normalization or an inclusion probability is still a
# plausible-looking number when it is wrong. Fast (seconds each), CPU-only, and
# matrixed over both numpy lanes here.
run: |
python -m pytest -q \
MonteCarloMarginalizeCode/Code/test/test_av_empty_live_volume.py \
MonteCarloMarginalizeCode/Code/test/test_l0_rescue_seed.py \
MonteCarloMarginalizeCode/Code/test/test_portfolio_fairdraw_backend.py
- name: Run test scripts
run: |
. .travis/test-coord.sh
Expand Down Expand Up @@ -316,6 +383,10 @@ jobs:
# so a red run should alert maintainers, not block unrelated PRs.
runs-on: ubuntu-latest
continue-on-error: true
env:
# pygsl_lite 0.1.8 uses the pre-84 distutils.spawn calling convention.
# This affects only PEP 517 build backends, not the unpinned runtime solve.
PIP_BUILD_CONSTRAINT: ${{ github.workspace }}/containers/constraints-container-build.txt
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
Expand Down
18 changes: 17 additions & 1 deletion .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,22 @@ sim_manager_check:
- python -m pip install lscsoft-glue --break-system-packages || echo "lscsoft-glue unavailable; condor portion will skip"
- bash .travis/test-simulation-manager.sh

calmarg_check:
stage: unit tests
script:
# in-loop calibration marginalization + per-realization self-term (CPU).
- bash .travis/test-calmarg.sh

integrator_gate_accounting_check:
stage: unit tests
script:
# The shape-recovery gate and its opt-in flag probe are far too expensive for CI and stay out
# of it. The ACCOUNTING that decides whether one of their rows blocks a merge is neither: it
# is pure logic, runs in seconds (no sampler is built), and a bug in it silently CLEARS a real
# regression -- which is how a noisy row failed a PR and how an untested row could pass one.
# So that part runs on every pipeline.
- python -m pytest -q MonteCarloMarginalizeCode/Code/test/expensive_before_merging/integrators/test_probe_confirm.py

test_run:
stage: system tests
script:
Expand Down Expand Up @@ -140,7 +156,7 @@ gpu_integration:
--env GW_SURROGATE="$GW_SURROGATE"
--env RIFT_CI_REQUIRE_GPU="$RIFT_CI_REQUIRE_GPU"
"$RIFT_CI_APPTAINER_IMAGE"
bash -lc 'cd "$CI_PROJECT_DIR" && export PYTHONPATH="$CI_PROJECT_DIR/MonteCarloMarginalizeCode/Code${PYTHONPATH:+:$PYTHONPATH}" && bash .travis/test-integrate.sh'
bash -lc 'cd "$CI_PROJECT_DIR" && export PYTHONPATH="$CI_PROJECT_DIR/MonteCarloMarginalizeCode/Code${PYTHONPATH:+:$PYTHONPATH}" && bash .travis/test-integrate.sh && bash .travis/test-calmarg-gpu.sh'
rules:
- if: '$CI_PIPELINE_SOURCE == "web"'
when: manual
Expand Down
35 changes: 35 additions & 0 deletions .travis/test-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,39 @@ assert_has `pwd`/test_build_slices/ILE.sub "--distance-marginalization "
assert_absent `pwd`/test_build_slices/ILE_extr.sub "--distance-marginalization "
echo "OK: Plan-B slice export only on ILE_extr.sub; distance marginalization disabled only at the extrinsic stage"

# --- 4. Gauss-early ('G') CIP groups use the alternate exe where a real CIP runs ---
# --use-gauss-early makes the first cip-args-list entry a G group. Two regimes:
#
# 4a. Non-flat exploded jobs (gp fit method): the master job runs a real
# CIP (it saves the shared fit), so the G exe must land in the master sub
# (CIP_0.sub) and not just the worker sub; non-G groups keep the standard
# CIP. Without explode jobs the master is the only CIP, same assignment.
# The ini's [rift-pseudo-pipe] section overrides the command line, so the
# gp fit method must be set in an ini variant, not via --cip-fit-method.
GAUSS_INI=`pwd`/test_build_gauss_gpfit.ini
sed 's/^cip-fit-method=.*/cip-fit-method="gp"/' $REF_INI > $GAUSS_INI
util_RIFT_pseudo_pipe.py --use-ini $GAUSS_INI --use-coinc $COINC --use-rundir `pwd`/test_build_gauss --fake-data-cache `pwd`/foo.cache --use-gauss-early
assert_has `pwd`/test_build_gauss/CIP_0.sub "GaussianResampling"
assert_absent `pwd`/test_build_gauss/CIP_0.sub "GenericCoordinates"
assert_has `pwd`/test_build_gauss/CIP_worker0.sub "GaussianResampling"
assert_has `pwd`/test_build_gauss/CIP_1.sub "GenericCoordinates"
assert_absent `pwd`/test_build_gauss/CIP_1.sub "GaussianResampling"
echo "OK: gauss-early G group uses GaussianResampling in master and worker subs (non-flat)"

# 4b. Flat exploded jobs (default here: non-gp fit method): no shared fit, so
# the master is a documented /bin/true no-op for EVERY group -- including G
# groups, whose exe must appear only in the worker sub. Matches the
# non-per-iteration CIP.sub, which is also /bin/true in flat mode.
util_RIFT_pseudo_pipe.py --use-ini $REF_INI --use-coinc $COINC --use-rundir `pwd`/test_build_gauss_flat --fake-data-cache `pwd`/foo.cache --use-gauss-early
# CIP.sub (the non-per-iteration master) goes /bin/true via long-standing
# separate code; it doubles as the witness that this render really is flat.
assert_has `pwd`/test_build_gauss_flat/CIP.sub "/bin/true"
assert_has `pwd`/test_build_gauss_flat/CIP_0.sub "/bin/true"
assert_absent `pwd`/test_build_gauss_flat/CIP_0.sub "GaussianResampling"
assert_absent `pwd`/test_build_gauss_flat/CIP_0.sub "GenericCoordinates"
assert_has `pwd`/test_build_gauss_flat/CIP_worker0.sub "GaussianResampling"
assert_has `pwd`/test_build_gauss_flat/CIP_1.sub "/bin/true"
assert_has `pwd`/test_build_gauss_flat/CIP_worker1.sub "GenericCoordinates"
echo "OK: flat explode mode keeps the no-op /bin/true master for G and non-G groups"

echo "test-build.sh: all pipeline-build checks passed"
15 changes: 15 additions & 0 deletions .travis/test-calmarg-gpu.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/usr/bin/env bash
# Calibration-marginalization CUDA gate: exercises the fused GPU kernels
# (cuda_Q_fused_calmarg[_distmarg].cu) via the fused reduction against the
# brute-force reference, including the per-realization self-term. Requires a GPU
# + cupy; run on the GitLab gpu runner. Any nonzero exit fails the job.
set -euo pipefail
PY="${PYTHON:-python}"
command -v "$PY" >/dev/null 2>&1 || PY="$(command -v python3)"
CODE="MonteCarloMarginalizeCode/Code"
export OMP_NUM_THREADS=1
( cd "$CODE" \
&& "$PY" -m RIFT.calmarg.test_selfterm_reduction --backend gpu \
&& "$PY" -m RIFT.calmarg.backtest_calmarg --backend gpu --n-cal 12 --methods reference,in_loop_B,in_loop_C \
&& "$PY" -m RIFT.calmarg.backtest_calmarg --backend gpu --n-cal 12 --loglikelihood distmarg --methods reference,in_loop_B,in_loop_C )
echo "calmarg GPU (CUDA) regression gate: PASS"
27 changes: 27 additions & 0 deletions .travis/test-calmarg.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/usr/bin/env bash
# Calibration-marginalization regression gate (CPU). Covers the in-loop calmarg
# reduction and the per-realization self-term fix: precompute time-alignment +
# identity-cal cross terms, the loop/fused reduction vs a brute-force reference
# (incl. n_cal==1), the low-rank SVD self-term basis vs a direct band integral, and
# the backtest of the cal reduction (default + distance-marginalization helpers).
# Any nonzero exit fails the job (set -e). GPU/CUDA paths are exercised separately
# on hardware; here every check runs on the numpy backend.
set -euo pipefail

PY="${PYTHON:-python}"
command -v "$PY" >/dev/null 2>&1 || PY="$(command -v python3)"
CODE="MonteCarloMarginalizeCode/Code"
export OMP_NUM_THREADS=1

# precompute alignment + identity-cal self-term cross terms == baseline
"$PY" "$CODE/RIFT/calmarg/test_precompute_alignment.py"

# reduction + self-term basis + backtest run as modules from the code root
( cd "$CODE" \
&& "$PY" -m RIFT.calmarg.test_selfterm_basis \
&& "$PY" -m RIFT.calmarg.test_selfterm_reduction --backend cpu \
&& "$PY" -m RIFT.calmarg.test_calmarg_reduction \
&& "$PY" -m RIFT.calmarg.backtest_calmarg --backend cpu --n-cal 8 --methods reference,in_loop_B \
&& "$PY" -m RIFT.calmarg.backtest_calmarg --backend cpu --n-cal 8 --loglikelihood distmarg --methods reference,in_loop_B )

echo "calmarg CPU regression gate: PASS"
6 changes: 6 additions & 0 deletions .travis/test-integrate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@ print(f"GPU preflight OK: cupy={cupy.__version__}, cuda_devices={n_devices}")
PY
fi

# Unit/regression tests for the sampler helpers themselves (fast, no data needed).
# The extrinsic "zoom box" limits under the cosine samplers live here: they are pure
# coordinate-transform + prior-mass identities, so they belong with the integrator gate
# rather than with the end-to-end run tests.
python -m pytest -q MonteCarloMarginalizeCode/Code/test/test_limit_cosine_samplers.py

python MonteCarloMarginalizeCode/Code/test/test_mcsamplerEnsemble_extended.py --as-test --n-max 100000

python MonteCarloMarginalizeCode/Code/test/test_mcsamplerEnsemble_extended.py --as-test --n-max 100000 --use-lnL
Loading
Loading