Home

BAT Documentation

BAT.jl is the Julia version of the Bayesian Analysis Toolkit. It is designed to help solve statistical problems encountered in Bayesian inference. Typical examples are the extraction of the values of the free parameters of a model, the comparison of different models in the light of a given data set, and the test of the validity of a model to represent the data set at hand. BAT.jl aims to provide multiple algorithms that give access to the full Bayesian posterior distribution, to enable parameter estimation, limit setting and uncertainty propagation. BAT.jl also provides supporting functionality like plotting recipes and reporting functions.

This package is a complete rewrite of the previous C++-BAT in Julia. BAT.jl provides several improvements over it's C++ predecessor, but has not yet reached feature parity in all areas. There is no backward compatibility, but the spirit is the same: providing a tool for Bayesian computations of complex models that require application-specific code.

BAT.jl is implemented in pure Julia and allows for a flexible definition of mathematical models and applications while enabling the user to code for the performance required for computationally expensive numerical operations. BAT.jl provides implementations (internally of via other Julia packages) of algorithms for sampling, optimization and integration. While predefined models are (resp. will soon be) provided for standard cases, such as simple counting experiments, binomial problems or Gaussian models, BAT's main strength lies in the analysis of complex models. The package is designed to enable multi-threaded and distributed code execution at various levels, multi-threaded MCMC chains are provided out-of-the-box.

In addition to likelihood functions implemented in Julia, BAT.jl provides a lightweight binary protocol to connect to functions written in other languages and running in separate processes (code for likelihoods written in C++ is included).

Getting started

Prerequisites

TODO: ...

How-to-get-started / Tutorial

TODO: ...

Developer Instructions

To generate and view a local version of the documentation, run

cd docs
julia make.jl local

then open "docs/build/index.html" in your browser.

When changing the code of BAT.jl and testing snippets and examples in the REPL, automatic code reloading comes in very handy. Try out Revise.jl.

Documentation

User guide

FAQ

Publications and talks

How to cite BAT.jl

LICENSE

Algorithms

Sampling algorithms (and interfaces)

TODO: List algorithms and short short descriptions.

Integration algorithms (and interfaces)

TODO: List algorithms and short short descriptions.

Optimization algorithms (and interfaces)

TODO: List algorithms and short short descriptions.

Other algorithms (and interfaces)

Interfaces

TODO: List interfaces

Examples

Common models and problems

The 1-D Gaussian model

The Poisson problem (counting experiments)

The binomial case

Add more models and problems

Published scientific examples

A multivariate Gaussian combination model (similar to BLUE)

The EFTfitter

Benchmarks and performance tests

Acknowledgements

We acknowledge the contributions from all the BAT.jl users who help us make BAT.jl a better project. Your help is very welcome!

Development of BAT.jl has been supported by funding from