Skip to content

Add Lie-Trotter integrator for SGHMC - #945

Draft
bkozyrskiy wants to merge 1 commit into
blackjax-devs:mainfrom
bkozyrskiy:lie-trotter-sghmc
Draft

Add Lie-Trotter integrator for SGHMC#945
bkozyrskiy wants to merge 1 commit into
blackjax-devs:mainfrom
bkozyrskiy:lie-trotter-sghmc

Conversation

@bkozyrskiy

Copy link
Copy Markdown

Description

This PR adds an optional Lie-Trotter integrator for SGHMC.

The existing SGHMC behavior remains unchanged by default: build_kernel() still uses the original Euler SGHMC diffusion unless a custom integrator is passed. The new integrator provides a splitting-based SGHMC update with a deterministic leapfrog Hamiltonian step followed by an exact Ornstein-Uhlenbeck momentum update.

Related issues / discussions

N/A

Checklist

General

  • [x ] The branch is rebased on the latest main
  • Commit messages are clear and descriptive
  • pre-commit run --all-files passes (black, isort, flake8, mypy)
  • Tests cover the changes (mamba run -n blackjax python -m pytest tests/)

Code quality

  • Public functions have docstrings following the NumPy style guide
  • Naming follows existing conventions (logdensity, jax.tree.map, jax.random.key(), jnp.clip(min=, max=))
  • All new code is JIT-compatible

New sampler / algorithm (skip if not applicable)

  • There is an open issue discussing this algorithm (use the sampler proposal template)
  • Follows the three-layer pattern: init / build_kernel / as_top_level_api
  • Registered in blackjax/__init__.py
  • An example notebook has been added or updated

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant