{"id":43685147,"url":"https://github.com/tbrown122387/pf","last_synced_at":"2026-02-05T02:33:01.425Z","repository":{"id":43203029,"uuid":"130237492","full_name":"tbrown122387/pf","owner":"tbrown122387","description":"PF: a header only template library for fast particle filtering!","archived":false,"fork":false,"pushed_at":"2025-02-04T19:57:51.000Z","size":45011,"stargazers_count":61,"open_issues_count":11,"forks_count":17,"subscribers_count":5,"default_branch":"master","last_synced_at":"2026-01-29T19:08:40.046Z","etag":null,"topics":["particle-filter","statistical-methods","statistical-models","statistics"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tbrown122387.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"ko_fi":"TaylorBrown"}},"created_at":"2018-04-19T15:37:23.000Z","updated_at":"2025-11-09T20:54:17.000Z","dependencies_parsed_at":"2024-06-03T03:30:18.513Z","dependency_job_id":"fa88c5bb-5453-4196-ba96-99e8e3942750","html_url":"https://github.com/tbrown122387/pf","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/tbrown122387/pf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbrown122387%2Fpf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbrown122387%2Fpf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbrown122387%2Fpf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbrown122387%2Fpf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tbrown122387","download_url":"https://codeload.github.com/tbrown122387/pf/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbrown122387%2Fpf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29107524,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T02:25:47.218Z","status":"ssl_error","status_checked_at":"2026-02-05T02:25:44.497Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["particle-filter","statistical-methods","statistical-models","statistics"],"created_at":"2026-02-05T02:33:01.352Z","updated_at":"2026-02-05T02:33:01.411Z","avatar_url":"https://github.com/tbrown122387.png","language":"HTML","funding_links":["https://ko-fi.com/TaylorBrown"],"categories":[],"sub_categories":[],"readme":"# PF: a library for fast particle filtering!\n\n[![DOI](https://zenodo.org/badge/130237492.svg)](https://zenodo.org/badge/latestdoi/130237492)\n[![DOI](https://joss.theoj.org/papers/10.21105/joss.02599/status.svg)](https://doi.org/10.21105/joss.02599)\n\nThis is a template library for [particle filtering](https://en.wikipedia.org/wiki/Particle_filter). Templated abstract base classes for different particle filters are provided (e.g. the Bootstrap Filter, the SISR filter, the Auxiliary Particle Filter, the Rao-Blackwellized particle filter), as well as non-abstract (but indeed templated) base classes for closed-form filtering algorithms (e.g. Kalman Filter, Hidden Markov Model filter, etc.). \n\nOnce 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.\n\n## Dependencies\n\nThis code makes use of the following libraries: \n\n- [Eigen v3.3](http://eigen.tuxfamily.org/) \n- [Boost v1.65.1](https://www.boost.org/)\n- [Catch2](https://github.com/catchorg/Catch2) \n\n\nAlso, your compiler must enable C++17. \n\n\n## Installation\n\n### Option 1: Install with `CMake` \n\n`git clone` this Github repostory, `cd` into the directory where everything is saved, then run the following commands:\n\n    mkdir build \u0026\u0026 cd build/\n    cmake .. -DCMAKE_INSTALL_PREFIX:PATH=/usr/local\n    sudo cmake --build . --config Release --target install --parallel\n\nYou may subsitute another directory for `/usr/local`, if you wish. This will also build unit tests that can be run with the following command (assuming you're still in `build/`):\n\n    ./test/pf_test\n\nNote: for this to method work, you will need to install Catch2 \"system wide\" so that its `*.cmake` files are installed as well. To do this, [click here](https://github.com/catchorg/Catch2/blob/master/docs/cmake-integration.md#installing-catch2-from-git-repository). \n\n### Option 2: Drag-and-drop `.h` files\n\nThis is a header-only library, so there will be no extra building necessary. If you just want to copy the desired header files from `include/pf` into your own project, and build that project by itself, that's totally fine. There is no linking necessary, either. If you go this route, though, make sure to compile with C++17 enabled. Note, also, that this code all makes use of [Eigen v3.3](http://eigen.tuxfamily.org/) and [Boost v1.65.1](https://www.boost.org/). Unit tests use the [Catch2](https://github.com/catchorg/Catch2) library.\n\n\n## Examples\n\nDon't know how to use this? No problem. Check out the [`examples`](https://github.com/tbrown122387/pf/tree/master/examples) sub-directory. This is a stand-alone cmake project, so you can just copy this sub-directory anywhere you like, and start editing.\n\nFor example, copy to `Desktop` and have at it:\n\n    cp -r ~/pf/examples/ ~/Desktop/\n    cd Desktop/examples/\n    mkdir build \u0026\u0026 cd build\n    cmake ..\n    make\n\nIf there are no error messages, you will have an executable named `pf_example` in that same directory. Running it without command line arguments will prompt you for arguments and tell you how it can be used.\n\n## Contributing\n\nWant to contribute to this project? Great! Click [here](CONTRIBUTING.md) for details on how to do that. We also have an \"ideas list\" you can check out [here](ideas_list.md).\n\n## Paper\n\nA full-length tutorial paper is available [here,](https://arxiv.org/abs/2001.10451) and a shorter introduction paper is available [here.](https://joss.theoj.org/papers/10.21105/joss.02599)\n\n## Citation\n\nClick the \"DOI\" link above. Or, if you're impatient, click ['here'](https://zenodo.org/record/2633289/export/hx) for a Bibtex citation.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftbrown122387%2Fpf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftbrown122387%2Fpf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftbrown122387%2Fpf/lists"}