blackjax.mcmc.integrators#

Symplectic, time-reversible, integrators for Hamiltonian trajectories.

Module Contents#

Functions#

implicit_midpoint(→ Integrator)

The implicit midpoint integrator with support for non-stationary kinetic energy

Attributes#

velocity_verlet

Two-stage palindromic symplectic integrator derived in [BCSS14].

mclachlan

Three stages palindromic symplectic integrator derived in [McL95]

yoshida

isokinetic_leapfrog

isokinetic_yoshida

isokinetic_mclachlan

velocity_verlet[source]#

Two-stage palindromic symplectic integrator derived in [BCSS14].

The integrator is of the form (b1, a1, b2, a1, b1). The choice of the parameters determine both the bound on the integration error and the stability of the method with respect to the value of step_size. The values used here are the ones derived in [McL95]; note that [BCSS14] is more focused on stability and derives different values.

Also known as the minimal norm integrator.

mclachlan[source]#

Three stages palindromic symplectic integrator derived in [McL95]

The integrator is of the form (b1, a1, b2, a2, b2, a1, b1). The choice of the parameters determine both the bound on the integration error and the stability of the method with respect to the value of step_size. The values used here are the ones derived in [McL95] which guarantees a stability interval length approximately equal to 4.67.

yoshida[source]#
isokinetic_leapfrog[source]#
isokinetic_yoshida[source]#
isokinetic_mclachlan[source]#
implicit_midpoint(logdensity_fn: Callable, kinetic_energy_fn: blackjax.mcmc.metrics.KineticEnergy, *, solver: FixedPointSolver = solve_fixed_point_iteration, **solver_kwargs: Any) Integrator[source]#

The implicit midpoint integrator with support for non-stationary kinetic energy

This is an integrator based on Brofos and Lederman [BL21], which provides support for kinetic energies that depend on position. This integrator requires that the kinetic energy function takes two arguments: position and momentum.

The solver parameter allows overloading of the fixed point solver. By default, a simple fixed point iteration is used, but more advanced solvers could be implemented in the future.