Stan is a C++ package providing
- full Bayesian inference using the No-U-Turn sampler (NUTS), a variant of Hamiltonian Monte Carlo (HMC),
- approximate Bayesian inference using automatic differentiation variational inference (ADVI), and
- penalized maximum likelihood estimation (MLE) using L-BFGS optimization.
It is built on top of the Stan Math library, which provides
- a full first- and higher-order automatic differentiation library based on C++ template overloads, and
- a supporting fully-templated matrix, linear algebra, and probability special function library.
There are interfaces available in R, Python, MATLAB, Julia, Stata, Mathematica, and for the command line.
Stan's home page, with links to everything you'll need to use Stan is:
There are separate repositories in the stan-dev GitHub organization for the interfaces, higher-level libraries and lower-level libraries.
Stan's source-code repository is hosted here on GitHub.
The Stan math library, core Stan code, and CmdStan are licensed under new BSD. RStan and PyStan are licensed under GPLv3, with other interfaces having other open-source licenses.
Note that the Stan math library depends on the Intel TBB library which is licensed under the Apache 2.0 license. This dependency implies an additional restriction as compared to the new BSD lincense alone. The Apache 2.0 license is incompatible with GPL-2 licensed code if distributed as a unitary binary. You may refer to the Apache 2.0 evaluation page on the Stan Math wiki.