Bayes++ Bayesian Filtering Classes  Release 2014.5 - Copyright (c) 2003,2004,2005,2006,2011,2012,2014 Michael Stevens
schemeFlt.hpp
Go to the documentation of this file.
1 #ifndef _BAYES_FILTER_SCHEME
2 #define _BAYES_FILTER_SCHEME
3 
4 /*
5  * Bayes++ the Bayesian Filtering Library
6  * Copyright (c) 2002 Michael Stevens
7  * See accompanying Bayes++.htm for terms and conditions of use.
8  *
9  * $Id$
10  */
11 
12 /*
13  * Generic Filter
14  * Filter schemes vary in their constructor parameterisation
15  * Filter_scheme derives a generic filter with consistent constructor interface
16  *
17  * Provides specialisations for all Bayesian_filter schemes
18  */
19 
20 
21 /* Filter namespace */
22 namespace Bayesian_filter
23 {
24 
25 template <class Scheme>
26 struct Filter_scheme : public Scheme
27 /*
28  * A Generic Filter Scheme
29  * Class template to provide a consistent constructor interface
30  * Default for Kalman_state_filter
31  */
32 {
33  Filter_scheme(std::size_t x_size, std::size_t q_maxsize, std::size_t z_initialsize) :
34  Kalman_state_filter (x_size), Scheme (x_size, z_initialsize)
35  {}
36 };
37 
38 
39 // UD_filter specialisation
40 template <>
42 {
43  Filter_scheme(std::size_t x_size, std::size_t q_maxsize, std::size_t z_initialsize) :
44  Kalman_state_filter (x_size), UD_scheme (x_size, q_maxsize, z_initialsize)
45  {}
46 };
47 
48 // Information_scheme specialisation
49 template <>
51 {
52  Filter_scheme(std::size_t x_size, std::size_t q_maxsize, std::size_t z_initialsize) :
54  Information_scheme (x_size, z_initialsize)
55  {}
56 };
57 
58 // Information_root_info_scheme specialisation
59 template <>
61 {
62  Filter_scheme(std::size_t x_size, std::size_t q_maxsize, std::size_t z_initialsize) :
64  Information_root_info_scheme (x_size, z_initialsize)
65  {}
66 };
67 
68 // SIR_scheme specialisation, inconsistent constructor
69 template <>
71 {
72  Filter_scheme(std::size_t x_size, std::size_t s_size, SIR_random& random_helper) :
73  Sample_state_filter (x_size, s_size),
74  SIR_scheme (x_size, s_size, random_helper)
75  {}
76 };
77 
78 // SIR_kalman_scheme specialisation, inconsistent constructor
79 template <>
81 {
82  Filter_scheme(std::size_t x_size, std::size_t s_size, SIR_random& random_helper) :
83  Sample_state_filter (x_size, s_size),
84  Kalman_state_filter (x_size),
85  SIR_kalman_scheme (x_size, s_size, random_helper)
86  {}
87 };
88 
89 
90 }//namespace
91 #endif
Filter_scheme(std::size_t x_size, std::size_t q_maxsize, std::size_t z_initialsize)
Definition: schemeFlt.hpp:43
Filter_scheme(std::size_t x_size, std::size_t q_maxsize, std::size_t z_initialsize)
Definition: schemeFlt.hpp:33
Definition: bayesFlt.hpp:640
Filter_scheme(std::size_t x_size, std::size_t s_size, SIR_random &random_helper)
Definition: schemeFlt.hpp:82
Definition: SIRFlt.hpp:48
Definition: schemeFlt.hpp:26
Definition: bayesException.hpp:20
Definition: bayesFlt.hpp:488
Definition: infFlt.hpp:45
Definition: UDFlt.hpp:51
Filter_scheme(std::size_t x_size, std::size_t s_size, SIR_random &random_helper)
Definition: schemeFlt.hpp:72
Definition: SIRFlt.hpp:238
Filter_scheme(std::size_t x_size, std::size_t q_maxsize, std::size_t z_initialsize)
Definition: schemeFlt.hpp:62
Definition: bayesFlt.hpp:524
Definition: SIRFlt.hpp:171
Filter_scheme(std::size_t x_size, std::size_t q_maxsize, std::size_t z_initialsize)
Definition: schemeFlt.hpp:52