Skip to content

Commit 515cb7f

Browse files
committed
forgot to stash pop
1 parent 2e74901 commit 515cb7f

File tree

349 files changed

+2638
-1498
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

349 files changed

+2638
-1498
lines changed

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,14 @@
22

33
[![DOI](https://zenodo.org/badge/130237492.svg)](https://zenodo.org/badge/latestdoi/130237492)
44

5-
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!
5+
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.).
6+
7+
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!
68

79
## Installation
8-
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 the [Eigen library](http://eigen.tuxfamily.org/).
10+
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.
11+
12+
Note, also, that this code all makes use of [Eigen](http://eigen.tuxfamily.org/) and [Boost](https://www.boost.org/).
913

1014
## Examples
1115
Don't know how to use this? Check out the [`examples`](https://github.com/tbrown122387/pf/tree/master/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`.

docs/html/annotated.html

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -90,23 +90,32 @@
9090
<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrvsamp_1_1k__gen.html" target="_self">k_gen</a></td><td class="desc">A class that performs sampling with replacement (useful for the index sampler in an <a class="el" href="classAPF.html" title="A base-class for Auxiliary Particle Filtering. Filtering only, no smoothing. ">APF</a>) </td></tr>
9191
<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrvsamp_1_1MVNSampler.html" target="_self">MVNSampler</a></td><td class="desc">A class that performs sampling from a multivariate normal distribution </td></tr>
9292
<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrvsamp_1_1rvsamp__base.html" target="_self">rvsamp_base</a></td><td class="desc">Base class for all random variable sampler types. Primary benefit is that it sets the seed for you </td></tr>
93-
<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrvsamp_1_1UniformSampler.html" target="_self">UniformSampler</a></td><td class="desc">A class that performs sampling from a continuous uniform distribution </td></tr>
94-
<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrvsamp_1_1UnivNormSampler.html" target="_self">UnivNormSampler</a></td><td class="desc">A class that performs sampling from a univariate Normal distribution </td></tr>
93+
<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrvsamp_1_1TruncUnivNormSampler.html" target="_self">TruncUnivNormSampler</a></td><td class="desc">Default-constructor .. </td></tr>
94+
<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrvsamp_1_1UniformSampler.html" target="_self">UniformSampler</a></td><td class="desc">A class that performs sampling from a continuous uniform distribution </td></tr>
95+
<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrvsamp_1_1UnivLogNormSampler.html" target="_self">UnivLogNormSampler</a></td><td class="desc">A class that performs sampling from a univariate Log-Normal distribution </td></tr>
96+
<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrvsamp_1_1UnivNormSampler.html" target="_self">UnivNormSampler</a></td><td class="desc">A class that performs sampling from a univariate Normal distribution </td></tr>
9597
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAPF.html" target="_self">APF</a></td><td class="desc">A base-class for Auxiliary Particle Filtering. Filtering only, no smoothing </td></tr>
96-
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classBSFilter.html" target="_self">BSFilter</a></td><td class="desc">A base class for the boostrap particle filter </td></tr>
97-
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classBSFilterWC.html" target="_self">BSFilterWC</a></td><td class="desc">A base class for the boostrap particle filter with covariates </td></tr>
98-
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classcf__filter.html" target="_self">cf_filter</a></td><td class="desc">Abstract Base Class for Kalman filter and HMM filter </td></tr>
99-
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classhmm.html" target="_self">hmm</a></td><td class="desc">A class template for HMM filtering </td></tr>
100-
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkalman.html" target="_self">kalman</a></td><td class="desc">A class template for Kalman filtering </td></tr>
101-
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmn__resampler.html" target="_self">mn_resampler</a></td><td class="desc">Performs multinomial resampling </td></tr>
102-
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmn__resampler__rbpf.html" target="_self">mn_resampler_rbpf</a></td><td class="desc">Performs multinomial resampling for a Rao-Blackwellized pf </td></tr>
103-
<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpf__base.html" target="_self">pf_base</a></td><td class="desc"></td></tr>
104-
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrbase.html" target="_self">rbase</a></td><td class="desc">Base class for all resampler types </td></tr>
105-
<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrbpf__hmm.html" target="_self">rbpf_hmm</a></td><td class="desc">Rao-Blackwellized/Marginal Particle Filter with inner HMMs </td></tr>
106-
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrbpf__hmm__bs.html" target="_self">rbpf_hmm_bs</a></td><td class="desc">Rao-Blackwellized/Marginal Bootstrap Filter with inner HMMs </td></tr>
107-
<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrbpf__kalman.html" target="_self">rbpf_kalman</a></td><td class="desc">Rao-Blackwellized/Marginal Particle Filter with inner Kalman Filter objectss </td></tr>
108-
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrbpf__kalman__bs.html" target="_self">rbpf_kalman_bs</a></td><td class="desc">Rao-Blackwellized/Marginal Bootstrap Filter with inner Kalman Filter objectss </td></tr>
109-
<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSISRFilter.html" target="_self">SISRFilter</a></td><td class="desc">A base class for the Sequential Important Sampling with Resampling (SISR) </td></tr>
98+
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classBSFilter.html" target="_self">BSFilter</a></td><td class="desc">A base class for the bootstrap particle filter </td></tr>
99+
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classBSFilterWC.html" target="_self">BSFilterWC</a></td><td class="desc">A base class for the bootstrap particle filter with covariates </td></tr>
100+
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classcf__filter.html" target="_self">cf_filter</a></td><td class="desc">Abstract Base Class for all closed-form filters </td></tr>
101+
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classForwardMod.html" target="_self">ForwardMod</a></td><td class="desc"></td></tr>
102+
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgamFilter.html" target="_self">gamFilter</a></td><td class="desc">A class template for Gamma filtering </td></tr>
103+
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classhmm.html" target="_self">hmm</a></td><td class="desc">A class template for HMM filtering </td></tr>
104+
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkalman.html" target="_self">kalman</a></td><td class="desc">A class template for Kalman filtering </td></tr>
105+
<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmn__resampler.html" target="_self">mn_resampler</a></td><td class="desc"></td></tr>
106+
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmn__resampler__rbpf.html" target="_self">mn_resampler_rbpf</a></td><td class="desc"></td></tr>
107+
<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmultivGamFilter.html" target="_self">multivGamFilter</a></td><td class="desc">Another class template for Gamma filtering, but this time </td></tr>
108+
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpf__base.html" target="_self">pf_base</a></td><td class="desc"></td></tr>
109+
<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrbase.html" target="_self">rbase</a></td><td class="desc">Base class for all resampler types </td></tr>
110+
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrbpf__base.html" target="_self">rbpf_base</a></td><td class="desc"></td></tr>
111+
<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrbpf__hmm.html" target="_self">rbpf_hmm</a></td><td class="desc">Rao-Blackwellized/Marginal Particle Filter with inner HMMs </td></tr>
112+
<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrbpf__hmm__bs.html" target="_self">rbpf_hmm_bs</a></td><td class="desc">Rao-Blackwellized/Marginal Bootstrap Filter with inner HMMs </td></tr>
113+
<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrbpf__kalman.html" target="_self">rbpf_kalman</a></td><td class="desc">Rao-Blackwellized/Marginal Particle Filter with inner Kalman Filter objectss </td></tr>
114+
<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrbpf__kalman__bs.html" target="_self">rbpf_kalman_bs</a></td><td class="desc">Rao-Blackwellized/Marginal Bootstrap Filter with inner Kalman Filter objectss </td></tr>
115+
<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classresid__resampler.html" target="_self">resid_resampler</a></td><td class="desc"></td></tr>
116+
<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSISRFilter.html" target="_self">SISRFilter</a></td><td class="desc">A base class for the Sequential Important Sampling with Resampling (SISR) </td></tr>
117+
<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classstratif__resampler.html" target="_self">stratif_resampler</a></td><td class="desc"></td></tr>
118+
<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsystematic__resampler.html" target="_self">systematic_resampler</a></td><td class="desc"></td></tr>
110119
</table>
111120
</div><!-- directory -->
112121
</div><!-- contents -->

docs/html/annotated_dup.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,31 @@ var annotated_dup =
55
[ "k_gen", "classrvsamp_1_1k__gen.html", "classrvsamp_1_1k__gen" ],
66
[ "MVNSampler", "classrvsamp_1_1MVNSampler.html", "classrvsamp_1_1MVNSampler" ],
77
[ "rvsamp_base", "classrvsamp_1_1rvsamp__base.html", "classrvsamp_1_1rvsamp__base" ],
8+
[ "TruncUnivNormSampler", "classrvsamp_1_1TruncUnivNormSampler.html", "classrvsamp_1_1TruncUnivNormSampler" ],
89
[ "UniformSampler", "classrvsamp_1_1UniformSampler.html", "classrvsamp_1_1UniformSampler" ],
10+
[ "UnivLogNormSampler", "classrvsamp_1_1UnivLogNormSampler.html", "classrvsamp_1_1UnivLogNormSampler" ],
911
[ "UnivNormSampler", "classrvsamp_1_1UnivNormSampler.html", "classrvsamp_1_1UnivNormSampler" ]
1012
] ],
1113
[ "APF", "classAPF.html", "classAPF" ],
1214
[ "BSFilter", "classBSFilter.html", "classBSFilter" ],
1315
[ "BSFilterWC", "classBSFilterWC.html", "classBSFilterWC" ],
1416
[ "cf_filter", "classcf__filter.html", "classcf__filter" ],
17+
[ "ForwardMod", "classForwardMod.html", "classForwardMod" ],
18+
[ "gamFilter", "classgamFilter.html", "classgamFilter" ],
1519
[ "hmm", "classhmm.html", "classhmm" ],
1620
[ "kalman", "classkalman.html", "classkalman" ],
1721
[ "mn_resampler", "classmn__resampler.html", "classmn__resampler" ],
1822
[ "mn_resampler_rbpf", "classmn__resampler__rbpf.html", "classmn__resampler__rbpf" ],
23+
[ "multivGamFilter", "classmultivGamFilter.html", "classmultivGamFilter" ],
1924
[ "pf_base", "classpf__base.html", "classpf__base" ],
2025
[ "rbase", "classrbase.html", "classrbase" ],
26+
[ "rbpf_base", "classrbpf__base.html", "classrbpf__base" ],
2127
[ "rbpf_hmm", "classrbpf__hmm.html", "classrbpf__hmm" ],
2228
[ "rbpf_hmm_bs", "classrbpf__hmm__bs.html", "classrbpf__hmm__bs" ],
2329
[ "rbpf_kalman", "classrbpf__kalman.html", "classrbpf__kalman" ],
2430
[ "rbpf_kalman_bs", "classrbpf__kalman__bs.html", "classrbpf__kalman__bs" ],
25-
[ "SISRFilter", "classSISRFilter.html", "classSISRFilter" ]
31+
[ "resid_resampler", "classresid__resampler.html", "classresid__resampler" ],
32+
[ "SISRFilter", "classSISRFilter.html", "classSISRFilter" ],
33+
[ "stratif_resampler", "classstratif__resampler.html", "classstratif__resampler" ],
34+
[ "systematic_resampler", "classsystematic__resampler.html", "classsystematic__resampler" ]
2635
];

docs/html/auxiliary__pf_8h.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@
100100
<div class="dyncontent">
101101
<div class="center"><img src="auxiliary__pf_8h__incl.png" border="0" usemap="#include_2auxiliary__pf_8h" alt=""/></div>
102102
<map name="include_2auxiliary__pf_8h" id="include_2auxiliary__pf_8h">
103-
<area shape="rect" id="node7" href="pf__base_8h.html" title="All particle filters inherit from this. " alt="" coords="401,80,479,107"/>
104-
<area shape="rect" id="node8" href="rv__samp_8h.html" title="all rv samplers must inherit from this. " alt="" coords="504,80,587,107"/>
103+
<area shape="rect" id="node7" href="pf__base_8h.html" title="All non Rao&#45;Blackwellized particle filters inherit from this. " alt="" coords="234,80,313,107"/>
104+
<area shape="rect" id="node10" href="rv__samp_8h.html" title="all rv samplers must inherit from this. " alt="" coords="471,80,553,107"/>
105105
</map>
106106
</div>
107107
</div>
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<map id="include/auxiliary_pf.h" name="include/auxiliary_pf.h">
2-
<area shape="rect" id="node7" href="$pf__base_8h.html" title="All particle filters inherit from this. " alt="" coords="401,80,479,107"/>
3-
<area shape="rect" id="node8" href="$rv__samp_8h.html" title="all rv samplers must inherit from this. " alt="" coords="504,80,587,107"/>
2+
<area shape="rect" id="node7" href="$pf__base_8h.html" title="All non Rao&#45;Blackwellized particle filters inherit from this. " alt="" coords="234,80,313,107"/>
3+
<area shape="rect" id="node10" href="$rv__samp_8h.html" title="all rv samplers must inherit from this. " alt="" coords="471,80,553,107"/>
44
</map>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
dedb87a9dd706ae5067cb1459690a1cd
1+
84561c8f72c63bff07ce004ae8b1f1c7
3.88 KB
Loading

0 commit comments

Comments
 (0)