All Projects → lawmurray → Birch

lawmurray / Birch

Licence: Apache-2.0 license
A probabilistic programming language that combines automatic differentiation, automatic marginalization, and automatic conditioning within Monte Carlo methods.

Programming Languages

C++
36643 projects - #6 most used programming language
M4
1887 projects
Makefile
30231 projects

Projects that are alternatives of or similar to Birch

Bda py demos
Bayesian Data Analysis demos for Python
Stars: ✭ 781 (+876.25%)
Mutual labels:  bayesian-inference, bayesian-data-analysis
Shinystan
shinystan R package and ShinyStan GUI
Stars: ✭ 172 (+115%)
Mutual labels:  bayesian-inference, bayesian-data-analysis
Rhat ess
Rank-normalization, folding, and localization: An improved R-hat for assessing convergence of MCMC
Stars: ✭ 19 (-76.25%)
Mutual labels:  bayesian-inference, bayesian-data-analysis
Bayesian Stats Modelling Tutorial
How to do Bayesian statistical modelling using numpy and PyMC3
Stars: ✭ 480 (+500%)
Mutual labels:  bayesian-inference, bayesian-data-analysis
KissABC.jl
Pure julia implementation of Multiple Affine Invariant Sampling for efficient Approximate Bayesian Computation
Stars: ✭ 28 (-65%)
Mutual labels:  bayesian-inference, bayesian-data-analysis
Dbda Python
Doing Bayesian Data Analysis, 2nd Edition (Kruschke, 2015): Python/PyMC3 code
Stars: ✭ 502 (+527.5%)
Mutual labels:  bayesian-inference, bayesian-data-analysis
Rethinking Pyro
Statistical Rethinking with PyTorch and Pyro
Stars: ✭ 116 (+45%)
Mutual labels:  bayesian-inference, bayesian-data-analysis
Bayadera
High-performance Bayesian Data Analysis on the GPU in Clojure
Stars: ✭ 342 (+327.5%)
Mutual labels:  bayesian-inference, bayesian-data-analysis
admc
Infinite order automatic differentiation for Monte Carlo with unnormalized probability distribution
Stars: ✭ 17 (-78.75%)
Mutual labels:  monte-carlo, automatic-differentiation
Autoppl
C++ template library for probabilistic programming
Stars: ✭ 34 (-57.5%)
Mutual labels:  automatic-differentiation, bayesian-inference
pmh-tutorial
Source code and data for the tutorial: "Getting started with particle Metropolis-Hastings for inference in nonlinear models"
Stars: ✭ 23 (-71.25%)
Mutual labels:  monte-carlo, system-identification
DynamicHMCExamples.jl
Examples for Bayesian inference using DynamicHMC.jl and related packages.
Stars: ✭ 33 (-58.75%)
Mutual labels:  bayesian-inference, bayesian-data-analysis
Bayesian Analysis Recipes
A collection of Bayesian data analysis recipes using PyMC3
Stars: ✭ 479 (+498.75%)
Mutual labels:  bayesian-inference, bayesian-data-analysis
Rstan
RStan, the R interface to Stan
Stars: ✭ 760 (+850%)
Mutual labels:  bayesian-inference, bayesian-data-analysis
Bda r demos
Bayesian Data Analysis demos for R
Stars: ✭ 409 (+411.25%)
Mutual labels:  bayesian-inference, bayesian-data-analysis
Pymc Example Project
Example PyMC3 project for performing Bayesian data analysis using a probabilistic programming approach to machine learning.
Stars: ✭ 90 (+12.5%)
Mutual labels:  bayesian-inference, bayesian-data-analysis
pyfilter
Particle filtering and sequential parameter inference in Python
Stars: ✭ 52 (-35%)
Mutual labels:  bayesian-inference, sequential-monte-carlo
Rstanarm
rstanarm R package for Bayesian applied regression modeling
Stars: ✭ 285 (+256.25%)
Mutual labels:  bayesian-inference, bayesian-data-analysis
Stan
Stan development repository. The master branch contains the current release. The develop branch contains the latest stable development. See the Developer Process Wiki for details.
Stars: ✭ 2,177 (+2621.25%)
Mutual labels:  bayesian-inference, bayesian-data-analysis
LogDensityProblems.jl
A common framework for implementing and using log densities for inference.
Stars: ✭ 26 (-67.5%)
Mutual labels:  bayesian-inference, bayesian-data-analysis

Birch

Birch is a probabilistic programming language featuring automatic marginalization, automatic conditioning, automatic differentiation, and inference algorithms based on Sequential Monte Carlo (SMC). The Birch language transpiles to C++.

See https://birch.sh for a gentle introduction, and https://docs.birch.sh for reference documentation.

lawmurray codecov Contributor Covenant

License

Birch is open source software. It is licensed under the Apache License, Version 2.0 (the "License"); you may not use it except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

Getting started

Linux

Packages are provided for major Linux distributions, including Debian, Ubuntu, Fedora, CentOS, openSUSE, SUSE Linux Enterprise, Mageia, and Arch. Click through to the Open Build Service and select your distribution for installation instructions.

For Raspberry Pi OS, head straight to the repository. For Alpine Linux, which you may be particularly interested in for installing Birch in a lightweight container environment, you will need to install from source, but we do support musl for this purpose.

FreeBSD

You will need to install from source, see below.

Mac

Install Homebrew if not already, then install Birch with:

brew tap lawmurray/birch
brew install birch

Windows

Native support is not yet provided, but you can install Windows Subsystem for Linux with a Linux distribution of your choice, then click through to the Open Build Service and select that distribution for installation instructions.

From source

If a package is not available for your operating system or you have special requirements, you can install Birch from source. This requires:

The following are optional, but will be linked in automatically if found (to improve performance):

All Birch sources are in the same repository. The main branch is considered stable. Clone it:

git clone https://github.com/lawmurray/Birch.git

and change to the Birch directory:

cd Birch

Then proceed as follows. Note special instructions for Mac in step 2. In addition, on Mac, you can typically omit sudo from these commands.

  1. Install the driver by running, from within the driver/ directory:

    ./bootstrap
    ./configure
    make
    sudo make install
    
  2. Install LibBirch by running, from within the libbirch/ directory:

    ./bootstrap
    ./configure
    make
    sudo make install
    

    On Mac, use the following configure line instead:

    ./configure --disable-openmp CPPFLAGS="-Xpreprocessor -fopenmp"
    

    Despite the apparently conflicting options, this will enable multithreading with OpenMP (specifically, it disables the standard check in the configure script, which fails on Mac, but then adds the required flags).

  3. Install the standard library by running, from within the libraries/Standard/ directory:

    birch build
    sudo birch install
    

This constitutes a basic install with both debug (unoptimized, with debugging information) and release (optimized, without debugging information) modes. You may also like to install other packages in the libraries/ directory. It is not usual to install the packages in the examples/ directory, although you may like to build and run these locally for testing and learning purposes.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].