mcmc-ocaml icon indicating copy to clipboard operation
mcmc-ocaml copied to clipboard

OCaml Markov Chain Monte Carlo

SUMMARY

This library implements a general MCMC sampler and associated libraries, including

  • The methods described in Farr and Mandel (2011) (http://arxiv.org/abs/1104.0984 ) for interpolating jump proposals in a reversible jump MCMC.

  • The evidence calculation methods from Weinberg's paper on Computing the Bayesian Factor from a Markov chain Monte Carlo Simulation of the Posterior Distribution (http://arxiv.org/abs/0911.1777 ).

Also in the library is a simple nested-sampling implementation (see Skilling, J. Nested Sampling. AIP Conference Proceedings, vol. 735, pp. 395--405, 2004.).

BUILDING

  • To build the library, use ocamlbuild:

    ocamlbuild mcmc.cma mcmc.cmxa

  • To build the code documentation:

    ocamlbuild mcmc.docdir/index.html

  • To build all of the above at once, use

    ocamlbuild all.otarget

  • To build the test suite, you will require oUnit (http://ounit.forge.ocamlcore.org/ ). Edit the myocamlbuild.ml file to point to your oUnit installation, and then issue

    ocamlbuild run_tests.{native,byte}

    If you encounter compilation errors, then you may have to modify the definition of the cmp_float function to:

    (* Compare floats up to a given relative error ) let cmp_float ?(epsabs = eps) ?(epsrel = eps) a b = let dx = abs_float (a -. b) and avg = 0.5.((abs_float a) +. (abs_float b)) in dx <= epsabs +. epsrel*.avg

  • Various useful example programs can be found in the bin/ subdirectory; you can build them with

    ocamlbuild <program_name>.{native,byte}

  • To clean the code, issue the command

    ocamlbuild -clean

LICENSE

This library is released under the GPL version 3; see the LICENSE file for more information.