PF: a library for fast particle filtering!

This is a template library for fast particle filtering. Templated abstract base classes for different particle filters are provided (e.g. the Bootstrap Filter, the Auxiliary Particle Filter, Rao-Blackwellized particle filter, etc.), as well as non-abstract (but indeed templated) base classes for closed form filtering algorithms (e.g. Kalman Filter, Hidden Markov Model filter, etc.).

Once you have a certain model in mind, all you have to do is make it into a class that inherits from the filter you want to use!


This is a header-only library, so there is no building necessary. When you use it in another project, make sure to compile with C++11 enabled (-std=c++11), and to include the include directory of this project.

Note, also, that this code all makes use of Eigen and Boost.


Don't know how to use this? Check out the examples directory! Check pf/examples/Makefile to make sure it jives with your directories, and then run make. After that, run ./examples ./data/svol_y_data.csv and you'll see the filtering output from examples/svol_comparison.cpp.


Click the "DOI" link above. Or, if you're impatient, click 'here' for a Bibtex citation.