What's Changed
- Add adjoint-differentiated Laplace HMC (blackjax.laplace_hmc) by @junpenglao in #856
- Code quality cleanup: bugs, naming, typos, and modernization by @junpenglao in #857
- Add missing docstrings and document magic numbers by @junpenglao in #858
- Code quality: protocol tests, deferred cleanups, and namespace encapsulation by @junpenglao in #859
- Refactor lambda-assigned run_steps to named function in mclmc_adaptation by @junpenglao in #860
- Split util.py into cohesive modules (Phase 7.1) by @junpenglao in #861
- Refactor mclmc build_kernel to standard pattern (Phase 7.2) by @junpenglao in #862
- Simplify random_walk.py indirection (Phase 7.3) by @junpenglao in #863
- Add build_sampling_algorithm helper to reduce boilerplate (7.7) by @junpenglao in #864
- Refactor adjusted_mclmc_dynamic build_kernel to standard pattern (7.8) by @junpenglao in #865
- Deduplicate adjusted_mclmc shared code (7.9) by @junpenglao in #867
- Fix incorrect citation: Sountsov → Seyboldt et al. by @junpenglao in #868
- Deduplicate rescale() between dynamic_hmc and adjusted_mclmc (7.10) by @junpenglao in #869
- Replace premature ravel_pytree with jax.tree.map (7.11/7.12) by @junpenglao in #870
- Modernize jax.lax.cond: remove legacy operand=None (4.5) by @junpenglao in #872
- docs: fix broken notebooks, replace Aesara with PyTensor, add Design Principles by @junpenglao in #873
- Add guidelines for new algorithms (docs and skeletons) by @albcab in #485
- Move Design Principles to DEVELOPER DOCUMENTATION section by @junpenglao in #874
- Fix flaky TestLaplaceAdjointAnalytical: cap Poisson observation range by @junpenglao in #875
- Feature/multinomal hmc sampler by @Idg772 in #854
- Add laplace_multinomial_hmc and dynamic_multinomial_hmc aliases by @junpenglao in #876
- Rename HMC aliases to short names (mhmc, dhmc, dmhmc, laplace_mhmc) by @junpenglao in #877
- Add laplace_dhmc and laplace_dmhmc samplers by @junpenglao in #878
- Update all exports for all public samplers and algorithms by @junpenglao in #879
- Unify integration_steps_fn to accept *integration_steps_params by @junpenglao in #880
- Add speed-up guide and horseshoe NUTS benchmark by @junpenglao in #883
- Fix JAX nightly CI silently swallowing test failures by @junpenglao in #884
- Fix missing dependencies in JAX nightly CI by @junpenglao in #885
- fix: refactor flaky SMC tuning test by @junpenglao in #887
- tests: relax atol in Laplace-HMC funnel test for robustness by @junpenglao in #888
- tests: improve SMC test stability by @junpenglao in #889
- Standardize JAX patterns (jax.tree) by @junpenglao in #891
- Add MCMC diagnostics guide by @junpenglao in #892
- Restructure and consolidate developer documentation by @junpenglao in #893
- Fix progress bar DeprecationWarning (JAX 0.10.0 compatibility) by @junpenglao in #895
- docs: add Funsor PPL integration tutorial (GMM discrete marginalisation) by @junpenglao in #896
- docs: fix funsor tutorial plot — replace az.plot_dist with matplotlib by @junpenglao in #898
- docs: improve Funsor tutorial (idiomatic API, NumPyro section, ArviZ fix) by @junpenglao in #899
- docs: fix label switching in Funsor GMM posterior plots by @junpenglao in #900
- docs: add algorithm index and standard inference loop (issue #890) by @junpenglao in #901
- docs: add Laplace-preconditioned HMC how-to guide (issue #890) by @junpenglao in #902
- build: migrate package management to uv by @junpenglao in #903
- docs: update CONTRIBUTING.md for uv dev workflow by @junpenglao in #904
- Minor update post uv update by @junpenglao in #905
- docs(mclmc): document 3-tuple return of mclmc_find_L_and_step_size by @junpenglao in #906
- docs(smc): correct adaptive_persistent_sampling step signature in docstring by @junpenglao in #908
- tests(vi): robustify test_elbo_decreases_over_steps against PRNG noise by @junpenglao in #909
- fix(smc): clamp natural parameters to >= 1 in pretuning by @junpenglao in #910
- fix(smc): correct sign in ess_solver to match tempered SMC weight update by @junpenglao in #915
- fix: make low_rank_window_adaptation vmap-compatible (#916) by @junpenglao in #917
- window_adaptation: add initial_inverse_mass_matrix kwarg by @junpenglao in #918
- tests: extend std_normal_logdensity with scale kwarg + drop orphan _fixtures.py by @junpenglao in #920
- pathfinder_adaptation: add num_chains + n_paths for multi-chain via multipathfinder dispatch by @junpenglao in #919
- window_adaptation: add imm_shrinkage_to_previous pseudo-count kwarg by @junpenglao in #921
- fix(pathfinder_adaptation): ravel pytree positions before PSIS mixture-covariance einsum by @junpenglao in #922
- rename low_rank_window_adaptation → window_adaptation_low_rank by @junpenglao in #923
- tests(vi): stabilize Schrödinger-Föllmer recover-posterior test under date-rotated seed by @junpenglao in #924
- Surface L-BFGS diagnostics in laplace kernel Info (#925) by @junpenglao in #926
- feat(laplace): laplace_lbfgs_grad_evals() utility for benchmark grad-count denominators by @junpenglao in #928
- fix(eca): replace keys_sampling.T with jnp.swapaxes to fix old-style PRNGKey shape corruption by @junpenglao in #931
- feat(smc): add batch_size for memory-bounded SMC execution via jax.lax.map by @thomasckng in #929
- test(smc): trim redundant non-divisor batch test to a map_fn/map_kernel unit test by @junpenglao in #933
- feat(mclmc): LRD preconditioned ESH integrator — O(dk) Low-Rank+Diagonal MCLMC by @junpenglao in #936
- feat(adaptation): mclmc_lrd_adaptation — Scheme A pilot-free LRD warmup by @junpenglao in #937
- feat(adaptation): gated √d warm-start for mclmc_lrd_warmup by @junpenglao in #938
- fix(adaptation): default avg=2 trajectory length for adjusted_mclmc_dynamic (escape MALA collapse) by @junpenglao in #939
- fix(adaptation): avg-preserving trajectory-length calibration for adjusted_mclmc_dynamic (fix high-d acceptance collapse) by @junpenglao in #940
- fix(tests): reduce MC error in Laplace flaky tests via larger N by @junpenglao in #942
- fix(adaptation): mclmc_lrd adjusted-path step/L mismatch — drop L_init re-pin (option ii) by @junpenglao in #941
- Add slice sampling kernel by @dirmeier in #943
- Slice integration by @yallup in #946
- Nested sampling by @yallup in #947
- fix(ns/tests): shrink heavy end-to-end test configs to fix CI OOM by @junpenglao in #948
- Fix low-rank Fisher mass-matrix adaptation: invert score covariance, fix regularization scale by @junpenglao in #949
- Generalize ghmc to accept dense / low-rank momentum metrics by @junpenglao in #950
- Slim ghmc backward-compat metric dispatch (behavior-preserving) by @junpenglao in #953
- Add nutpie-style schedule option to low-rank window adaptation (proportional window sizing + gradient-based init) by @junpenglao in #951
- Add GIST sampler family: self-tuning step size (autoStep-style) and trajectory length (no-U-turn) by @junpenglao in #952
- MEADS-LRD: opt-in low-rank momentum metric for meads_adaptation by @junpenglao in #954
- ChEES-HMC: opt-in ensemble diagonal metric + metric-consistent criterion + slow-direction trajectory-length floor by @junpenglao in #955
- Reduce MC flakiness in GIST trajectory-length funnel-neck test by @junpenglao in #957
- Harden low-rank Fisher metric: scale-relative PD guard + f64 promotion by @junpenglao in #956
- Add opt-in nutpie-style continuous warmup schedule for window_adaptation_low_rank by @junpenglao in #958
- Make GIST funnel-neck moment tests robust across JAX versions (self-calibrating ESS-gated tolerance) by @junpenglao in #959
- fix(eca): pass args through shard_map instead of closing over it by @Sumu004 in #961
- feat(ci): dedicated multi-device test job + eca.py cleanup by @junpenglao in #962
- fix(deps): bump 5 vulnerable transitive deps (idna/msgpack/starlette/tornado/urllib3) by @junpenglao in #963
- Replace progress-bar mechanism with a scan-instrumenting context manager by @junpenglao in #964
- Add howto: show progress during sampling (progress_bar context manager) by @junpenglao in #965
- docs: verified-frontends line in the progress_bar howto by @junpenglao in #966
- Auto-provision >=2 devices for multi-device tests via conftest by @junpenglao in #967
- Skip flaky GIST funnel-neck marginal test (tracking: #970) by @junpenglao in #971
- Add jax-tap to the progress extra by @junpenglao in #968
- Re-platform progress_bar emission onto jax-tap (M1) by @junpenglao in #972
- Fix MCLMC NaN handling: truthful divergence flag, revived step-size shrink, no silent sampling corruption by @junpenglao in #974
- Expose MCLMC warmup divergence flags as tuning-scan ys (jaxtap-observable) + degenerate-warmup checking docs by @junpenglao in #975
New Contributors
- @Idg772 made their first contribution in #854
- @dirmeier made their first contribution in #943
- @yallup made their first contribution in #946
- @Sumu004 made their first contribution in #961
Full Changelog: 1.5...1.6