Documentation and code examples are available at https://asaparov.org/docs/hdp. The repository is located at https://github.com/asaparov/hdp.

This repository implements data structures to represent Dirichlet processes and hierarchical Dirichlet processes (see hdp.h for an overview of these concepts). In addition, this repository provides a Markov chain Monte Carlo sampler to perform inference in mcmc.h.


To use the code, simply download the files into a folder named "hdp". Add this folder to the include path for the compiler, for example by using the -I flag.

This library depends on core and math. The code makes use of C++11 and is regularly tested with gcc 11 but I have previously compiled it with gcc 4.8, clang 4.0, and Microsoft Visual C++ 14.0 (2015). The code is intended to be platform-independent, so please create an issue if there are any compilation bugs.


There is an example in the documentation for mcmc.h, as well as a test program in mcmc.cpp which can be built using make hdp_mcmc.