``walnutpie`` ====================================================================== ``walnutpie`` is a Python package for Markov chain Monte Carlo (MCMC) sampling of differentiable target log densities. - ``walnutpie`` can run models coded in Stan, PyMC, NumPyro, JAX, Numba, as well as models coded directly in Python. - The underlying sampler is `Walnuts `__, which adds dynamic step-size adaptation to the `no-U-turn sampler `__ (Nuts), which in turn is based on `Hamiltonian Monte Carlo `__ (HMC). - The mass matrix and step-size adaptation scheme use an online variant of `Nutpie `__ - For estimating the maximum step size during warmup, Walnuts uses `Adam `__ rather than dual averaging for stochastic gradient descent. - Chain execution is multithreaded with optional convergence detection for warmup and sampling through lock-free buffers. - Posterior analysis tools are included for the varying-length chains produced by asynchronous automatic stopping. Python library -------------- .. toctree:: :maxdepth: 2 install py example.ipynb ``walnutpie`` accepts target log densities and gradients directly in Python, including those coded in `NumPyro `__, `PyMC `__, or `JAX `__, even with foreign function calls. `Stan `__ models can be accessed directly at the C++ level through `BridgeStan `__. C++ interface documentation --------------------------- ``walnutpie`` is implemented in multi-threaded C++20 with a stable client-facing API. .. toctree:: :maxdepth: 2 cpp License ------- - ``walnutpie`` is distributed under the `MIT License `__. Bug reports and feature requests -------------------------------- Bug reports and feature requests are handled through GitHub. - `Walnutpie issue tracker `__ Developers and other contributors --------------------------------- We welcome new developers to the project and try to maintain a friendly and constructive environment. To get started, see the developers guide on GitHub: - `Contributing to walnutpie `__